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.
User-Mode Driver Framework (UMDF) versie 1.11 en 2.0
Als uw stuurprogramma voor User-Mode Driver Framework (UMDF) is gebouwd met versie 1.11 of 2.0 en wordt uitgevoerd in Windows 8 of hoger, maakt het framework één exemplaar van Wudfhost dat meerdere apparaatstacks kan hosten. Deze techniek wordt apparaatgroeperinggenoemd. Het belangrijkste voordeel van het groeperen van apparaten is minder geheugengebruik in een omgeving met meerdere UMDF-apparaten.
Als een gegroepeerd apparaat mislukt, beëindigt het framework het exemplaar van Wudfhost en probeert het alle apparaten die zich eerder in de pool bevonden, opnieuw op te starten. Als het apparaat opnieuw mislukt terwijl het is gegroepeerd, maakt het framework een afzonderlijk Wudfhost-proces voor het apparaat en probeert het apparaat opnieuw te starten.
Als het apparaat mislukt in het afzonderlijke hostproces, probeert het framework het maximaal vijf keer opnieuw op te starten. Het framework stelt het aantal apparaatfouten opnieuw in op één wanneer dertig minuten zijn verstreken sinds de laatste fout.
Als het systeem opnieuw wordt opgestart, worden apparaten opnieuw in het framework verzameld, met uitzondering van apparaten die zijn uitgevallen tijdens het uitvoeren in een afzonderlijk proces.
Om apparaatpooling voor een specifiek apparaat uit te schakelen, gebruikt u de instructie UmdfHostProcessSharing in de WDF-specifieke DDInstall sectie van de INF. Zie voor meer informatie over UmdfHostProcessSharingWDF-instructies opgeven in INF-bestanden.
Als uw stuurprogramma directe I/O-gebruikt, moet u UmdfHostProcessSharing- instellen op ProcessSharingDisabled. Anders kan het zijn dat uw stuurprogramma niet start. Als WdfDeviceIoBufferedOrDirect is geselecteerd en het apparaat is gepoold, wijzigt het framework de bufferaccessmethode naar gebufferde I/O. Als WdfDeviceIoBufferedOrDirect is geselecteerd en het apparaat niet wordt gedeeld, wijzigt het framework de buffertoegangsmethode naar directe I/O.
Als u een buffertoegangsmethode wilt selecteren, moet uw stuurprogramma de methode IWDFDeviceInitialize2::SetIoTypePreference methode aanroepen vanuit de IDriverEntry::OnDeviceAdd callback-functie. Zie Toegang tot gegevensbuffers in UMDF-Based stuurprogramma'svoor meer informatie over toegangsmethoden.
UMDF-versies 1.9 en eerder
Als uw stuurprogramma is gebouwd met UMDF versie 1.9 of eerder, maakt het framework een afzonderlijk exemplaar van het hostproces (Wudfhost) voor elke apparaatstack.
Als het apparaat niet kan worden gestart, probeert het framework het maximaal vijf keer opnieuw op te starten. Het framework stelt het aantal apparaatfouten opnieuw in op één wanneer dertig minuten zijn verstreken sinds de laatste fout.
Als in een niet-poolomgeving meerdere apparaatstacks hetzelfde UMDF-stuurprogramma delen:
- Elke apparaatstack wordt geladen in een afzonderlijk WudfHost-proces.
- Het framework roept de IDriverEntry::OnInitialize-methode en de IDriverEntry::OnDeinitialize-methode eenmaal aan voor elke apparaatstack.
- Het framework roept de methode IDriverEntry::OnDeviceAdd eenmaal aan voor elke stack van apparaten. Elk apparaatobject is gekoppeld aan een afzonderlijk stuurprogrammaobject.
Als in een poolomgeving meerdere apparaatstacks hetzelfde stuurprogramma voor de gebruikersmodus delen:
- Elke apparaatstack wordt geladen in hetzelfde WudfHost-proces.
- Het framework roept de methoden IDriverEntry::OnInitialize en IDriverEntry::OnDeinitialize slechts één keer aan.
- Het framework roept de IDriverEntry::OnDeviceAdd-methode eenmaal aan voor elke apparaatstack. Elk apparaatobject is gekoppeld aan hetzelfde stuurprogrammaobject.
Omdat er slechts één stuurprogrammaobject in een gegroepeerde configuratie is, mag het stuurprogramma geen context per apparaat opslaan in globale variabelen of in objecten die op de apparaten worden gedeeld, zoals het callback-object van het stuurprogramma. In plaats daarvan moet het stuurprogramma context per apparaat opslaan in een object dat niet wordt gedeeld tussen de apparaatstacks, zoals het callback-object van het apparaat van het stuurprogramma.