Condividi tramite


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

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] RequiredSize

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 di DEVPROPTYPE. Se il metodo ha esito positivo, quando restituisce 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
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.

Osservazioni

È possibile usare WdfDeviceQueryPropertyEx per recuperare qualsiasi proprietà esposta tramite il modello di proprietà unificato, mentre il metodo WdfDeviceQueryProperty consente solo di eseguire query su un subset del modello di proprietà unificato.

Prima di ricevere i dati delle proprietà del dispositivo, i driver chiamano in genere il metodo WdfDeviceQueryPropertyEx solo per ottenere le dimensioni del buffer necessarie. Per alcune proprietà, le dimensioni dei dati possono variare tra quando vengono restituite le dimensioni necessarie e quando il driver chiama WdfDeviceQueryPropertyEx di nuovo. 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 le dimensioni del buffer necessarie sono note e non modificabili, 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à del dispositivo unificato.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
versione minima di KMDF 1.13
versione minima di UMDF 2.0
intestazione wdfdevice.h (include Wdf.h)
libreria Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL APC_LEVEL

Vedere anche

WdfDeviceQueryInterfaceProperty

WdfDeviceQueryProperty