Condividi tramite


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
STATUS_BUFFER_TOO_SMALL
Il buffer fornito è troppo piccolo per ricevere le informazioni.
STATUS_INVALID_PARAMETER
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

Vedi anche

WdfFdoInitQueryProperty