Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
[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 de 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
Ubicación proporcionada por el autor de la llamada que, a su vez, 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 de DEVPROPTYPE. Si el método se ejecuta correctamente, una vez devuelto 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 de DeviceProperty especificado no es válido. |
El método podría devolver otros valores ntstatus de .
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Observaciones
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 propiedades del dispositivo, los controladores suelen llamar al método WdfDeviceQueryPropertyEx para obtener el tamaño de búfer necesario. En 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 no se STATUS_BUFFER_TOO_SMALL el estado de retorno.
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 | Valor |
|---|---|
| de la plataforma de destino de | Universal |
| versión mínima de KMDF | 1.13 |
| versión mínima de UMDF | 2.0 |
| encabezado de | wdfdevice.h (incluya Wdf.h) |
| biblioteca de | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
| irQL | APC_LEVEL |