PFN_WSK_GET_NAME_INFO Rückruffunktion (wsk.h)
Die WskGetNameInfo-Funktion stellt eine protokollunabhängige Übersetzung von einer Transportadresse in einen Hostnamen bereit.
Syntax
PFN_WSK_GET_NAME_INFO PfnWskGetNameInfo;
NTSTATUS PfnWskGetNameInfo(
[in] PWSK_CLIENT Client,
[in] PSOCKADDR SockAddr,
[in] ULONG SockAddrLength,
[out, optional] PUNICODE_STRING NodeName,
[out, optional] PUNICODE_STRING ServiceName,
[in] ULONG Flags,
[in, optional] PEPROCESS OwningProcess,
[in, optional] PETHREAD OwningThread,
[in, out] PIRP Irp
)
{...}
Parameter
[in] Client
[in] Ein Zeiger auf eine WSK_CLIENT Struktur, die durch den WskProviderNpi Parameter des WskCaptureProviderNPI--Funktion.
[in] SockAddr
[in] Ein Zeiger auf eine SOCKADDR- Struktur, die die IP-Adresse und die Portnummer des Sockets enthält.
[in] SockAddrLength
[in] Gibt die Länge des Puffers in Byte an, auf den der SockAddr-Parameter verweist. Der Wert SockAddrLength darf die Größe der SOCKADDR_STORAGE Struktur nicht überschreiten.
[out, optional] NodeName
[out] Ein optionaler Zeiger auf eine UNICODE_STRING Struktur, die eine Unicode-Zeichenfolge enthält, die einen Hostnamen (Knoten) darstellt. Bei Erfolg wird der Unicode-Hostname standardmäßig als vollqualifizierter Domänenname (Fully Qualified Domain Name, FQDN) geschrieben. Der Aufrufer muss einen UNICODE_STRING Puffer bereitstellen, der groß genug ist, um den Unicode-Hostnamen aufzunehmen, der das endende NULL-Zeichen enthält. Wenn der parameter NodeBufferNULList, möchte der Aufrufer keine Hostnamenzeichenfolge empfangen. NodeBuffer und ServiceBuffer- dürfen nicht beide NULL-sein.
[out, optional] ServiceName
[out] Ein optionaler Zeiger auf eine UNICODE_STRING Struktur, die eine Unicode-Zeichenfolge enthält, die einen Dienstnamen darstellt, der der Portnummer zugeordnet ist. Der Aufrufer muss einen UNICODE_STRING Puffer bereitstellen, der groß genug ist, um den Unicode-Dienstnamen zu enthalten, der das endende NULL-Zeichen enthält. Wenn der NodeBuffer Parameter NULL-ist, möchte der Aufrufer keine Dienstnamenzeichenfolge empfangen. NodeBuffer und ServiceBuffer- dürfen nicht beide NULL-sein.
[in] Flags
[in] Ein ULONG-Wert, der zum Anpassen der Verarbeitung dieser Funktion verwendet wird.
Die folgenden Flags sind verfügbar:
NI_DGRAM
Gibt an, dass der Dienst ein Datagrammdienst ist. Dieses Flag ist für die wenigen Dienste erforderlich, die unterschiedliche Portnummern für UDP- und TCP-Dienst bereitstellen.
NI_NAMEREQD
Gibt an, dass ein Hostname, der nicht durch DNS aufgelöst werden kann, zu einem Fehler führt.
NI_NOFQDN
Führt zu einem lokalen Host, der nur seinen relativen Distinguished Name (RDN) im parameter NodeName zurückgegeben hat.
NI_NUMERICHOST
Gibt an, dass die Funktion die numerische Form des Hostnamens anstelle des Namens zurückgibt, eine umgekehrte DNS-Suche. Die numerische Form des Hostnamens wird auch zurückgegeben, wenn der Hostname nicht durch DNS aufgelöst werden kann.
NI_NUMERICSERV
Gibt an, dass die Funktion die Portnummer des Diensts anstelle des Namens zurückgibt. Wenn für eine IP-Adresse (z. B. 127.0.0.2) kein Hostname gefunden wird, wird der Hostname als IP-Adresse zurückgegeben.
[in, optional] OwningProcess
[in] Ein optionaler Zeiger auf den Prozess, aus dem die Funktion den Sicherheitskontext abruft. Dieser Sicherheitskontext gibt den Benutzerkontokontext an, in dem die Funktion die Namensauflösungsanforderung verarbeitet.
Wenn dieser Parameter NULL-ist, verarbeitet die Funktion die Namensauflösungsanforderung im Kontext eines vordefinierten lokalen Kontos mit minimalen Berechtigungen.
Wenn dieser Parameter nicht NULL- ist und ein Identitätswechseltoken für den aufrufenden Thread wirksam ist, schlägt diese Funktion fehl und gibt STATUS_INVALID_PARAMETER zurück.
[in, optional] OwningThread
[in] Ein optionaler Zeiger auf den Thread, aus dem die Funktion den Sicherheitskontext abruft. Dieser Parameter kann nurNULL- sein, wenn OwningProcess- nichtNULL-ist. Andernfalls schlägt diese Funktion fehl und gibt STATUS_INVALID_PARAMETER zurück.
Wenn dieser Parameter nicht NULL- ist und ein Identitätswechseltoken für den aufrufenden Thread wirksam ist, schlägt diese Funktion fehl und gibt STATUS_INVALID_PARAMETER zurück.
[in, out] Irp
[in/out] Ein Zeiger auf ein E/A-Anforderungspaket (IRP), das zum asynchronen Abschließen der Anforderung verwendet werden soll. Nach Abschluss der Anforderung Irp ->Iostatus.Information den zurückgegebenen Statuscode enthalten.
Rückgabewert
WskGetNameInfo- gibt einen der folgenden NTSTATUS-Codes zurück:
Rückgabecode | Beschreibung |
---|---|
|
Es wurde ein ungültiger Parameter angegeben. |
|
Der Hostname kann nicht aufgelöst werden. |
|
Die Funktion wurde erfolgreich abgeschlossen. Wenn die WSK-Anwendung einen Zeiger auf ein IRP im Irp Parameter wird das IRP mit einem Erfolgsstatus abgeschlossen. |
|
Das WSK-Subsystem konnte die Funktion nicht sofort abschließen. Das WSK-Subsystem schließt das IRP ab, nachdem er den Kontrollvorgang abgeschlossen hat. Der Status des Kontrollvorgangs wird im feld IoStatus.Status des IRP zurückgegeben. |
|
Fehler. Das IRP wird mit dem Fehlerstatus abgeschlossen. |
Bemerkungen
Der Prozess, auf den der OwningProcess Parameter verweist, oder der Thread, auf den der OwningThread Prozesspunkte verweist, gibt den Sicherheitskontext für diese Funktion an. Das Benutzerkonto, das durch den Sicherheitskontext angegeben wird, gibt den Kontext für die Namensauflösungsanforderung der Funktion an.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows 7 und höheren Versionen von Windows-Betriebssystemen. |
Zielplattform- | Universal |
Header- | wsk.h (include Wsk.h) |
IRQL- | PASSIVE_LEVEL |