Delen via


Apparaatgroepering gebruiken in UMDF-stuurprogramma's

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:

Als in een poolomgeving meerdere apparaatstacks hetzelfde stuurprogramma voor de gebruikersmodus delen:

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.