Condividi tramite


PFN_WSK_GET_NAME_INFO funzione di callback (wsk.h)

La funzione WskGetNameInfo fornisce una traduzione indipendente dal protocollo da un indirizzo di trasporto a un nome host.

Sintassi

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
)
{...}

Parametri

[in] Client

[in] Puntatore a una struttura WSK_CLIENT restituita tramite il parametro WskProviderNpi dell'oggetto Funzione WskCaptureProviderNPI .

[in] SockAddr

[in] Puntatore a una struttura SOCKADDR che contiene l'indirizzo IP e il numero di porta del socket.

[in] SockAddrLength

[in] Specifica la lunghezza, in byte, del buffer a cui punta il parametro SockAddr . Il valore di SockAddrLength non deve superare le dimensioni della struttura SOCKADDR_STORAGE .

[out, optional] NodeName

[out] Puntatore facoltativo a una struttura UNICODE_STRING contenente una stringa Unicode che rappresenta un nome host (nodo). In caso di esito positivo, il nome host Unicode viene scritto come nome di dominio completo (FQDN) per impostazione predefinita. Il chiamante deve fornire un buffer UNICODE_STRING abbastanza grande per contenere il nome host Unicode, che include il carattere NULL terminante. Se il parametro NodeBuffer è NULL, il chiamante non vuole ricevere una stringa di nome host. NodeBuffer e ServiceBuffer non devono essere NULL.

[out, optional] ServiceName

[out] Puntatore facoltativo a una struttura UNICODE_STRING contenente una stringa Unicode che rappresenta un nome del servizio associato al numero di porta. Il chiamante deve fornire un buffer UNICODE_STRING abbastanza grande per contenere il nome del servizio Unicode, che include il carattere NULL terminante. Se il parametro NodeBuffer è NULL, il chiamante non vuole ricevere una stringa di nome del servizio. NodeBuffer e ServiceBuffer non devono essere NULL.

[in] Flags

[in] Valore ULONG usato per personalizzare l'elaborazione di questa funzione.

Sono disponibili i flag seguenti:

NI_DGRAM

Indica che il servizio è un servizio datagram. Questo flag è necessario per i pochi servizi che forniscono numeri di porta diversi per UDP e servizio TCP.

NI_NAMEREQD

Indica che un nome host che non può essere risolto da DNS genera un errore.

NI_NOFQDN

Restituisce un host locale con solo il relativo nome distinto (RDN) restituito nel parametro NodeName .

NI_NUMERICHOST

Indica che la funzione restituisce la forma numerica del nome host anziché il nome, una ricerca DNS inversa. La forma numerica del nome host viene restituita anche se il nome host non può essere risolto da DNS.

NI_NUMERICSERV

Indica che la funzione restituisce il numero di porta del servizio anziché il relativo nome. Inoltre, se non viene trovato un nome host per un indirizzo IP (127.0.0.2, ad esempio, il nome host viene restituito come indirizzo IP.

[in, optional] OwningProcess

[in] Puntatore facoltativo al processo da cui la funzione recupera il contesto di sicurezza. Questo contesto di sicurezza indica il contesto dell'account utente in cui la funzione elabora la richiesta di risoluzione dei nomi.

Se questo parametro è NULL, la funzione elabora la richiesta di risoluzione dei nomi nel contesto di un account locale predefinito con privilegi minimi.

Se questo parametro non è NULL e un token di rappresentazione è effettivo per il thread chiamante, questa funzione ha esito negativo e restituisce STATUS_INVALID_PARAMETER.

[in, optional] OwningThread

[in] Puntatore facoltativo al thread da cui la funzione recupera il contesto di sicurezza. Questo parametro può essere diverso da NULL solo se OwningProcess non è NULL. In caso contrario, questa funzione ha esito negativo e restituisce STATUS_INVALID_PARAMETER.

Se questo parametro non è NULL e un token di rappresentazione è effettivo per il thread chiamante, questa funzione ha esito negativo e restituisce STATUS_INVALID_PARAMETER.

[in, out] Irp

[in/out] Puntatore a un pacchetto di richiesta I/O da usare per completare la richiesta in modo asincrono. Al termine della richiesta, Irp ->Iostatus.Information conterrà il codice di stato restituito.

Valore restituito

WskGetNameInfo restituisce uno dei codici NTSTATUS seguenti:

Codice restituito Descrizione
STATUS_INVALID_PARAMETER
È stato specificato un parametro non valido.
STATUS_NO_MATCH
Impossibile risolvere il nome host.
STATUS_SUCCESS
La funzione è stata completata correttamente. Se l'applicazione WSK ha specificato un puntatore a un'istanza di IRP nell'oggetto Il parametro IRP verrà completato con uno stato di esito positivo.
STATUS_PENDING
Il sottosistema WSK non è riuscito a completare immediatamente la funzione. Il sottosistema WSK completerà l'IRP dopo aver completato l'operazione di controllo. Lo stato dell'operazione di controllo verrà restituito nel campo IoStatus.Status dell'IRP .
Altri codici di stato
Si è verificato un errore. L'IRP verrà completato con lo stato di errore.

Commenti

Il processo a cui punta il parametro OwningProcess o il thread a cui punta il processo OwningThread indica il contesto di sicurezza per questa funzione. L'account utente indicato dal contesto di sicurezza indica il contesto per la richiesta di risoluzione dei nomi della funzione.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows 7 e versioni successive dei sistemi operativi Windows.
Piattaforma di destinazione Universale
Intestazione wsk.h (include Wsk.h)
IRQL PASSIVE_LEVEL

Vedi anche

SOCKADDR

SOCKADDR_STORAGE

UNICODE_STRING

WSK_CLIENT

WskCaptureProviderNPI

WskGetAddressInfo