Compartir a través de


Función DhcpRequestParams (dhcpcsdk.h)

La función DhcpRequestParams permite a los autores de llamadas obtener datos DHCP de forma sincrónica o sincrónica y persistente de un servidor DHCP.

Sintaxis

DWORD DhcpRequestParams(
  [in]      DWORD                 Flags,
  [in]      LPVOID                Reserved,
  [in]      LPWSTR                AdapterName,
  [in]      LPDHCPCAPI_CLASSID    ClassId,
  [in]      DHCPCAPI_PARAMS_ARRAY SendParams,
  [in, out] DHCPCAPI_PARAMS_ARRAY RecdParams,
  [in]      LPBYTE                Buffer,
  [in, out] LPDWORD               pSize,
  [in]      LPWSTR                RequestIdStr
);

Parámetros

[in] Flags

Marcas que especifican los datos que se solicitan. Este parámetro es opcional. Se admiten los siguientes valores posibles y no son mutuamente excluyentes:

Valor Significado
DHCPCAPI_REQUEST_PERSISTENT
La solicitud se conserva, pero no se captura ninguna opción.
DHCPCAPI_REQUEST_SYNCHRONOUS
Las opciones se capturarán desde el servidor.

[in] Reserved

Reservado para uso futuro. Debe establecerse en NULL.

[in] AdapterName

GUID del adaptador en el que se realizan los datos solicitados. Debe tener menos de 256 caracteres.

[in] ClassId

Identificador de clase (ID) que se debe usar si se transmiten mensajes DHCP INFORM a la red. Este parámetro es opcional.

[in] SendParams

Datos opcionales que se van a solicitar, además de los datos solicitados en la matriz RecdParams . El parámetro SendParams no puede contener ninguna de las opciones estándar que el cliente DHCP envía de forma predeterminada.

[in, out] RecdParams

Matriz de datos DHCP que el autor de la llamada está interesado en recibir. Esta matriz debe estar vacía antes de la llamada a la función DhcpRequestParams .

[in] Buffer

Búfer usado para almacenar los datos asociados a las solicitudes realizadas en RecdParams.

[in, out] pSize

Tamaño del búfer.

Tamaño necesario del búfer, si no tiene el tamaño suficiente para contener los datos; de lo contrario, indica el tamaño del búfer que se llenó correctamente.

[in] RequestIdStr

Identificador de aplicación (ID) usado para facilitar una solicitud persistente. Debe ser una cadena imprimible sin caracteres especiales (no se pueden usar comas, barras diagonales inversas, dos puntos u otros caracteres no válidos). El identificador de aplicación (ID) especificado se usa en una llamada de función DhcpUndoRequestParams posterior para borrar la solicitud persistente, según sea necesario.

Valor devuelto

Devuelve ERROR_SUCCESS tras la finalización correcta.

Tras la devolución, RecdParams se rellena con punteros a los datos solicitados, con los datos correspondientes colocados en buffer. Si pSize indica que buffer no tiene espacio suficiente para almacenar los datos devueltos, la función DhcpRequestParams devuelve ERROR_MORE_DATA y devuelve el tamaño de búfer necesario en pSize. Tenga en cuenta que el tamaño necesario de Buffer puede aumentar durante el tiempo transcurrido entre el retorno de la llamada de función inicial y una llamada posterior; por lo tanto, el tamaño necesario de Buffer (indicado en pSize) proporciona una indicación del tamaño aproximado necesario de Buffer, en lugar de garantizar que las llamadas posteriores se devolverán correctamente si Buffer está establecido en el tamaño indicado en pSize.

Otros errores devuelven los códigos de error de Windows adecuados.

Código devuelto Descripción
ERROR_INVALID_PARAMETER
Se devuelve si el parámetro AdapterName tiene más de 256 caracteres de longitud.
ERROR_BUFFER_OVERFLOW
Se devuelve si el parámetro AdapterName tiene más de 256 caracteres de longitud.

Comentarios

Los clientes DHCP almacenan los datos obtenidos de un servidor DHCP en su caché local. Si la caché del cliente DHCP contiene todos los datos solicitados en la matriz RecdParams de una llamada de función DhcpRequestParams , el cliente devuelve datos de su caché. Si los datos solicitados no están disponibles en la memoria caché del cliente, el cliente procesa la llamada de función DhcpRequestParams mediante el envío de un mensaje DHCP-INFORM al servidor DHCP.

Cuando el cliente envía un mensaje DHCP-INFORM al servidor DHCP, incluye las solicitudes proporcionadas en el parámetro Opcional SendParams y proporciona el identificador de clase (ID) especificado en el parámetro ClassId , si se proporciona.

Los clientes también pueden especificar que los datos DHCP se recuperen del servidor DHCP cada vez que se inicie el cliente DHCP, que se considera una solicitud persistente. Para habilitar las solicitudes persistentes, el autor de la llamada debe especificar el parámetro RequestIdStr y también especificar la marca de DHCPAPI_REQUEST_PERSISTENT adicional en el parámetro dwFlags . Esta funcionalidad de solicitud persistente es especialmente útil cuando los clientes necesitan solicitar automáticamente información crítica de la aplicación en cada arranque. Para deshabilitar una solicitud persistente, los clientes deben llamar a la función .

Nota Los autores de llamadas de esta API no deben realizar llamadas de bloqueo a esta API, ya que puede tardar hasta un máximo de 2 minutos en devolver un código o estado. Los comportamientos de la interfaz de usuario en particular no deben bloquearse en la devolución de esta llamada, ya que puede introducir un retraso significativo en el tiempo de respuesta de la interfaz de usuario.
 
Para obtener más información sobre los mensajes DHCP INFORM y otra información basada en estándares sobre DHCP, consulte Estándares DHCP.

Para ver la función DhcpRequestParams en uso, consulte Ejemplos de DHCP.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado dhcpcsdk.h
Library Dhcpcsvc.lib
Archivo DLL Dhcpcsvc.dll

Consulte también

Funciones DHCP

DHCPCAPI_PARAMS_ARRAY

DhcpCApiInitialize

DhcpUndoRequestParams