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 |
---|---|
|
Der Aufruf war erfolgreich. |
|
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. |
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 |