Share via


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

Optional. Für die explizite Bindung innerhalb einer Serverroutine ist ClientBinding das Bindungshandle , mit dem die Managerroutine aufgerufen wurde. Siehe Hinweise.

[in, out] RpcCallAttributes

RPC_CALL_ATTRIBUTES_V2 Struktur, die Aufrufattribute empfängt.

Rückgabewert

Gibt bei Erfolg RPC_S_OK zurück, und RpcCallAttributes wird ausgefüllt. Wenn ERROR_MORE_DATA zurückgegeben wird, war mindestens ein Feld in RpcCallAttributes nicht lang und konnte nicht ausgefüllt werden. Ausführliche Informationen zur Behandlung ERROR_MORE_DATA finden Sie unter Hinweise in RPC_CALL_ATTRIBUTES_V2.

Bei einem Fehler ist der Inhalt von RpcCallAttributes nicht definiert und kann teilweise von RPC geändert werden.

Hinweis Eine Liste der gültigen Fehlercodes finden Sie unter RPC-Rückgabewerte.
 

Hinweise

Die RpcServerInqCallAttributes-Funktion verwendet ein Versionsverwaltungsschema , um neue Funktionen zu integrieren, ohne neue Funktionen mit Suffixbezeichnern einführen zu müssen. Beispielsweise kann eine zweite Version des RPC_CALL_ATTRIBUTES_V2, die mit einer einfachen #define im Header identifiziert wird, neue Member hinzufügen, um neue Funktionen zu ermöglichen, 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 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 wie ncadg_* nicht unterstützt. Wenn sie 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);

Hinweis

Der rpcasync.h-Header definiert RpcServerInqCallAttributes als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch 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

   
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile rpcasync.h (rpc.h einschließen)
Bibliothek Rpcrt4.lib
DLL Rpcrt4.dll

Weitere Informationen

RPC_CALL_ATTRIBUTES_V2

RpcAsyncGetCallHandle