Condividi tramite


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 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
STATUS_BUFFER_TOO_SMALL
Buffer a cui punta il parametro PropertyBuffer era troppo piccolo per ricevere le informazioni richieste.
STATUS_INVALID_PARAMETER_2
Il 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.

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)

Vedere anche

DEVICE_REGISTRY_PROPERTY

WdfDeviceGetIoTarget

WdfDeviceQueryProperty

WdfIoTargetAllocAndQueryTargetProperty

WdfIoTargetCreare