Compartir a través de


Función WdfFdoInitQueryPropertyEx (wdffdo.h)

[Se aplica a KMDF y UMDF]

El método WdfFdoInitQueryPropertyEx recupera una propiedad de dispositivo especificada.

Sintaxis

NTSTATUS WdfFdoInitQueryPropertyEx(
  [in]  PWDFDEVICE_INIT           DeviceInit,
  [in]  PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
  [in]  ULONG                     BufferLength,
  [out] PVOID                     PropertyBuffer,
  [out] PULONG                    ResultLength,
  [out] PDEVPROPTYPE              Type
);

Parámetros

[in] DeviceInit

Puntero a una estructura WDFDEVICE_INIT que el controlador obtuvo de su EvtDriverDeviceAdd función de devolución de llamada.

[in] DeviceProperty

Puntero a una estructura de WDF_DEVICE_PROPERTY_DATA que identifica la propiedad del dispositivo que se va a recuperar.

[in] BufferLength

Tamaño, en bytes, del búfer al que apunta PropertyBuffer.

[out] PropertyBuffer

Puntero proporcionado por el autor de la llamada a un búfer asignado por el autor de la llamada que recibe la información solicitada. El puntero puede ser NULL si el parámetro BufferLength es cero.

[out] ResultLength

Ubicación proporcionada por el autor de la llamada que, a su vez, contiene el tamaño, en bytes, de la información que el método almacenado en PropertyBuffer. Si el valor devuelto de la función es STATUS_BUFFER_TOO_SMALL, esta ubicación recibe el tamaño de búfer necesario.

[out] Type

Puntero a una variable de DEVPROPTYPE que, a cambio, contiene el valor de tipo de propiedad de los datos de propiedad almacenados en PropertyBuffer.

Valor devuelto

Si la operación se realiza correctamente, WdfFdoInitQueryPropertyEx devuelve STATUS_SUCCESS. Entre los valores devueltos adicionales se incluyen:

Código de retorno Descripción
STATUS_BUFFER_TOO_SMALL
El búfer proporcionado es demasiado pequeño para recibir la información.
STATUS_INVALID_PARAMETER
El valor de DeviceProperty especificado no es válido.
 

El método podría devolver otros valores ntstatus de .

Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.

Observaciones

Antes de recibir datos de propiedad del dispositivo, los controladores normalmente llaman al método WdfFdoInitQueryPropertyEx para obtener el tamaño de búfer necesario. En algunas propiedades, el tamaño de los datos puede cambiar entre cuando se devuelve el tamaño necesario y cuando el controlador llama a WdfFdoInitQueryPropertyEx de nuevo. Por lo tanto, los controladores deben llamar a WdfFdoInitQueryPropertyEx dentro de un bucle que se ejecuta hasta que no se STATUS_BUFFER_TOO_SMALL el estado devuelto.

Es mejor usar WdfFdoInitQueryPropertyEx solo si el tamaño de búfer necesario se conoce y no cambia, porque en ese caso el controlador tiene que llamar a WdfFdoInitQueryPropertyEx solo una vez. Si el tamaño de búfer necesario es desconocido o varía, el controlador debe llamar a WdfFdoInitAllocAndQueryPropertyEx.

El controlador puede llamar a WdfFdoInitQueryPropertyEx solo antes de llamar a WdfDeviceCreate. Para obtener más información sobre cómo llamar a WdfDeviceCreate, vea Creating a Framework Device Object.

Después de llamar a WdfDeviceCreate, un controlador puede obtener información de propiedad del dispositivo llamando a WdfDeviceQueryPropertyEx.

Para obtener información sobre los métodos relacionados, consulte Acceso al modelo de propiedades de dispositivo unificado.

Requisitos

Requisito Valor
de la plataforma de destino de Universal
versión mínima de KMDF 1.13
versión mínima de UMDF 2.0
encabezado wdffdo.h (incluya Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
irQL PASSIVE_LEVEL

Consulte también

WdfFdoInitQueryProperty