Megosztás a következőn keresztül:


A user_marshal attribútum

A [ user_marshal] attribútum egy ACF-típusú attribútum, amely a [ represent_as] szintaxishoz hasonló. Az IDL attribútumhoz hasonlóan , [wire_marshal], hatékonyabb módot kínál az adatok hálózati adatba foglalására. ACF-attribútumként [user_marshal] lehetővé teszi a MIDL számára ismeretlen egyéni adattípusokat. Minden alkalmazásspecifikus típus rendelkezik egy megfelelő továbbítható típussal, amely meghatározza a vezetékképet.

Az alkalmazásspecifikus típus lehet egyszerű, összetett vagy mutató típusú. A fő korlátozás az, hogy a típuspéldánynak rögzített, jól definiált memóriaméretet kell tartalmaznia. Ha a típuspéldány méretét módosítani kell, a megfelelő tömb helyett használjon mutatómezőt. Másik lehetőségként megadhat egy mutatót a módosítható típusra.

A [wire_marshal] attribútumhoz hasonlóan rutinokat is biztosít a méretezéshez, a marsalláshoz, a házasság megszüntetéséhez és a felszabadításhoz. Az alábbi táblázat a felhasználó által megadott rutinneveket ismerteti. A <típus> a [user_marshal] típusdefinícióban megadott típus.

Rutin Leírás
<típus>_UserSize Méretezi az RPC-adatpuffert, mielőtt az ügyfél- vagy kiszolgálóoldalon üzembe helyezésekor sorba áll.
<típus>_UserMarshal Az ügyfél- vagy kiszolgálóoldalon rögzíti az adatokat.
<típus>_UserUnmarshal Az ügyfél- vagy kiszolgálóoldalon lévő adatok leválasztása.
<típus>_UserFree Felszabadítja az adatokat a kiszolgáló oldalán.

 

Ezeket a felhasználó által megadott rutinokat az ügyfél vagy a kiszolgálóalkalmazás biztosítja az irányattribútumok alapján.

Ha a paraméter csak [] fájlban található, az ügyfél továbbítja a kiszolgálónak. Az ügyfélnek szüksége van a <típusra>_UserSize és <>_UserMarshal függvények típusára. A kiszolgálónak szüksége van a <típusra>_UserUnmarshal és <>_UserFree függvények típusára.

A [ki]-only paraméter esetén a kiszolgáló továbbítja az ügyfelet. A kiszolgálónak szüksége van a <típusra>_UserSize és <>_UserMarshal függvények típusára, míg az ügyfélnek <>_UserMarshal függvényre van szüksége.

A wire_marshal attribútum

marshaling rules for user marshal and wire_marshal

user_marshal

wire_marshal

NdrGetUserMarshalInfo