Funzione WdfDeviceQueryPropertyEx (wdfdevice.h)
[Si applica a KMDF e UMDF]
Il metodo WdfDeviceQueryPropertyEx recupera una proprietà del dispositivo specificata.
Sintassi
NTSTATUS WdfDeviceQueryPropertyEx(
[in] WDFDEVICE Device,
[in] PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
[in] ULONG BufferLength,
[out] PVOID PropertyBuffer,
[out] PULONG RequiredSize,
[out] PDEVPROPTYPE Type
);
Parametri
[in] Device
Handle per un oggetto dispositivo framework.
[in] DeviceProperty
Puntatore a una struttura WDF_DEVICE_PROPERTY_DATA che identifica la proprietà del dispositivo da recuperare.
[in] BufferLength
Dimensioni, in byte, del buffer a cui fa riferimento 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] RequiredSize
Percorso fornito dal chiamante che, in caso di restituzione, contiene le dimensioni, in byte, delle informazioni archiviate nel metodo in 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 . Se il metodo ha esito positivo, dopo aver restituito questo parametro contiene il valore del tipo di proprietà dei dati della proprietà archiviati in PropertyBuffer.
Valore restituito
Se l'operazione ha esito positivo, WdfDeviceQueryPropertyEx 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.
Un controllo di bug si verifica se il driver fornisce un handle di oggetti non valido.
Commenti
È possibile usare WdfDeviceQueryPropertyEx per recuperare qualsiasi proprietà esposta tramite il modello di proprietà unificata, mentre il metodo WdfDeviceQueryProperty consente solo di eseguire query su un subset del modello di proprietà unificata.
Prima di ricevere i dati delle proprietà del dispositivo, i driver in genere chiamano il metodo WdfDeviceQueryPropertyEx 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 di nuovo WdfDeviceQueryPropertyEx . Pertanto, i driver devono chiamare WdfDeviceQueryPropertyEx all'interno di un ciclo che viene eseguito fino a quando lo stato restituito non è STATUS_BUFFER_TOO_SMALL.
È consigliabile usare WdfDeviceQueryPropertyEx solo se la dimensione del buffer necessaria è nota e non modificata, perché in questo caso il driver deve chiamare WdfDeviceQueryPropertyEx una sola volta. Se le dimensioni del buffer necessarie sono sconosciute o variano, il driver deve chiamare WdfDeviceAllocAndQueryPropertyEx.
Per informazioni sui metodi correlati, vedere Accesso al modello di proprietà dispositivo unificato.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.13 |
Versione UMDF minima | 2,0 |
Intestazione | wdfdevice.h (includere Wdf.h) |
Libreria | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | APC_LEVEL |