Función WdfFdoInitQueryPropertyEx (wdffdo.h)
[Se aplica a KMDF y UMDF]
El método WdfFdoInitQueryPropertyEx recupera una propiedad de dispositivo especificada.
Sintaxis
NTSTATUS WdfFdoInitQueryPropertyEx(
[in] PWDFDEVICE_INIT DeviceInit,
[in] PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
[in] ULONG BufferLength,
[out] PVOID PropertyBuffer,
[out] PULONG ResultLength,
[out] PDEVPROPTYPE Type
);
Parámetros
[in] DeviceInit
Puntero a una estructura WDFDEVICE_INIT que el controlador obtuvo de su función de devolución de llamada EvtDriverDeviceAdd .
[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] 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 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 que, en la devolución, contiene el valor de tipo de propiedad de los datos de propiedad almacenados en PropertyBuffer.
Valor devuelto
Si la operación se realiza correctamente, WdfFdoInitQueryPropertyEx 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
Antes de recibir datos de propiedad del dispositivo, los controladores suelen llamar al método WdfFdoInitQueryPropertyEx 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 WdfFdoInitQueryPropertyEx de nuevo. Por lo tanto, los controladores deben llamar a WdfFdoInitQueryPropertyEx dentro de un bucle que se ejecuta hasta que el estado de retorno no sea STATUS_BUFFER_TOO_SMALL.
Es mejor usar WdfFdoInitQueryPropertyEx solo si el tamaño de búfer necesario se conoce y no cambia, porque en ese caso el controlador tiene que llamar a WdfFdoInitQueryPropertyEx solo una vez. Si el tamaño de búfer necesario es desconocido o varía, el controlador debe llamar a WdfFdoInitAllocAndQueryPropertyEx.
El controlador solo puede llamar a WdfFdoInitQueryPropertyEx antes de llamar a WdfDeviceCreate. Para obtener más información sobre cómo llamar a WdfDeviceCreate, vea Creating a Framework Device Object.
Después de llamar a WdfDeviceCreate, un controlador puede obtener información de las propiedades del dispositivo mediante una llamada a WdfDeviceQueryPropertyEx.
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 | wdffdo.h (incluir Wdf.h) |
Library | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |