Compartir a través de


Función WdfDeviceQueryPropertyEx (wdfdevice.h)

[Se aplica a KMDF y UMDF]

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

Sintaxis

NTSTATUS WdfDeviceQueryPropertyEx(
  [in]  WDFDEVICE                 Device,
  [in]  PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
  [in]  ULONG                     BufferLength,
  [out] PVOID                     PropertyBuffer,
  [out] PULONG                    RequiredSize,
  [out] PDEVPROPTYPE              Type
);

Parámetros

[in] Device

Identificador de un objeto de dispositivo de marco.

[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] RequiredSize

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 . Si el método se realiza correctamente, al devolver este parámetro, contiene el valor de tipo de propiedad de los datos de propiedad almacenados en PropertyBuffer.

Valor devuelto

Si la operación se realiza correctamente, WdfDeviceQueryPropertyEx 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

Puede usar WdfDeviceQueryPropertyEx para recuperar cualquier propiedad expuesta a través del modelo de propiedades unificado, mientras que el método WdfDeviceQueryProperty solo permite consultar un subconjunto del modelo de propiedades unificado.

Antes de recibir datos de propiedad del dispositivo, los controladores suelen llamar al método WdfDeviceQueryPropertyEx 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 WdfDeviceQueryPropertyEx de nuevo. Por lo tanto, los controladores deben llamar a WdfDeviceQueryPropertyEx dentro de un bucle que se ejecuta hasta que el estado devuelto no se STATUS_BUFFER_TOO_SMALL.

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

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 wdfdevice.h (incluir Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL APC_LEVEL

Consulte también

WdfDeviceQueryInterfaceProperty

WdfDeviceQueryProperty