GetServiceW-Funktion (nspapi.h)
Die GetService-Funktion ruft Informationen zu einem Netzwerkdienst im Kontext einer Gruppe von Standardnamespaces oder einem angegebenen Namespace ab. Der Netzwerkdienst wird durch seinen Typ und Namen angegeben. Die Informationen zum Dienst werden als Satz von NS_SERVICE_INFO Datenstrukturen abgerufen.
Syntax
INT GetServiceW(
[in] DWORD dwNameSpace,
[in] LPGUID lpGuid,
[in] LPWSTR lpServiceName,
[in] DWORD dwProperties,
[out] LPVOID lpBuffer,
[in, out] LPDWORD lpdwBufferSize,
[in, optional] LPSERVICE_ASYNC_INFO lpServiceAsyncInfo
);
Parameter
[in] dwNameSpace
Der Namespace oder eine Reihe von Standardnamespaces, die das Betriebssystem nach Informationen über den angegebenen Netzwerkdienst abfragen soll.
Verwenden Sie eine der folgenden Konstanten, um einen Namespace anzugeben.
Die meisten Aufrufe von GetService sollten den speziellen Wert NS_DEFAULT verwenden. Dadurch kann ein Client ohne Kenntnis der verfügbaren Namespaces in einem Internetwork auskommen. Der Systemadministrator bestimmt den Namespacezugriff. Namespaces können kommen und gehen, ohne dass der Client die Änderungen beachten muss.
[in] lpGuid
Ein Zeiger auf einen Globally Unique Identifier (GUID), der den Typ des Netzwerkdiensts angibt. Die Svcguid.h-Headerdatei enthält GUID-Diensttypen aus vielen bekannten Diensten innerhalb der DNS- und SAP-Namespaces.
Die Headerdatei Svcguid.h wird nicht automatisch von der Winsock2.h-Headerdatei eingeschlossen.
[in] lpServiceName
Ein Zeiger auf eine Zeichenfolge mit Null, die den Dienstnamen eindeutig darstellt. Beispiel: "MY SNA SERVER".
[in] dwProperties
Eine Reihe von Bitflags, die die Dienstinformationen angeben, die die Funktion abruft. Jede dieser Bitflagskonstanten mit Ausnahme PROP_ALL entspricht einem bestimmten Element der SERVICE_INFO Datenstruktur. Wenn das Flag festgelegt ist, fügt die Funktion Informationen in das entsprechende Element der in *lpBuffer gespeicherten Datenstrukturen ein. Die folgenden Bitflags werden definiert.
[out] lpBuffer
Ein Zeiger auf einen Puffer, um ein Array von NS_SERVICE_INFO Strukturen und zugeordneten Dienstinformationen zu empfangen. Jede NS_SERVICE_INFO-Struktur enthält Dienstinformationen im Kontext eines bestimmten Namespaces. Beachten Sie, dass die Funktion mehr als eine Struktur im Puffer speichert, wenn dwNameSpace NS_DEFAULT ist. andernfalls wird nur eine Struktur gespeichert.
Jede NS_SERVICE_INFO-Struktur enthält eine SERVICE_INFO-Struktur . Die Member dieser SERVICE_INFO-Strukturen enthalten gültige Daten basierend auf den Bitflags, die im dwProperties-Parameter festgelegt sind. Wenn das entsprechende Bitflag eines Elements in dwProperties nicht festgelegt ist, ist der Wert des Elements nicht definiert.
Die Funktion speichert die NS_SERVICE_INFO Strukturen in einem aufeinanderfolgenden Array, beginnend mit dem Anfang des Puffers. Die Zeiger in den enthaltenen SERVICE_INFO Strukturen verweisen auf Informationen, die im Puffer zwischen dem Ende der NS_SERVICE_INFO Strukturen und dem Ende des Puffers gespeichert sind.
[in, out] lpdwBufferSize
Ein Zeiger auf eine Variable, die bei der Eingabe die Größe des Puffers in Bytes enthält, auf den lpBuffer verweist. Bei der Ausgabe enthält diese Variable die Anzahl der Bytes, die zum Speichern der angeforderten Informationen erforderlich sind. Wenn dieser Ausgabewert größer als der Eingabewert ist, ist die Funktion aufgrund einer unzureichenden Puffergröße fehlgeschlagen.
[in, optional] lpServiceAsyncInfo
Für die zukünftige Verwendung reserviert. Muss auf NULL festgelegt werden.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert die Anzahl NS_SERVICE_INFO Strukturen, die in *lpBuffer gespeichert sind. Null gibt an, dass keine Strukturen gespeichert wurden.
Wenn die Funktion fehlschlägt, ist der Rückgabewert SOCKET_ERROR ( – 1). Um erweiterte Fehlerinformationen abzurufen, rufen Sie GetLastError auf, wodurch einer der folgenden erweiterten Fehlerwerte zurückgegeben wird.
Fehlercode | Bedeutung |
---|---|
|
Der Puffer, auf den lpBuffer verweist, ist zu klein, um alle angeforderten Informationen zu empfangen. Rufen Sie die Funktion mit einem Puffer auf, der mindestens so groß ist wie der in *lpdwBufferSize zurückgegebene Wert. |
|
Der angegebene Dienst wurde nicht gefunden, oder der angegebene Namespace wird nicht verwendet. Der Funktionsrückgabewert ist in diesem Fall 0. |
Hinweise
Hinweis
Der nspapi.h-Header definiert GetService 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 nicht codierungsneutralem Code 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 |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | nspapi.h |
Bibliothek | Mswsock.lib |
DLL | Mswsock.dll |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für