RpcServerInqCallAttributesW-Funktion (rpcasync.h)
Die RpcServerInqCallAttributes Funktion ist ein RPC-Serveraufruf, der Clientsicherheitskontextattribute abruft.
Syntax
RPC_STATUS RpcServerInqCallAttributesW(
[in] RPC_BINDING_HANDLE ClientBinding,
[in, out] void *RpcCallAttributes
);
Parameter
[in] ClientBinding
Wahlfrei. Für die explizite Bindung innerhalb einer Serverroutine ist ClientBinding das Bindungshandle, mit dem die Managerroutine aufgerufen wurde. Siehe Anmerkungen.
[in, out] RpcCallAttributes
RPC_CALL_ATTRIBUTES_V2 Struktur, die Aufrufattribute empfängt.
Rückgabewert
Gibt RPC_S_OK nach Erfolg zurück, und RpcCallAttributes- ausgefüllt ist. Wenn ERROR_MORE_DATA zurückgegeben wird, war mindestens ein Feld in rpcCallAttributes nicht ausreichend lang und konnte nicht ausgefüllt werden. Einzelheiten zum Umgang mit ERROR_MORE_DATA finden Sie in RPC_CALL_ATTRIBUTES_V2.
Wenn ein Fehler auftritt, ist der Inhalt von RpcCallAttributes nicht definiert und kann teilweise von RPC geändert werden.
Bemerkungen
Die RpcServerInqCallAttributes--Funktion verwendet ein Versionsverwaltungsschema, um neue Funktionen zu integrieren, ohne neue Funktionen mit Suffix-IDs einführen zu müssen. Beispielsweise kann eine zweite Version des RPC_CALL_ATTRIBUTES_V2, die mit einer einfachen #define im Header identifiziert wurde, neue Member hinzufügen, um neue Funktionen zu erleichtern, die in zukünftige Versionen der RpcServerInqCallAttributes-Funktion integriert sind, ohne eine Funktion namens RpcServerInqCallAttributesEx freigeben zu müssen.
Wenn die RpcServerInqCallAttributes--Funktion außerhalb einer Serverroutine aufgerufen wird und wenn der Funktionsaufruf die Sicherheitskontextattribute für einen asynchronen RPC-Aufruf abfragt, kann ClientBinding- abgerufen werden, indem die RpcAsyncGetCallHandle--Funktion aus dem asynchronen Handle aufgerufen wird.
Die RpcServerInqCallAttributes--Funktion wird für Datagrammprotokollsequenzen, z. B. ncadg_*, nicht unterstützt. Wenn für einen Aufruf aufgerufen wird, der für eine Datagrammprotokollsequenz ausgeführt wird, wird RPC_S_CANNOT_SUPPORT zurückgegeben.
Die RpcServerInqCallAttributes Funktion ist threadsicher.
Beispiele
RPC_CALL_ATTRIBUTES CallAttributes; // this maps to RPC_CALL_ATTRIBUTES_V1
memset(&CallAttributes, 0, sizeof(CallAttributes));
CallAttributes.Version = RPC_CALL_ATTRIBUTES_VERSION; // maps to 1
CallAttributes.Flags = ;//....
Status = RpcServerInqCallAttributes(0, &ClientContextAttributes);
Anmerkung
Der rpcasync.h-Header definiert RpcServerInqCallAttributes als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows XP [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | rpcasync.h (include Rpc.h) |
Library | Rpcrt4.lib |
DLL- | Rpcrt4.dll |