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 función de devolución de llamada EvtDriverDeviceAdd .

[in] DeviceProperty

Puntero a una estructura 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

Una ubicación proporcionada por el autor de la llamada que, a cambio, 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 DEVPROPTYPE que, en la devolución, 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 devuelto Descripción
STATUS_BUFFER_TOO_SMALL
El búfer proporcionado es demasiado pequeño para recibir la información.
STATUS_INVALID_PARAMETER
El valor deviceProperty especificado no es válido.
 

El método podría devolver otros valores NTSTATUS.

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

Comentarios

Antes de recibir datos de propiedad del dispositivo, los controladores suelen llamar al método WdfFdoInitQueryPropertyEx solo para obtener el tamaño de búfer necesario. Para 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 el estado de retorno no sea STATUS_BUFFER_TOO_SMALL.

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 solo puede llamar a WdfFdoInitQueryPropertyEx 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 las propiedades del dispositivo mediante una llamada a WdfDeviceQueryPropertyEx.

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

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.13
Versión mínima de UMDF 2.0
Encabezado wdffdo.h (incluir Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL

Consulte también

WdfFdoInitQueryProperty