fonction de rappel PFN_WSK_GET_NAME_INFO (wsk.h)
La fonction WskGetNameInfo fournit une traduction indépendante du protocole d’une adresse de transport vers un nom d’hôte.
Syntaxe
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
)
{...}
Paramètres
[in] Client
[in] Pointeur vers une structure WSK_CLIENT qui a été retournée via le paramètre WskProviderNpi du fonction WskCaptureProviderNPI.
[in] SockAddr
[in] Pointeur vers une structure SOCKADDR qui contient l’adresse IP et le numéro de port du socket.
[in] SockAddrLength
[in] Spécifie la longueur, en octets, de la mémoire tampon pointée par le paramètre SockAddr. La valeur de SockAddrLength ne doit pas dépasser la taille de la structure SOCKADDR_STORAGE.
[out, optional] NodeName
[out] Pointeur facultatif vers une structure UNICODE_STRING qui contient une chaîne Unicode qui représente un nom d’hôte (nœud). En cas de réussite, le nom d’hôte Unicode est écrit en tant que nom de domaine complet (FQDN) par défaut. L’appelant doit fournir une mémoire tampon UNICODE_STRING suffisamment grande pour contenir le nom d’hôte Unicode, qui inclut le caractère NULL de fin. Si le paramètre NodeBuffer est NULL, l’appelant ne souhaite pas recevoir de chaîne de nom d’hôte. NodeBuffer et ServiceBuffer ne doivent pas être NULL.
[out, optional] ServiceName
[out] Pointeur facultatif vers une structure UNICODE_STRING qui contient une chaîne Unicode qui représente un nom de service associé au numéro de port. L’appelant doit fournir une mémoire tampon UNICODE_STRING suffisamment grande pour contenir le nom du service Unicode, qui inclut le caractère NULL de fin. Si le paramètre NodeBuffer est NULL, l’appelant ne souhaite pas recevoir de chaîne de nom de service. NodeBuffer et ServiceBuffer ne doivent pas être NULL.
[in] Flags
[in] Valeur ULONG utilisée pour personnaliser le traitement de cette fonction.
Les indicateurs suivants sont disponibles :
NI_DGRAM
Indique que le service est un service de datagramme. Cet indicateur est nécessaire pour les quelques services qui fournissent différents numéros de port pour le service UDP et TCP.
NI_NAMEREQD
Indique qu’un nom d’hôte qui ne peut pas être résolu par DNS génère une erreur.
NI_NOFQDN
Génère un hôte local ayant uniquement son nom unique relatif (RDN) retourné dans le paramètre NodeName.
NI_NUMERICHOST
Indique que la fonction retourne la forme numérique du nom d’hôte au lieu de son nom, une recherche DNS inversée. La forme numérique du nom d’hôte est également retournée si le nom d’hôte ne peut pas être résolu par DNS.
NI_NUMERICSERV
Indique que la fonction retourne le numéro de port du service au lieu de son nom. En outre, si un nom d’hôte n’est pas trouvé pour une adresse IP (127.0.0.2, par exemple), le nom d’hôte est retourné en tant qu’adresse IP.
[in, optional] OwningProcess
[in] Pointeur facultatif vers le processus à partir duquel la fonction récupère le contexte de sécurité. Ce contexte de sécurité indique le contexte du compte d’utilisateur dans lequel la fonction traite la demande de résolution de noms.
Si ce paramètre est NULL, la fonction traite la demande de résolution de noms dans le contexte d’un compte local prédéfini avec des privilèges minimaux.
Si ce paramètre n’est pas NULL et qu’un jeton d’emprunt d’identité est en vigueur pour le thread appelant, cette fonction échoue et retourne STATUS_INVALID_PARAMETER.
[in, optional] OwningThread
[in] Pointeur facultatif vers le thread à partir duquel la fonction récupère le contexte de sécurité. Ce paramètre ne peut pas êtreNULL uniquement si OwningProcess n’est pasNULL. Sinon, cette fonction échoue et retourne STATUS_INVALID_PARAMETER.
Si ce paramètre n’est pas NULL et qu’un jeton d’emprunt d’identité est en vigueur pour le thread appelant, cette fonction échoue et retourne STATUS_INVALID_PARAMETER.
[in, out] Irp
[in/out] Pointeur vers un paquet de demande d’E/S (IRP) à utiliser pour terminer la requête de manière asynchrone. Une fois la demande terminée, Irp ->Iostatus.Information contiendra le code d’état retourné.
Valeur de retour
WskGetNameInfo retourne l’un des codes NTSTATUS suivants :
Retourner le code | Description |
---|---|
|
Un paramètre non valide a été spécifié. |
|
Impossible de résoudre le nom d’hôte. |
|
La fonction s’est terminée correctement. Si l’application WSK a spécifié un pointeur vers un IRP dans le paramètre irp, l’IRP est terminé avec un état de réussite. |
|
Le sous-système WSK n’a pas pu terminer la fonction immédiatement. Le sous-système WSK termine l’IRP une fois l’opération de contrôle terminée. L’état de l’opération de contrôle est retourné dans le champ IoStatus.Status de l’IRP. |
|
Une erreur s’est produite. L’IRP est terminé avec l’état d’échec. |
Remarques
Le processus auquel le OwningProcess points de paramètre, ou le thread auquel le OwningThread points de processus, indique le contexte de sécurité de cette fonction. Le compte d’utilisateur indiqué par le contexte de sécurité indique le contexte de la demande de résolution de noms de la fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Windows 7 et versions ultérieures des systèmes d’exploitation Windows. |
plateforme cible | Universel |
d’en-tête | wsk.h (include Wsk.h) |
IRQL | PASSIVE_LEVEL |