Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Ogni driver di funzione crea un oggetto dispositivo framework per ognuno dei suoi dispositivi supportati presenti sul sistema. Poiché questi oggetti dispositivo vengono creati dai driver di funzione, vengono chiamati oggetti dispositivo funzionale (FDO). Ogni FDO è una rappresentazione della funzione del driver di un dispositivo.
Un driver di funzione deve creare un oggetto dispositivo framework ogni volta che il framework chiama la funzione di callback EvtDriverDeviceAdd del driver. Il framework chiama questa funzione di callback per informare il driver che uno dei dispositivi supportati esiste nel sistema.
La funzione di callback del driver EvtDriverDeviceAdd riceve un puntatore a una struttura WDFDEVICE_INIT. Il driver può chiamare un insieme di metodi di inizializzazione dell'oggetto dispositivo del framework, che memorizzano le informazioni nella struttura WDFDEVICE_INIT. Inoltre, i driver di funzione possono chiamare i metodi di inizializzazione FDO del framework.
La creazione di un oggetto dispositivo framework in un driver di funzione include in genere i passaggi seguenti:
Registrazione delle funzioni di callback di PnP, energia e politica energetica.
La maggior parte dei driver di funzione chiama WdfDeviceInitSetPnpPowerEventCallbacks per registrare le funzioni di callback di PnP e alimentazione. Per altre informazioni su queste funzioni di callback, vedere Supporto di PnP e risparmio energia nei driver di funzione.
Se il dispositivo supporta l'inattività a basso consumo o dispone di funzionalità di riattivazione, il driver di funzione chiama in genere anche WdfDeviceInitSetPowerPolicyEventCallbacks per registrare le funzioni di callback dei criteri di alimentazione. Per ulteriori informazioni su queste funzioni di callback, vedere Proprietà della Power Policy.
Registrazione di funzioni di callback specifiche del driver di funzione.
Alcuni driver di funzione chiamano WdfFdoInitSetEventCallbacks, se devono partecipare alla specifica delle risorse hardware di sistema richieste da un dispositivo. Per ulteriori informazioni sulle risorse hardware, vedere Risorse hardware per driver basati su framework.
Registrazione delle funzioni di callback degli eventi di file.
Se il driver deve rispondere quando un'applicazione si apre o chiude un file in un dispositivo, il driver deve chiamare WdfDeviceInitSetFileObjectConfig per registrare le funzioni di callback per l'oggetto file framework. Per altre informazioni, vedere Uso di oggetti file framework.
Impostazione degli attributi della richiesta di I/O.
Se il driver riceverà richieste di I/O da oggetti coda del framework, il driver può chiamare WdfDeviceInitSetRequestAttributes per configurare la memoria del contesto che il framework assegnerà agli oggetti richiesta di un dispositivo. Per altre informazioni, vedere Uso del contesto dell'oggetto richiesta.
Impostazione delle caratteristiche del dispositivo.
In genere, un driver di funzione chiama alcuni dei metodi seguenti per specificare le caratteristiche di un dispositivo:
- WdfDeviceInitSetDeviceType, per identificare il tipo di hardware supportato dal driver.
- WdfDeviceInitSetIoType, per identificare un metodo per l'accesso ai buffer di dati, se il driver gestisce le richieste di I/O dalle applicazioni.
- WdfDeviceInitSetCharacteristics, per impostare le caratteristiche del dispositivo, ad esempio se il dispositivo è di sola lettura o supporta supporti rimovibili.
- WdfDeviceInitSetExclusive, se il dispositivo richiede l'accesso esclusivo da un'applicazione alla volta.
- WdfDeviceInitSetPowerInrush, se il dispositivo richiede un inrush di corrente quando passa da uno stato a basso consumo al relativo stato di lavoro (D0).
- WdfDeviceInitSetPowerPageable o WdfDeviceInitSetPowerNotPageable, per indicare se il driver deve accedere ai dati impaginabili mentre il sistema sta passando tra uno stato di sospensione e lo stato di lavoro (S0).
- WdfDeviceInitAssignName, per assegnare un nome all'oggetto dispositivo.
- WdfDeviceInitAssignSDDLString, per assegnare un descrittore di sicurezza all'oggetto dispositivo.
- WdfDeviceInitSetDeviceClass per identificare la classe di installazione del dispositivo.
Recupero delle proprietà del dispositivo.
A volte i driver di funzione devono ottenere informazioni sulle proprietà del dispositivo impostate dal driver per il bus del dispositivo o da altri driver di livello inferiore. Il driver può chiamare WdfFdoInitQueryProperty o WdfFdoInitAllocAndQueryProperty per ottenere queste informazioni. I nuovi driver destinati a Windows 8.1 e versioni successive possono chiamare WdfFdoInitQueryPropertyEx e WdfFdoInitAllocAndQueryPropertyEx.
Accesso alla chiave del Registro di sistema del dispositivo.
Alcuni driver di funzione devono ottenere informazioni sul dispositivo o sul driver che un altro driver, un utente o un pacchetto di installazione ha inserito nel Registro di sistema. Il driver può chiamare WdfFdoInitOpenRegistryKey per aprire la chiave del Registro di sistema del dispositivo o del driver. Per altre informazioni, vedere Uso del Registro di sistema nei driver Framework-Based.
Creazione di una configurazione predefinita dell'elenco figlio da usare per l'enumerazione dinamica.
Se si sta scrivendo un driver di funzione per un bus e se il driver eseguirà l'enumerazione dinamica dei dispositivi figlio collegati al bus, il driver deve chiamare WdfFdoInitSetDefaultChildListConfig. Per altre informazioni, vedere Enumerating the Devices on a Bus.
Creazione dell'oggetto dispositivo.
Il passaggio finale nella creazione di un oggetto dispositivo consiste nel chiamare WdfDeviceCreate.