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 EvtDriverDeviceAdd función de devolución de llamada.
[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] ResultLength
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 que, a cambio, 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 de retorno | 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
Antes de recibir datos de propiedad del dispositivo, los controladores normalmente llaman al método WdfFdoInitQueryPropertyEx 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 WdfFdoInitQueryPropertyEx de nuevo. Por lo tanto, los controladores deben llamar a WdfFdoInitQueryPropertyEx dentro de un bucle que se ejecuta hasta que no se STATUS_BUFFER_TOO_SMALL el estado devuelto.
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 puede llamar a WdfFdoInitQueryPropertyEx solo 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 propiedad del dispositivo llamando a WdfDeviceQueryPropertyEx.
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 | wdffdo.h (incluya Wdf.h) |
Biblioteca | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
irQL | PASSIVE_LEVEL |