Freigeben über


WSAProviderConfigChange-Funktion (winsock2.h)

Die WSAProviderConfigChange-Funktion benachrichtigt die Anwendung, wenn die Anbieterkonfiguration geändert wird.

Syntax

INT WSAAPI WSAProviderConfigChange(
  [in, out] LPHANDLE                           lpNotificationHandle,
  [in]      LPWSAOVERLAPPED                    lpOverlapped,
  [in]      LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);

Parameter

[in, out] lpNotificationHandle

Zeiger auf das Benachrichtigungshandle. Wenn das Benachrichtigungshandle auf NULL festgelegt ist (der Handle-Wert nicht der Zeiger selbst), gibt diese Funktion ein Benachrichtigungshandle an der Position zurück, auf die von lpNotificationHandle verwiesen wird.

[in] lpOverlapped

Zeiger auf eine WSAOVERLAPPED-Struktur .

[in] lpCompletionRoutine

Typ: _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE

Zeiger auf die Vervollständigungsroutine, die aufgerufen wird, wenn die Anbieteränderungsbenachrichtigung empfangen wird.

Rückgabewert

Wenn kein Fehler auftritt, gibt WSAProviderConfigChange 0 zurück. Andernfalls wird der Wert SOCKET_ERROR zurückgegeben, und ein bestimmter Fehlercode kann durch Aufrufen von WSAGetLastError abgerufen werden. Der Fehlercode WSA_IO_PENDING gibt an, dass der überlappende Vorgang erfolgreich initiiert wurde und dass die Vervollständigung (und damit das Änderungsereignis) zu einem späteren Zeitpunkt angezeigt wird.

Fehlercode Bedeutung
WSANOTINITIALISIERT
Vor der Verwendung dieser Funktion muss ein erfolgreicher WSAStartup-Aufruf erfolgen.
WSAENETDOWN
Beim Netzwerksubsystem ist ein Fehler aufgetreten.
WSA_NOT_ENOUGH_MEMORY
Nicht genügend freier Arbeitsspeicher zur Verfügung, um den Vorgang abzuschließen.
WSA_INVALID_HANDLE
Der Wert, der vom parameter lpNotificationHandle gezeigt wird, ist kein gültiges Benachrichtigungshandle.
WSAEOPNOTSUPP
Die aktuelle Betriebssystemumgebung unterstützt die Installation oder Entfernung des Anbieters ohne Neustart nicht.

Hinweise

Die WSAProviderConfigChange-Funktion benachrichtigt die Anwendung der Anbieterinstallation (sowohl Transport als auch Namespace) in Windows-Betriebsumgebungen, die solche Konfigurationsänderungen unterstützen, ohne dass ein Neustart erforderlich ist. Beim ersten Aufruf (lpNotificationHandle-Parameter verweist auf NULL-Handle ) wird diese Funktion sofort abgeschlossen und gibt das Benachrichtigungshandle an der position zurück, die von lpNotificationHandle angezeigt wird, die in nachfolgenden Aufrufen verwendet werden kann, um Benachrichtigungen über die Installation und Entfernung des Anbieters zu empfangen. Der zweite und alle nachfolgenden Aufrufe werden nur abgeschlossen, wenn sich die Anbieterinformationen seit dem Zeitpunkt des Aufrufs ändern Es wird erwartet (aber nicht erforderlich), dass die Anwendung überlappende E/A für den zweiten und nachfolgenden Aufrufe von WSAProviderConfigChange verwendet. In diesem Fall wird der Aufruf sofort zurückgegeben, und die Anwendung wird über Änderungen der Anbieterkonfiguration benachrichtigt, indem der Vervollständigungsmechanismus verwendet wird, der über die angegebenen überlappenden Vervollständigungsparameter ausgewählt wurde.

Das von WSAProviderConfigChange zurückgegebene Benachrichtigungshandle ähnelt jedem regulären Betriebssystemhandle, das mithilfe eines Windows CloseHandle-Aufrufs geschlossen werden sollte (wenn er nicht mehr benötigt wird).

Die folgende Abfolge von Aktionen kann verwendet werden, um sicherzustellen, dass die Anwendung immer aktuelle Protokollkonfigurationsinformationen enthält:

  • Aufrufen von WSAProviderConfigChange
  • Aufrufen von WSAEnumProtocols und/oder WSAEnumNameSpaceProviders
  • Wenn WSAProviderConfigChange die Anwendung der Anbieterkonfigurationsänderung benachrichtigt (durch Blockieren oder überlappende E/A), sollte die gesamte Abfolge von Aktionen wiederholt werden.
Windows 8.1 und Windows Server 2012 R2: Diese Funktion wird für Windows Store-Apps auf Windows 8.1, Windows Server 2012 R2 und höher unterstützt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8.1, Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winsock2.h
Bibliothek Ws2_32.lib
DLL Ws2_32.dll

Weitere Informationen

CloseHandle

WSAEnumNameSpaceProviders

WSAEnumProtocols

Winsock-Funktionen

Winsock-Referenz