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 |
---|---|
|
L'oggetto dispositivo non è valido o se il parametro Device, InterfaceType o Interface è NULL. |
|
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) |