Función WdfDeviceQueryInterfaceProperty (wdfdevice.h)

[Solo se aplica a UMDF]

El método WdfDeviceQueryInterfaceProperty recupera una propiedad de interfaz de dispositivo especificada.

Sintaxis

NTSTATUS WdfDeviceQueryInterfaceProperty(
  [in]  WDFDEVICE                           Device,
  [in]  PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData,
  [in]  ULONG                               BufferLength,
  [out] PVOID                               PropertyBuffer,
  [out] PULONG                              ResultLength,
  [out] PDEVPROPTYPE                        Type
);

Parámetros

[in] Device

Identificador de un objeto de dispositivo de marco.

[in] PropertyData

Puntero a una estructura WDF_DEVICE_INTERFACE_PROPERTY_DATA que identifica la propiedad de interfaz de dispositivo que se va a recuperar.

[in] BufferLength

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

[out] PropertyBuffer

Puntero a un búfer asignado por el autor de la llamada que recibe la propiedad de interfaz de dispositivo 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 WdfDeviceQueryInterfaceProperty almacena 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 con tipo DEVPROPTYPE que identifica el tipo de datos de propiedad a los que WdfDeviceQueryInterfaceProperty almacena en el búfer al que Apunta PropertyBuffer .

Valor devuelto

Si el método WdfDeviceQueryInterfaceProperty no encuentra ningún error, devuelve STATUS_SUCCESS. Entre los valores devueltos adicionales se incluyen:

Código devuelto Descripción
STATUS_BUFFER_TOO_SMALL
El búfer de entrada es demasiado pequeño para recibir la información.
STATUS_INVALID_PARAMETER_2
El valor del parámetro especificado no es válido.
 

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

Comentarios

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

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

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8.1
Plataforma de destino Universal
Versión mínima de UMDF 2.0
Encabezado wdfdevice.h (incluir Wdf.h)
Library WUDFx02000.lib
Archivo DLL WUDFx02000.dll
IRQL PASSIVE_LEVEL

Consulte también

WDF_DEVICE_INTERFACE_PROPERTY_DATA

WDF_DEVICE_INTERFACE_PROPERTY_DATA_INIT

WdfDeviceAllocAndQueryInterfaceProperty

WdfDeviceAssignInterfaceProperty