PFN_WSK_GET_NAME_INFO Rückruffunktion (wsk.h)
Die WskGetNameInfo-Funktion ermöglicht eine protokollunabhängige Übersetzung von einer Transportadresse in einen Hostnamen.
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 über 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 Bytes an, auf den der SockAddr-Parameter verweist. Der Wert von SockAddrLength sollte 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 zu enthalten, der das beendende NULL-Zeichen enthält. Wenn der NodeBuffer-ParameterNULL ist, 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 beendende NULL-Zeichen enthält. Wenn der NodeBuffer-ParameterNULL 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 es sich bei dem Dienst um einen Datagrammdienst handelt. 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 dazu, dass für einen lokalen Host nur der relative distinguished Name (RDN) im NodeName-Parameter zurückgegeben wird.
NI_NUMERICHOST
Gibt an, dass die Funktion anstelle des Namens die numerische Form des Hostnamens zurückgibt, also einen Reverse-DNS-Lookup. 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 anstelle des Namens die Portnummer des Diensts 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 nur nicht NULL sein, wenn OwningProcess nicht NULL 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
[ein/aus] Ein Zeiger auf ein E/A-Anforderungspaket (IRP), das zum asynchronen Abschließen der Anforderung verwendet werden soll. Nach Abschluss der Anforderung enthält Irp ->Iostatus.Information den zurückgegebenen status Code.
Rückgabewert
WskGetNameInfo gibt einen der folgenden NTSTATUS-Codes zurück:
Rückgabecode | Beschreibung |
---|---|
|
Ein ungültiger Parameter wurde angegeben. |
|
Der Hostname kann nicht aufgelöst werden. |
|
Die Funktion wurde erfolgreich abgeschlossen. Wenn die WSK-Anwendung einen Zeiger auf einen IRP im Der IRP-Parameter wird mit einer erfolgreichen status abgeschlossen. |
|
Das WSK-Subsystem konnte die Funktion nicht sofort abschließen. Das WSK-Subsystem schließt das IRP ab, nachdem es den Steuerungsvorgang abgeschlossen hat. Die status des Steuerungsvorgangs wird im Feld IoStatus.Status des IRP zurückgegeben. |
|
Ein Fehler ist aufgetreten. Die IRP wird mit einem Fehler status abgeschlossen. |
Hinweise
Der Prozess, auf den der OwningProcess-Parameter verweist, oder der Thread, auf den der OwningThread-Prozess verweist, gibt den Sicherheitskontext für diese Funktion an. Das Benutzerkonto, das im Sicherheitskontext angegeben ist, gibt den Kontext für die Anforderung zur Namensauflösung der Funktion an.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows 7 und höheren Versionen der Windows-Betriebssysteme. |
Zielplattform | Universell |
Header | wsk.h (einschließen von Wsk.h) |
IRQL | PASSIVE_LEVEL |