Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
De flesta drivrutiners sändningsrutiner anropas i en godtycklig trådkontext vid IRQL = PASSIVE_LEVEL, med följande undantag:
Alla rutiner för att skicka drivrutiner på högsta nivå anropas i kontexten för den tråd som har sitt ursprung i I/O-begäran, som vanligtvis är en programtråd i användarläge.
Med andra ord anropas sändningsrutinerna för filsystemdrivrutiner och andra drivrutiner på högsta nivå i en icke-linjär trådkontext på IRQL = PASSIVE_LEVEL.
Rutinerna DispatchRead, DispatchWrite och DispatchDeviceControl för drivrutiner på lägsta nivå och mellanliggande drivrutiner som ligger ovanför dem i systemväxlingssökvägen kan anropas på IRQL = APC_LEVEL och i en godtycklig trådkontext.
DispatchRead- och/eller DispatchWrite-rutinerna och alla andra rutiner som även bearbetar läs- och/eller skrivbegäranden i en sådan enhet på lägsta nivå eller mellanliggande drivrutin måste vara bosatta hela tiden. Dessa drivrutinsrutiner kan varken vara sidladdningsbara eller ingå i en drivrutins sidladdningsbildssektion; de får inte komma åt något sidladdningsbart minne. Dessutom bör de inte vara beroende av några blockeringsanrop (till exempel KeWaitForSingleObject med en tidsgräns som inte överskrider noll).
DispatchPower-rutinen för drivrutiner i viloläge och/eller personsökvägar kan anropas vid IRQL = DISPATCH_LEVEL. DispatchPnP-rutinerna för sådana drivrutiner måste vara beredda att hantera PnP-IRP_MN_DEVICE_USAGE_NOTIFICATION begäranden.
DispatchPower-rutinen för drivrutiner som kräver strömrusning vid uppstart kan anropas på IRQL = DISPATCH_LEVEL.
Mer information finns i Hantera maskinvaruprioriteringar.