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.
De meeste dispatchroutines van stuurprogramma's worden aangeroepen in een willekeurige threadcontext op IRQL = PASSIVE_LEVEL, met de volgende uitzonderingen:
Alle dispatchroutines van stuurprogramma's op het hoogste niveau worden aangeroepen in de context van de thread die afkomstig is van de I/O-aanvraag. Dit is meestal een toepassingsthread in de gebruikersmodus.
Met andere woorden, de verzendroutines van bestandssysteemstuurprogramma's en andere stuurprogramma's op het hoogste niveau worden aangeroepen in een niet-arbitraire threadcontext op IRQL = PASSIVE_LEVEL.
De routines DispatchRead, DispatchWrite en DispatchDeviceControl van apparaatstuurprogramma's op het laagste niveau en van tussenliggende stuurprogramma's die erboven in het pad voor systeempaginering zijn geplaatst, kunnen worden aangeroepen op IRQL = APC_LEVEL en in een willekeurige threadcontext.
De DispatchRead - en/of DispatchWrite-routines , en elke andere routine die ook lees- en/of schrijfaanvragen verwerkt in een dergelijk apparaat of tussenliggend stuurprogramma op het laagste niveau, moet altijd aanwezig zijn. Deze stuurprogrammaroutines kunnen niet paginagebaseerd zijn of deel uitmaken van de pagina-image sectie van een stuurprogramma; ze mogen geen toegang hebben tot paginagebaseerd geheugen. Bovendien mogen ze niet afhankelijk zijn van blokkeringsaanroepen (zoals KeWaitForSingleObject met een time-out van niet-nul).
De DispatchPower-routine van stuurprogramma's in de sluimerstand en/of pagineringspaden kan worden aangeroepen op IRQL = DISPATCH_LEVEL. De DispatchPnP-routines van dergelijke stuurprogramma's moeten worden voorbereid om PnP-IRP_MN_DEVICE_USAGE_NOTIFICATION aanvragen te verwerken.
De DispatchPower-routine van stuurprogramma's die inschakelstroom nodig hebben bij het opstarten, kan worden aangeroepen op IRQL = DISPATCH_LEVEL.
De DispatchPower-, DispatchRead-, DispatchWrite-, DispatchDeviceControl- en DispatchInternalDeviceControl-routines kunnen allemaal worden aangeroepen op IRQL <= DISPATCH_LEVEL.
Zie Hardwareprioriteiten beheren voor meer informatie.