Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
ACF-attributet [context_handle_serialize] garanterar att en kontextreferens alltid kommer att serialiseras, oavsett programmets standardbeteende.
typedef [context_handle_serialize [ , type-acf-attribute-list ] ] context-handle-type;
[context_handle_serialize [, function-acf-attribute-list ] ] function-name( );
function-name(
[context_handle_serialize [ , parameter-acf-attribute-list ] ] param-name );
Parameters
-
type-acf-attribute-list
-
Andra ACF-attribut som gäller för typen.
-
context-handle-type
-
Identifieraren som anger kontextreferenstypen enligt definitionen i en typedef-deklaration . Det här är den typ som tar emot attributet [context_handle_serialize] i IDL-filen.
-
function-acf-attribute-list
-
Eventuella ytterligare ACF-attribut som gäller för funktionen.
-
function-name
-
Namnet på funktionen enligt definitionen i IDL-filen.
-
parameter-acf-attribute-list
-
Andra ACF-attribut som gäller för parametern.
-
param-name
-
Namnet på parametern enligt definitionen i IDL-filen.
Anmärkningar
Attributet [context_handle_serialize] identifierar en bindningsreferens som upprätthåller kontext- eller tillståndsinformation på servern mellan fjärrproceduranrop. Attributet kan visas som ett IDL typedef-typattribut , som ett funktionsreturtypattribut eller som ett parameterattribut.
Som standard serialiseras anrop på kontextreferenser, men ett program kan anropa RpcSsDontSerializeContext för att åsidosätta det här standardbeteendet. Om du använder attributet [context_handle_serialize] i en ACF-fil garanteras att anrop på den här kontextreferensen serialiseras, även om det anropande programmet har åsidosatt standard serialiseringen. En kontextrutin för nedkörning är valfri.
Det här attributet är tillgängligt i MIDL version 5.0.
Windows Server 2003 och Windows XP eller senare: Ett enda gränssnitt kan hantera både serialiserade och icke-ialiserade kontextreferenser, vilket gör att en metod i ett gränssnitt kan komma åt ett kontexthandtag exklusivt (serialiserat), medan andra metoder kommer åt kontexten som hanterar i delat läge (icke-ialiserad). Dessa åtkomstfunktioner är jämförbara med låsningsmekanismer för läsning/skrivning. metoder som använder ett serialiserat kontexthandtag är exklusiva användare (skrivare), medan metoder som använder en icke-ialiserad kontextreferens är delade användare (läsare). Metoder som förstör eller ändrar tillståndet för en kontextreferens måste serialiseras. Metoder som inte ändrar tillståndet för en kontextreferens, till exempel de metoder som helt enkelt läser från ett kontexthandtag, kan vara icke-ialiserade. Observera att skapandemetoder är implicit serialiserade.
Exempel
typedef [context_handle_serialize] PCONTEXT_HANDLE_TYPE;
HRESULT RemoteFunc([context_handle_serialize] pCxHandle);
Se även