Funzione WdfIoTargetQueryForInterface (wdfiotarget.h)

[Si applica solo a KMDF]

Il metodo WdfIoTargetQueryForInterface ottiene l'accesso all'interfaccia GUID identificata dal driver di una destinazione di I/O remota.

Sintassi

NTSTATUS WdfIoTargetQueryForInterface(
  [in]           WDFIOTARGET IoTarget,
  [in]           LPCGUID     InterfaceType,
  [out]          PINTERFACE  Interface,
  [in]           USHORT      Size,
  [in]           USHORT      Version,
  [in, optional] PVOID       InterfaceSpecificData
);

Parametri

[in] IoTarget

Handle a un oggetto di destinazione di I/O remoto ottenuto da una chiamata precedente a WdfIoTargetCreate.

[in] InterfaceType

Puntatore a un GUID che identifica l'interfaccia.

[out] Interface

Puntatore a una struttura allocata da driver che riceve l'interfaccia richiesta. Questa struttura è definita dal driver che esporta l'interfaccia richiesta e deve iniziare con una struttura INTERFACE .

[in] Size

Dimensioni, in byte, della struttura allocata dal driver a cui Punta Interface .

[in] Version

Numero di versione dell'interfaccia richiesta. Il driver che esporta l'interfaccia richiesta definisce il formato di questo valore.

[in, optional] InterfaceSpecificData

Informazioni aggiuntive specifiche dell'interfaccia. Questo parametro è facoltativo e può essere NULL.

Valore restituito

WdfIoTargetQueryForInterface restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questo metodo potrebbe restituire uno dei valori seguenti:

Codice restituito Descrizione
STATUS_INVALID_PARAMETER
Il parametro IoTarget, InterfaceType o Interface è NULL.
STATUS_INSUFFICIENT_RESOURCES
il framework non è stato in grado di allocare una richiesta per inviare a un altro driver.
 

Questo metodo potrebbe restituire anche altri valori NTSTATUS.

Un controllo di bug si verifica se il driver fornisce un handle di oggetti non valido.

Commenti

Il driver può chiamare WdfIoTargetQueryForInterface per ottenere l'accesso a un'interfaccia definita dal driver creata da un driver in uno stack di driver diverso. Per accedere a un'interfaccia definita dal driver creata da un driver che si trova nello stesso stack di driver del driver del driver, il driver deve chiamare WdfFdoQueryForInterface.

I driver basati su framework definiscono le interfacce chiamando WdfDeviceAddQueryInterface. Per altre informazioni sulle interfacce definite dal driver, vedere Uso di interfacce Driver-Defined.

Esempio

Nell'esempio di codice seguente viene tentato di ottenere l'accesso a un'interfaccia di destinazione di I/O remota specificata. GUID_RAWPDO_INTERFACE_STANDARD è il GUID che identifica l'interfaccia.

NTSTATUS status;
RAWPDO_INTERFACE_STANDARD busInterface;

status = WdfIoTargetQueryForInterface(
                                      IoTarget,
                                      &GUID_RAWPDO_INTERFACE_STANDARD,
                                      (PINTERFACE) &busInterface,
                                      sizeof(RAWPDO_INTERFACE_STANDARD),
                                      1,
                                      NULL
                                      );
if (!NT_SUCCESS (status)){
    return status;
}

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1,0
Intestazione wdfiotarget.h (include Wdf.h)
Libreria Wdf01000.sys (vedere Framework Library Versioning).
IRQL PASSIVE_LEVEL
Regole di conformità DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Vedi anche

INTERFACCIA

WdfDeviceAddQueryInterface

WdfFdoQueryForInterface

WdfIoTargetCreate