Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
[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 WdfIoTargetCreateo da un metodo fornito da una destinazione di I/O specializzata.
[in] DeviceProperty
Valore DEVICE_REGISTRY_PROPERTYtipizzato che identifica la proprietà del dispositivo da recuperare.
[in] BufferLength
Dimensioni, in byte, del buffer a cui PropertyBuffer punta.
[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 che WdfIoTargetQueryTargetProperty archiviate nel buffer a cui PropertyBuffer punta. 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 |
|---|---|
|
Buffer a cui punta il parametro PropertyBuffer era troppo piccolo per ricevere le informazioni richieste. |
|
Il 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.
Osservazioni:
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 variare tra quando vengono restituite le dimensioni necessarie e quando il driver chiama WdfIoTargetQueryTargetProperty di nuovo. 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.
Esempi
L'esempio di codice seguente ottiene 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 minima di KMDF | 1.0 |
| intestazione | wdfiotarget.h (include Wdf.h) |
| Biblioteca | Wdf01000.sys (vedere Controllo delle versioni della libreria framework). |
| IRQL | PASSIVE_LEVEL |
| regole di conformità DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |