Anteckning
Å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.
Drivrutinsutvecklare bör ange kod som växlingsbar när det är möjligt, vilket frigör systemutrymme för kod som måste vara minnesbaserad. Du kan markera funktioner som sidbar med NDIS_PAGEABLE_FUNCTION makrot. IRQL, resurshanteringsfunktioner och andra egenskaper för en funktion kan hindra funktionen från att vara växlingsbar.
Varje ProtocolXxx--funktion körs på en IRQL i intervallet från PASSIVE_LEVEL till DISPATCH_LEVEL. Funktioner som körs exklusivt på IRQL = PASSIVE_LEVEL ska markeras som pagerbara.
En drivrutinsfunktion som körs på IRQL = PASSIVE_LEVEL kan göras sidbar så länge den varken anropar någon funktion eller anropas av en funktion som körs på IRQL >= DISPATCH_LEVEL—till exempel en funktion som hämtar ett spinlock. Genom att förvärva ett spinlås höjs IRQL för den förvärvande tråden till DISPATCH_LEVEL. En drivrutinsfunktion, till exempel ProtocolBindAdapterEx, som körs på IRQL: PASSIVE_LEVEL får inte anropa några NdisXxx-funktioner som körs på IRQL >: DISPATCH_LEVEL om drivrutinsfunktionen är markerad som sidosättbar kod. Mer information om IRQL för varje funktion NdisXxx, se NDIS-biblioteksfunktioner.
Funktionen DriverEntry för NDIS-protokolldrivrutiner, samt kod som endast anropas från DriverEntry, ska anges som initieringskod med hjälp av makrot NDIS_INIT_FUNCTION. Kod som identifieras med det här makrot antas endast köras en gång vid systeminitieringstiden och mappas därför endast under den tiden. När en funktion som har markerats som initieringsbaserad returneras tas den bort.