Kommentar
Å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.
En NDIS-miniportdrivrutin måste ange en MiniportHaltEx-funktion till NdisMRegisterMiniportDriver.
MiniportHaltEx bör ångra allt som MiniportInitializeEx gjorde. Till exempel kan NDIS-miniportdrivrutinen:
Kostnadsfria portar. (Mer information finns i Frigöra en NDIS-port.)
Släpp alla maskinvaruresurser som MiniportInitializeEx hävdade.
Frigör avbrottsresurser genom att anropa NdisMDeregisterInterruptEx.
Frigör allt minne som MiniportInitializeEx allokerade.
Stoppa nätverkskortet, såvida inte funktionen MiniportShutdownEx redan har återställt nätverkskortet till sitt ursprungliga tillstånd.
Följande diagram visar hur du tar bort en miniportdrivrutin.
MiniportHaltEx bör slutföra de åtgärder som krävs för att lossa drivrutinen innan den återvänder. Om miniportdrivrutinen har några utestående mottagningsindikationer (dvs. mottagna nätverksdata som den har angett upp till NDIS men som NDIS ännu inte har returnerat), får MiniportHaltEx inte returneras förrän sådana data returneras till miniportdrivrutinens miniportReturnNetBufferLists-funktion .
Föregående bild visar en uppsättning anrop som kan göras av en MiniportHaltEx-funktion . Dessa anrop är bara en delmängd av de anrop som kan göras. Den faktiska uppsättningen anrop beror på tidigare åtgärder för miniportdrivrutinen. Miniportdrivrutinen kan göra samma anrop i MiniportInitializeEx om det inte kan initiera nätverkskortet på grund av maskinvaruproblem eller eftersom den inte kan hämta en resurs som den behöver. I sådana fall bör MiniportInitializeEx ladda av drivrutinen genom att ångra sina tidigare åtgärder. Annars kommer MiniportHaltEx att ångra åtgärderna i MiniportInitializeEx.
I följande lista beskrivs de anrop som krävs för att vända vissa åtgärder som miniportdrivrutinen kan vidta:
Om miniportdrivrutinen registrerade ett avbrott ska den anropa NdisMDeregisterInterruptEx.
Om miniportdrivrutinen konfigurerade en eller flera timers, bör den anropa NdisCancelTimerObject för varje timer som den skapade. Om ett anrop till NdisCancelTimerObject misslyckas kan timern redan ha utlösts. I det här fallet bör miniportdrivrutinen vänta tills timerhanteraren har slutfört sitt arbete innan den återvänder från MiniportHaltEx.
Om miniportdrivrutinen allokerade minne med NdisAllocateMemoryWithTagPriority bör den anropa NdisFreeMemory för att frigöra det minnet.
Om miniportdrivrutinen allokerade minne med NdisMAllocateSharedMemory eller NdisMAllocateSharedMemoryAsyncEx, bör den anropa NdisMFreeSharedMemory för att frigöra det minnet.
Om miniportdrivrutinen allokerade och initierade lagringen för en pool med paketbeskrivningar med NdisAllocateNetBufferPool bör den anropa NdisFreeNetBufferPool för att frigöra lagringsutrymmet.
Om miniportdrivrutinen allokerade eller reserverade maskinvaruresurser bör dessa returneras. Om miniportdrivrutinen till exempel mappade ett I/O-portintervall på ett nätverkskort bör den släppa portarna genom att anropa NdisMDeregisterIoPortRange.
Relaterade ämnen
adaptertillstånd för en miniportdrivrutin
Att stoppa en Miniport-adapter