// Stop handler of adapter NDIS_STATUS NeoNdisHalt(NDIS_HANDLE MiniportAdapterContext) { if (ctx == NULL) { return NDIS_STATUS_FAILURE; } if (ctx->Halting != FALSE) { // That has already been stopped return NDIS_STATUS_SUCCESS; } ctx->Halting = TRUE; // Stop the adapter NeoStopAdapter(); // Release the packet array NeoFreePacketArray(); // Delete the control device NeoFreeControlDevice(); // Complete to stop ctx->Initing = ctx->Inited = FALSE; ctx->Connected = ctx->ConnectedForce = ctx->ConnectedOld = FALSE; ctx->Halting = FALSE; // Shutdown of Neo NeoShutdown(); return NDIS_STATUS_SUCCESS; }
// Stop handler of adapter void NeoNdisHaltEx(NDIS_HANDLE MiniportAdapterContext, NDIS_HALT_ACTION HaltAction) { if (ctx == NULL) { return; } if (ctx->Halting != FALSE) { // That has already been stopped return; } ctx->Halting = TRUE; // Stop the adapter NeoStopAdapter(); // Release the packet array NeoFreePacketArray(); // Delete the control device NeoFreeControlDevice(); // Complete to stop ctx->Initing = ctx->Inited = FALSE; ctx->Connected = ctx->ConnectedForce = ctx->ConnectedOld = FALSE; ctx->Halting = FALSE; // Shutdown of Neo NeoShutdown(); }