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
STATUS_INVALID_PARAMETER
Ein ungültiger Parameter wurde angegeben.
STATUS_NO_MATCH
Der Hostname kann nicht aufgelöst werden.
STATUS_SUCCESS
Die Funktion wurde erfolgreich abgeschlossen. Wenn die WSK-Anwendung einen Zeiger auf einen IRP im Der IRP-Parameter wird mit einer erfolgreichen status abgeschlossen.
STATUS_PENDING
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.
Andere status Codes
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

Weitere Informationen

SOCKADDR

SOCKADDR_STORAGE

UNICODE_STRING

WSK_CLIENT

WskCaptureProviderNPI

WskGetAddressInfo