Dela via


Åtgärder för avbindning av mellanliggande drivrutin

En mellanliggande drivrutin avbinder från en underliggande miniportdrivrutin genom att anropa NdisCloseAdapterEx från dess funktion ProtocolUnbindAdapterEx. NDIS anropar ProtocolUnbindAdapterEx om det underliggande miniportkortet inte längre är tillgängligt.

En mellanliggande drivrutinsfunktion, ProtocolUnbindAdapterEx, kan anropas när drivrutinen har ett enastående anrop till NdisIMInitializeDeviceInstanceEx. Den här situationen uppstår när NDIS ännu inte har anropat MiniportInitializeEx för att initiera motsvarande virtuella miniportar. I det här fallet måste den mellanliggande drivrutinen anropa NdisIMCancelInitializeDeviceInstance för att försöka avbryta initieringen av dessa virtuella miniportar.

Om bindningen som stängs mappas till en enhet som exporteras av den mellanliggande drivrutinen och om enheten initierades genom att anropa NdisIMInitializeDeviceInstanceExkan mellanliggande drivrutinen anropa NdisIMDeInitializeDeviceInstance för att stänga enheten. Resultatet är att den mellanliggande drivrutinens virtuella miniport inte längre blir tillgänglig för skickar eller begäranden som görs av drivrutiner på högre nivå.

Om en mellanliggande NDIS-drivrutin anropar funktionen NdisIMDeInitializeDeviceInstance, anropar NDIS funktionen MiniportHaltEx för den berörda virtuella miniporten. Information om hur du hanterar stoppåtgärden för virtuella miniportar finns i Stoppa en virtuell miniport.

När en mellanliggande drivrutin anropar NdisCloseAdapterExbör den misslyckas med alla sändningsbegäranden för den bindningen med en lämplig felstatus.

Mer information om operationer för avbindning av mellanliggande drivrutiner finns i Avbindning från en adapter.