Funzione WdfFdoQueryForInterface (wdffdo.h)

[Si applica solo a KMDF]

Il metodo WdfFdoQueryForInterface ottiene l'accesso all'interfaccia identificata dal GUID di un altro driver.

Sintassi

NTSTATUS WdfFdoQueryForInterface(
  [in]           WDFDEVICE  Fdo,
  [in]           LPCGUID    InterfaceType,
  [out]          PINTERFACE Interface,
  [in]           USHORT     Size,
  [in]           USHORT     Version,
  [in, optional] PVOID      InterfaceSpecificData
);

Parametri

[in] Fdo

Handle per un oggetto dispositivo framework.

[in] InterfaceType

Puntatore a un GUID che identifica l'interfaccia.

[out] Interface

Puntatore a una struttura allocata dal 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

Dimensione, in byte, della struttura allocata dal driver che rappresenta l'interfaccia richiesta.

[in] Version

Numero di versione dell'interfaccia richiesta. Il formato di questo valore è definito dal driver che esporta l'interfaccia richiesta.

[in, optional] InterfaceSpecificData

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

Valore restituito

Se l'operazione ha esito positivo, il metodo restituisce STATUS_SUCCESS. I valori restituiti aggiuntivi includono:

Codice restituito Descrizione
STATUS_INVALID_PARAMETER
L'oggetto dispositivo non è valido o se il parametro Device, InterfaceType o Interface è NULL.
STATUS_INSUFFICIENT_RESOURCES
Il framework non è riuscito ad allocare una richiesta di invio a un altro driver.
 

Il metodo potrebbe anche restituire altri valori NTSTATUS.

Un controllo dei bug di sistema si verifica se il driver fornisce un handle di oggetto non valido.

Commenti

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

I driver basati su framework definiscono le interfacce chiamando WdfDeviceAddQueryInterface.

Per altre informazioni su WdfFdoQueryForInterface, vedere Uso di interfacce Driver-Defined.

Esempio

L'esempio di codice seguente è tratto dal driver di funzione di esempio Tostapane . In questo esempio viene ottenuto l'accesso a un'interfaccia definita dal driver del bus di esempio tostapane.

status = WdfFdoQueryForInterface(
                                 Device,
                                 &GUID_TOASTER_INTERFACE_STANDARD,
                                 (PINTERFACE) &fdoData->BusInterface, // Object context space
                                 sizeof(TOASTER_INTERFACE_STANDARD),
                                 1,
                                 NULL
                                 );

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1.0
Intestazione wdffdo.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

WdfIoTargetQueryForInterface