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 |
---|---|
|
El búfer de entrada es demasiado pequeño para recibir la información. |
|
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