Funzione WdfIoTargetQueryTargetProperty (wdfiotarget.h)
[Si applica solo a KMDF]
Il metodo WdfIoTargetQueryTargetProperty recupera una proprietà del dispositivo specificata per una destinazione di I/O specificata.
Sintassi
NTSTATUS WdfIoTargetQueryTargetProperty(
[in] WDFIOTARGET IoTarget,
[in] DEVICE_REGISTRY_PROPERTY DeviceProperty,
[in] ULONG BufferLength,
[out, optional] PVOID PropertyBuffer,
[out] PULONG ResultLength
);
Parametri
[in] IoTarget
Handle per un oggetto di destinazione I/O locale o remoto ottenuto da una chiamata precedente a WdfDeviceGetIoTarget o WdfIoTargetCreate o da un metodo fornito da una destinazione di I/O specializzata.
[in] DeviceProperty
Valore tipizzato DEVICE_REGISTRY_PROPERTY che identifica la proprietà del dispositivo da recuperare.
[in] BufferLength
Dimensione, in byte, del buffer a cui punta PropertyBuffer .
[out, optional] PropertyBuffer
Puntatore a un buffer allocato dal chiamante che riceve le informazioni sulle proprietà del dispositivo richieste. Questo puntatore può essere NULL se BufferLength è zero.
[out] ResultLength
Puntatore a una posizione che, in caso di restituzione, contiene le dimensioni, in byte, delle informazioni a cui punta WdfIoTargetQueryTargetProperty nel buffer a cui punta PropertyBuffer . Se WdfIoTargetQueryTargetProperty restituisce STATUS_BUFFER_TOO_SMALL, questa posizione riceve le dimensioni del buffer necessarie.
Valore restituito
WdfIoTargetQueryTargetProperty restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questo metodo potrebbe restituire uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
Il buffer a cui punta il parametro PropertyBuffer era troppo piccolo per ricevere le informazioni richieste. |
|
Valore specificato dal parametro DeviceProperty non valido. |
|
I driver del dispositivo non hanno ancora segnalato le proprietà del dispositivo. |
Questo metodo potrebbe anche restituire altri valori NTSTATUS.
Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.
Commenti
Prima che i driver ricevano i dati delle proprietà del dispositivo, in genere chiamano il metodo WdfIoTargetQueryTargetProperty 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 WdfIoTargetQueryTargetProperty . Pertanto, i driver devono chiamare WdfIoTargetQueryTargetProperty all'interno di un ciclo che viene eseguito fino a quando lo stato restituito non è STATUS_BUFFER_TOO_SMALL.
Anziché chiamare WdfIoTargetQueryTargetProperty, il driver può chiamare WdfIoTargetAllocAndQueryTargetProperty, che alloca un buffer e inserisce le informazioni sulla proprietà nel buffer.
Per altre informazioni su WdfIoTargetQueryTargetProperty, vedere Ottenere informazioni su una destinazione di I/O generale.
Per altre informazioni sulle destinazioni di I/O, vedere Uso delle destinazioni di I/O.
Esempio
Nell'esempio di codice seguente viene ottenuta la proprietà DevicePropertyUINumber di un dispositivo. L'esempio chiama WdfIoTargetQueryTargetProperty anziché WdfIoTargetAllocAndQueryTargetProperty perché la lunghezza di un numero di interfaccia utente è nota.
ULONG targetUINumber, resultLength;
NTSTATUS status;
status = WdfIoTargetQueryTargetProperty(
target,
DevicePropertyUINumber,
sizeof(targetNumber),
&targetUINumber,
&resultLength
);
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Intestazione | wdfiotarget.h (include Wdf.h) |
Libreria | Wdf01000.sys (vedere Controllo delle versioni della libreria framework). |
IRQL | PASSIVE_LEVEL |
Regole di conformità DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |