Freigeben über


RpcServerInqCallAttributesA-Funktion (rpcasync.h)

Die RpcServerInqCallAttributes Funktion ist ein RPC-Serveraufruf, der Clientsicherheitskontextattribute abruft.

Syntax

RPC_STATUS RpcServerInqCallAttributesA(
  [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.

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

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

Siehe auch

RPC_CALL_ATTRIBUTES_V2

RpcAsyncGetCallHandle-