Condividi tramite


Creazione di oggetti dispositivo in un driver del bus

Ogni driver del bus deve creare un oggetto dispositivo framework quando rileva che un dispositivo figlio è connesso a un dispositivo padre. Il dispositivo padre è in genere un bus, ma può anche essere un dispositivo multifunzione per cui ogni funzione richiede un set separato di driver (ad esempio una scheda audio che supporta audio digitale e MIDI). Gli oggetti dispositivo creati dai driver del bus sono denominati oggetti dispositivo fisico (PDO) perché ognuno rappresenta una connessione effettiva di un componente hardware (figlio) a un altro (padre).

Il processo di identificazione e segnalazione dei dispositivi connessi a un bus viene chiamato enumerazione del bus .

Per altre informazioni sull'enumerazione del bus, consultare Enumerazione dei dispositivi su un bus.

Un autista del bus può invocare un insieme di metodi di inizializzazione dell'oggetto dispositivo framework , che archivia le informazioni nella struttura WDFDEVICE_INIT. Inoltre, gli autisti dell'autobus possono chiamare i metodi di inizializzazione del framework PDO .

La creazione di un oggetto dispositivo framework per un dispositivo figlio enumerato include in genere i passaggi seguenti:

  • Registrazione delle funzioni di callback specifiche dell'autista del bus.

    La maggior parte dei driver del bus chiama WdfPdoInitSetEventCallbacks, perché deve specificare le risorse hardware di sistema richieste da un dispositivo. Per altre informazioni sulla specifica delle risorse hardware, vedere Risorse hardware per i driver Framework-Based. È possibile registrare funzioni di callback aggiuntive se il dispositivo e il driver supportano l'espulsione.

  • Segnalazione delle stringhe di identificazione del dispositivo .

    I driver del bus devono segnalare le stringhe di identificazione del dispositivo chiamando WdfPdoInitAssignDeviceID, WdfPdoInitAssignInstanceID, WdfPdoInitAddCompatibleIDe WdfPdoInitAddHardwareID per ogni tipo di stringa supportata dal dispositivo. Inoltre, i driver di bus che usano la versione 1.9 o successiva del framework possono chiamare WdfPdoInitAssignContainerID.

  • Segnalazione se il driver del bus può supportare il dispositivo in modalità non elaborata.

    Se il driver del bus supporta la modalità raw per il dispositivo, deve chiamare WdfPdoInitAssignRawDevice.

  • Fornitura di testo visualizzabile che descrive il dispositivo.

    I driver del bus chiamano WdfPdoInitAddDeviceText e WdfPdoInitSetDefaultLocale per fornire testo che descrive il dispositivo agli utenti, in più lingue.

  • Creazione dell'oggetto dispositivo.

    Il passaggio finale nella creazione di un oggetto dispositivo consiste nel chiamare WdfDeviceCreate.

Se il driver rileva un errore durante l'inizializzazione della struttura WDFDEVICE_INIT ottenuta da WdfPdoInitAllocate, il driver deve chiamare WdfDeviceInitFree anziché WdfDeviceCreate.

Dopo aver creato l'oggetto dispositivo, il driver del bus chiama in genere WdfDeviceSetPnpCapabilities e WdfDeviceSetPowerCapabilities per segnalare le funzionalità plug and play e alimentazione del dispositivo.

Ogni autista di autobus è anche il driver di funzione per l'adattatore bus. Pertanto, il driver deve fornire anche una funzione di callback EvtDriverDeviceAdd. Questa funzione di callback crea un oggetto dispositivo funzionale (FDO) per ogni scheda bus nel sistema. Per ulteriori informazioni sulla creazione di FDO, vedere Creazione di oggetti dispositivo in un driver di funzione.