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