Architettura WDF
WDF fornisce interfacce basate su oggetti per i driver. Le interfacce oggetto definite dal framework sono costituite da:
Metodi dell'oggetto
I metodi sono funzioni che un driver può chiamare per eseguire un'operazione sull'oggetto o per ottenere o impostare una proprietà dell'oggetto. I metodi sono denominati WdfObjectAction, dove Object descrive l'oggetto e Action indica le operazioni eseguite dalla funzione. Ad esempio, WdfDeviceCreate crea un oggetto dispositivo.
Funzioni di callback degli eventi oggetto
Le funzioni di callback degli eventi sono funzioni fornite da un driver. Ogni funzione di callback di evento è associata a un evento specifico che può verificarsi su un oggetto . Il framework chiama la funzione di callback dell'evento quando si verifica l'evento associato. Per convenzione, i segnaposto per le funzioni di callback degli eventi sono denominati EvtObjectEvent, anche se è possibile denominare questi callback qualsiasi elemento scelto nel driver. Ad esempio, un driver registra il callback dell'evento EvtDeviceD0Entry per ricevere una notifica quando il dispositivo entra nello stato di lavoro.
Proprietà dell'oggetto
Le proprietà sono valori archiviati all'interno di un oggetto e che un driver può ottenere (ovvero ottenere) e impostare (ovvero, modificare). In molti casi, le proprietà eseguono il mapping diretto ai campi negli oggetti WDM corrispondenti. Le proprietà che non possono avere esito negativo sono denominate WdfObjectGetValue e WdfObjectSetValue e le proprietà che possono non riuscire sono denominate WdfObjectRetrieveValue e WdfObjectAssignValue. L'oggetto descrive l'oggetto e Value identifica i dati impostati o restituiti dalla funzione. Ad esempio, WdfDeviceGetDriver restituisce un handle all'oggetto driver associato all'oggetto dispositivo.
Handle di oggetto
Un driver basato su framework non accede mai direttamente agli oggetti framework. Il driver riceve invece handle di oggetto, che può passare ai metodi di un oggetto.
Il framework definisce diversi tipi di oggetto usati dai driver basati su framework:
Un oggetto driver framework rappresenta ogni driver.
Un oggetto dispositivo framework rappresenta ogni dispositivo supportato da un driver.
Gli oggetti coda framework rappresentano code di I/O che ricevono le richieste di I/O di un dispositivo.
Gli oggetti richiesta framework rappresentano le richieste di I/O ricevute da ogni coda di I/O.
Per un elenco di tutti gli oggetti definiti dal framework, vedere Riepilogo degli oggetti framework.