Freigeben über


RpcBindingSetOption-Funktion (rpcdce.h)

Mit der RpcBindingSetOption-Funktion können Clientanwendungen Nachrichtenwarteschlangenoptionen für ein Bindungshandle angeben.

Syntax

RPC_STATUS RpcBindingSetOption(
  RPC_BINDING_HANDLE hBinding,
  unsigned long      option,
  ULONG_PTR          optionValue
);

Parameter

hBinding

Zu ändernde Serverbindung.

option

Zu ändernde Bindungseigenschaft. Eine Liste der Bindungsoptionen und deren möglichen Werte finden Sie unter Bindungsoptionskonstanten. Weitere Informationen zum Timeoutfeature für RPC-Aufrufe finden Sie unter Hinweise.

optionValue

Neuer Wert für die Bindungseigenschaft. Siehe Hinweise.

Rückgabewert

Wert Bedeutung
RPC_S_OK
Der Aufruf war erfolgreich.
RPC_S_CANNOT_SUPPORT
Die Funktion wird weder für das Betriebssystem noch für den Transport unterstützt. Beachten Sie, dass beim Aufrufen von RpcBindingSetOption für Bindungshandles, die eine andere Protokollsequenz als ncacn_* verwenden, ein Fehler auftritt und dieser Wert zurückgegeben wird.
 
Hinweis Eine Liste der gültigen Fehlercodes finden Sie unter RPC-Rückgabewerte.
 

Hinweise

RPC-Clientprozesse verwenden RpcBindingSetOption , um die Dienstqualität der Übermittlung, die Anrufprotokollierung und die Anruflebensdauer zu steuern. Das Ändern der Eigenschaften des Bindungshandles wirkt sich auf alle Remoteaufrufe aus, bis die Eigenschaften durch einen anderen Aufruf von RpcBindingSetOption geändert werden. Sie können auch RpcBindingSetAuthInfo aufrufen, um Sicherheitsoptionen für das Bindungshandle festzulegen.

Windows XP: RPC-Aufruftimeoutfunktion:

Wenn Sie die RpcBindingSetOption-Funktion mit Option auf RPC_C_OPT_CALL_TIMEOUT und OptionValue auf den Timeoutwert (in Millisekunden) festlegen, können Entwickler ein RPC-Servertimeout festlegen, das verhindert, dass ein Thread an einen nicht reagierenden RPC-Server gefangen wird. Dieses Feature verhindert, dass Entwickler einen Aufruf eines nicht reagierenden RPC-Servers explizit abbrechen. Die Timerüberwachung für timeout wird vom RPC-Client zurückgesetzt, sobald jedes Paket empfangen wurde. Wenn das Timeout abläuft, ohne ein Paket vom Server zu empfangen, gibt der RPC-Client RPC_S_CALL_CANCELLED zurück. Beachten Sie, dass der RPC-Server möglicherweise immer noch einen Aufruf ausführt, obwohl der Client die Antwort verwirft.

Legen Sie OptionValue für ein unbegrenztes Timeout auf INFINITE oder null fest. Ändern Sie diese Option nicht in einem anderen Thread, während ein Aufruf ausgeführt wird. Versuchen Sie nicht, einen abgebrochenen Anruf zu wiederholen. Dies erhöht die Belastung für den bereits nicht reagierenden Server. Das Timeoutfeature für RPC-Aufrufe ist nur für verbindungsorientierte, synchrone RPC-Aufrufe nützlich, z. B. für ncacn_* -Protokollsequenzen. Bei Datagramm-, asynchronen oder lokalen RPC-Aufrufen wird diese Option von der RPC-Laufzeit ignoriert.

Das Timeoutfeature für RPC-Aufrufe ist in vielen Situationen nützlich, z. B. bei Benutzeroberflächenupdates, die andernfalls darauf warten würden, dass der ausgelastete RPC-Server antwortet (der Benutzer beobachtet eine Sanduhr), oder wenn viele RPC-Server eine Anforderung verarbeiten können, sodass Clients nicht reagierende Server schneller identifizieren und umgehen können.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile rpcdce.h (rpc.h einschließen)
Bibliothek Rpcrt4.lib
DLL Rpcrt4.dll

Weitere Informationen

RPC Message Queuing

RpcBindingInqAuthClient

RpcBindingInqOption

RpcBindingSetAuthInfo

Nachricht