Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Elke buschauffeur moet een frameworkapparaatobject maken wanneer hij ontdekt dat een apparaat voor kind is verbonden met een apparaat voor ouder. Het bovenliggende apparaat is meestal een bus, maar het kan ook een multifunctioneel apparaat zijn waarvoor elke functie een afzonderlijke set stuurprogramma's vereist (zoals een geluidskaart die digitale audio en MIDI ondersteunt). De apparaatobjecten die bustuurprogramma's maken, worden fysieke apparaatobjecten (PDO's) genoemd omdat elk een daadwerkelijke verbinding van één stuk hardware (het kind) met een ander (de ouder) vertegenwoordigt.
Het proces van het identificeren en rapporteren van de apparaten die met een bus zijn verbonden, wordt busenumeratie genoemd.
Als een bussysteemstuurprogramma dynamische busenumeratie uitvoert, ontvangt de callbackfunctie EvtChildListCreateDevice een handvat naar een WDFDEVICE_INIT-structuur.
Als een busdriver statische businventarisatie uitvoert, moet het WdfPdoInitAllocate aanroepen om een handle te verkrijgen voor een WDFDEVICE_INIT structuur.
Voor meer informatie over busenumeratie, zie Apparaten op een bus opsommen.
Een bustuurprogramma kan een set framework apparaatobject initialisatiemethoden aanroepen, waarmee informatie in de WDFDEVICE_INIT structuur wordt opgeslagen. Bovendien kunnen buschauffeurs framework-PDO-initialisatiemethoden aanroepen.
Het maken van een framework-apparaatobject voor een geënumereerd child-device omvat doorgaans de volgende stappen:
Het registreren van specifieke callbackfuncties voor buschauffeurs.
De meeste busdrivers bellen #B0 #A1 WdfPdoInitSetEventCallbacks #A2 #A3, omdat ze de systeemhardwarebronnen moeten opgeven die een apparaat nodig heeft. Zie voor meer informatie over het specificeren van hardwareresources Hardwareresources voor Framework-Based-stuurprogramma's. Extra callback-functies kunnen worden geregistreerd als het apparaat en stuurprogramma ondersteuning bieden voor uitwerping.
Rapporteren van apparaatidentificatiereeksen.
Busstuurprogramma's moeten de identificatietekenreeksen van het apparaat rapporteren door WdfPdoInitAssignDeviceID, WdfPdoInitAssignInstanceID, WdfPdoInitAddCompatibleID en WdfPdoInitAddHardwareID aan te roepen voor elk type tekenreeks dat het apparaat ondersteunt. Bovendien kunnen busstuurprogramma's die gebruikmaken van versie 1.9 of hoger van het framework WdfPdoInitAssignContainerID aanroepen.
Rapporteren of het busstuurprogramma het apparaat in de onbewerkte modus kan ondersteunen.
Als de busdriver raw modus voor het apparaat ondersteunt, moet het WdfPdoInitAssignRawDevice aanroepen.
Geef weerbare tekst op die het apparaat beschrijft.
Busdrivers roepen WdfPdoInitAddDeviceText en WdfPdoInitSetDefaultLocale aan om tekst te leveren die het apparaat in meerdere talen beschrijft.
Het apparaatobject maken.
De laatste stap bij het maken van een apparaatobject is het aanroepen van WdfDeviceCreate.
Als het stuurprogramma een fout tegenkomt tijdens het initialiseren van de WDFDEVICE_INIT-structuur die het heeft verkregen uit WdfPdoInitAllocate, moet het stuurprogramma WdfDeviceInitFree aanroepen in plaats van WdfDeviceCreate.
Nadat het busstuurprogramma het apparaatobject heeft gemaakt, roept het doorgaans (c1)(c0)WdfDeviceSetPnpCapabilities(c0)(c1) en (c3)(c2)WdfDeviceSetPowerCapabilities(c2)(c3) aan om de plug-and-play- en stroommogelijkheden van het apparaat te rapporteren.
Elke buschauffeur is ook het functiestuurprogramma voor de busadapter. Daarom moet het stuurprogramma ook een EvtDriverDeviceAdd-callbackfunctie opgeven. Met deze callback-functie maakt u een functioneel apparaatobject (FDO) voor elke busadapter op het systeem. Voor meer informatie over het maken van FDO's, zie Apparaatobjecten maken in een functiestuurprogramma.