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
STATUS_BUFFER_TOO_SMALL
Il buffer a cui punta il parametro PropertyBuffer era troppo piccolo per ricevere le informazioni richieste.
STATUS_INVALID_PARAMETER_2
Valore specificato dal parametro DeviceProperty non valido.
STATUS_INVALID_DEVICE_REQUEST
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)

Vedi anche

DEVICE_REGISTRY_PROPERTY

WdfDeviceGetIoTarget

WdfDeviceQueryProperty

WdfIoTargetAllocAndQueryTargetProperty

WdfIoTargetCreate