Funzione WdfFdoInitQueryPropertyEx (wdffdo.h)
[Si applica a KMDF e UMDF]
Il metodo WdfFdoInitQueryPropertyEx recupera una proprietà del dispositivo specificata.
Sintassi
NTSTATUS WdfFdoInitQueryPropertyEx(
[in] PWDFDEVICE_INIT DeviceInit,
[in] PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
[in] ULONG BufferLength,
[out] PVOID PropertyBuffer,
[out] PULONG ResultLength,
[out] PDEVPROPTYPE Type
);
Parametri
[in] DeviceInit
Puntatore a una struttura WDFDEVICE_INIT ottenuta dal driver dalla relativa funzione di callback EvtDriverDeviceAdd .
[in] DeviceProperty
Puntatore a una struttura WDF_DEVICE_PROPERTY_DATA che identifica la proprietà del dispositivo da recuperare.
[in] BufferLength
Dimensione, in byte, del buffer a cui punta PropertyBuffer.
[out] PropertyBuffer
Puntatore fornito dal chiamante a un buffer allocato dal chiamante che riceve le informazioni richieste. Il puntatore può essere NULL se il parametro BufferLength è zero.
[out] ResultLength
Posizione fornita dal chiamante che, in caso di restituzione, contiene le dimensioni, in byte, delle informazioni archiviate nel metodo PropertyBuffer. Se il valore restituito della funzione è STATUS_BUFFER_TOO_SMALL, questa posizione riceve le dimensioni del buffer necessarie.
[out] Type
Puntatore a una variabile DEVPROPTYPE che, in caso di restituzione, contiene il valore del tipo di proprietà dei dati della proprietà archiviati in PropertyBuffer.
Valore restituito
Se l'operazione ha esito positivo, WdfFdoInitQueryPropertyEx restituisce STATUS_SUCCESS. I valori restituiti aggiuntivi includono:
Codice restituito | Descrizione |
---|---|
|
Il buffer fornito è troppo piccolo per ricevere le informazioni. |
|
Il valore DeviceProperty specificato non è valido. |
Il metodo potrebbe restituire altri valori NTSTATUS.
Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.
Commenti
Prima di ricevere i dati delle proprietà del dispositivo, i driver in genere chiamano il metodo WdfFdoInitQueryPropertyEx solo per ottenere le dimensioni del buffer necessarie. Per alcune proprietà, le dimensioni dei dati possono cambiare tra quando vengono restituite le dimensioni necessarie e quando il driver chiama nuovamente WdfFdoInitQueryPropertyEx . Pertanto, i driver devono chiamare WdfFdoInitQueryPropertyEx all'interno di un ciclo che viene eseguito fino a quando lo stato restituito non viene STATUS_BUFFER_TOO_SMALL.
È consigliabile usare WdfFdoInitQueryPropertyEx solo se la dimensione del buffer necessaria è nota e non modificabile, perché in questo caso il driver deve chiamare WdfFdoInitQueryPropertyEx una sola volta. Se le dimensioni del buffer richieste sono sconosciute o variano, il driver deve chiamare WdfFdoInitAllocAndQueryPropertyEx.
Il driver può chiamare WdfFdoInitQueryPropertyEx solo prima di chiamare WdfDeviceCreate. Per altre informazioni sulla chiamata a WdfDeviceCreate, vedere Creazione di un oggetto dispositivo framework.
Dopo aver chiamato WdfDeviceCreate, un driver può ottenere informazioni sulle proprietà del dispositivo chiamando WdfDeviceQueryPropertyEx.
Per informazioni sui metodi correlati, vedere Accesso al modello di proprietà del dispositivo unificato.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.13 |
Versione UMDF minima | 2,0 |
Intestazione | wdffdo.h (include Wdf.h) |
Libreria | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |