PFN_WSK_GET_NAME_INFO función de devolución de llamada (wsk.h)

La función WskGetNameInfo proporciona una traducción independiente del protocolo de una dirección de transporte a un nombre de host.

Sintaxis

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

Parámetros

[in] Client

[in] Puntero a una estructura de WSK_CLIENT que se devolvió a través del parámetro WskProviderNpi del Función WskCaptureProviderNPI .

[in] SockAddr

[in] Puntero a una estructura SOCKADDR que contiene la dirección IP y el número de puerto del socket.

[in] SockAddrLength

[in] Especifica la longitud, en bytes, del búfer al que apunta el parámetro SockAddr . El valor de SockAddrLength no debe superar el tamaño de la estructura de SOCKADDR_STORAGE .

[out, optional] NodeName

[out] Puntero opcional a una estructura UNICODE_STRING que contiene una cadena Unicode que representa un nombre de host (nodo). Si se ejecuta correctamente, el nombre de host Unicode se escribe como un nombre de dominio completo (FQDN) de forma predeterminada. El autor de la llamada debe proporcionar un búfer de UNICODE_STRING lo suficientemente grande como para contener el nombre de host Unicode, que incluye el carácter NULL de terminación. Si el parámetro NodeBuffer es NULL, el autor de la llamada no quiere recibir una cadena de nombre de host. NodeBuffer y ServiceBuffer no deben ser NULL.

[out, optional] ServiceName

[out] Puntero opcional a una estructura UNICODE_STRING que contiene una cadena Unicode que representa un nombre de servicio asociado al número de puerto. El autor de la llamada debe proporcionar un búfer de UNICODE_STRING lo suficientemente grande como para contener el nombre del servicio Unicode, que incluye el carácter NULL de terminación. Si el parámetro NodeBuffer es NULL, el autor de la llamada no quiere recibir una cadena de nombre de servicio. NodeBuffer y ServiceBuffer no deben ser NULL.

[in] Flags

[in] Valor de ULONG que se usa para personalizar el procesamiento de esta función.

Las marcas siguientes están disponibles:

NI_DGRAM

Indica que el servicio es un servicio de datagramas. Esta marca es necesaria para los pocos servicios que proporcionan números de puerto diferentes para el servicio UDP y TCP.

NI_NAMEREQD

Indica que un nombre de host que DNS no puede resolver produce un error.

NI_NOFQDN

Da como resultado que un host local solo tenga su nombre distintivo relativo (RDN) devuelto en el parámetro NodeName .

NI_NUMERICHOST

Indica que la función devuelve la forma numérica del nombre de host en lugar de su nombre, una búsqueda inversa de DNS. La forma numérica del nombre de host también se devuelve si DNS no puede resolver el nombre de host.

NI_NUMERICSERV

Indica que la función devuelve el número de puerto del servicio en lugar de su nombre. Además, si no se encuentra un nombre de host para una dirección IP (127.0.0.2, por ejemplo), el nombre de host se devuelve como dirección IP.

[in, optional] OwningProcess

[in] Puntero opcional al proceso desde el que la función recupera el contexto de seguridad. Este contexto de seguridad indica el contexto de la cuenta de usuario en el que la función procesa la solicitud de resolución de nombres.

Si este parámetro es NULL, la función procesa la solicitud de resolución de nombres en el contexto de una cuenta local predefinida con privilegios mínimos.

Si este parámetro no es NULL y un token de suplantación está en vigor para el subproceso que realiza la llamada, esta función produce un error y devuelve STATUS_INVALID_PARAMETER.

[in, optional] OwningThread

[in] Puntero opcional al subproceso desde el que la función recupera el contexto de seguridad. Este parámetro solo puede ser distinto de NULL si OwningProcess no es NULL. De lo contrario, se produce un error en esta función y devuelve STATUS_INVALID_PARAMETER.

Si este parámetro no es NULL y un token de suplantación está en vigor para el subproceso que realiza la llamada, esta función produce un error y devuelve STATUS_INVALID_PARAMETER.

[in, out] Irp

[in/out] Puntero a un paquete de solicitud de E/S (IRP) que se va a usar para completar la solicitud de forma asincrónica. Tras la finalización de la solicitud, Irp ->Iostatus.Information contendrá el código de estado devuelto.

Valor devuelto

WskGetNameInfo devuelve uno de los siguientes códigos NTSTATUS:

Código devuelto Descripción
STATUS_INVALID_PARAMETER
Se especificó un parámetro no válido.
STATUS_NO_MATCH
No se puede resolver el nombre de host.
STATUS_SUCCESS
Si se devuelve este valor, significa que la función se completó correctamente. Si la aplicación WSK especificó un puntero a un IRP en el Parámetro Irp , el IRP se completará con un estado correcto.
STATUS_PENDING
El subsistema WSK no pudo completar la función inmediatamente. El subsistema WSK completará el IRP una vez que haya completado la operación de control. El estado de la operación de control se devolverá en el campo IoStatus.Status del IRP.
Otros códigos de estado
Se produjo un error. El IRP se completará con el estado de error.

Comentarios

El proceso al que apunta el parámetro OwningProcess o el subproceso al que apunta el proceso OwningThread , indica el contexto de seguridad de esta función. La cuenta de usuario indicada por el contexto de seguridad indica el contexto de la solicitud de resolución de nombres de la función.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows 7 y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Universal
Encabezado wsk.h (incluya Wsk.h)
IRQL PASSIVE_LEVEL

Consulte también

SOCKADDR

SOCKADDR_STORAGE

UNICODE_STRING

WSK_CLIENT

WskCaptureProviderNPI

WskGetAddressInfo