共用方式為


MINIPORT_UNLOAD回呼函式 (ndis.h)

NDIS 會呼叫迷你埠驅動程式的 MiniportDriverUnload 函式,要求驅動程式在系統完成驅動程式卸除作業之前釋放資源。

Note 您必須使用 MINIPORT_UNLOAD 類型來宣告函式。 如需詳細資訊,請參閱下列範例一節。
 

語法

MINIPORT_UNLOAD MiniportUnload;

void MiniportUnload(
  [in] PDRIVER_OBJECT DriverObject
)
{...}

參數

[in] DriverObject

DRIVER_OBJECT 結構的指標,該結構是驅動程序的驅動程序物件。

傳回值

沒有

言論

驅動程式會在呼叫 時指定 MiniportDriverUnload 進入點 NdisMRegisterMiniportDriver 函式。

與 NDIS 迷你埠驅動程式相關聯的驅動程式物件會指定 Unload 例程。 當移除迷你埠驅動程序服務的所有裝置時,作系統會呼叫 Unload 例程。 NDIS 提供 NDIS 驅動程式 卸除 例程。 NDIS 會從 Unload 例程呼叫迷你埠驅動程式的 MiniportDriverUnload 函式。

Unload 例程的功能是驅動程式特定的。 一般情況下,MiniportDriverUnload 應該復原在驅動程式 DriverEntry 例程中執行的作業。

迷你埠驅動程式會呼叫從 MiniportDriverUnload NdisMDeregisterMiniportDriver 函式。

除了 NdisMDeregisterMiniportDriver之外,中繼驅動程式也會呼叫 NdisDeregisterProtocolDriver 函式來取消註冊驅動程式的通訊協定介面。 MiniportDriverUnload 也應該執行任何必要的清除作業,例如解除分配任何通訊協定驅動程式介面資源。

如果迷你埠驅動程式管理多個裝置實例,例如負載平衡驅動程式,NDIS 將不會呼叫 MiniportDriverUnload,直到 NDIS 針對每個裝置實例呼叫 MiniportHaltEx 函式一次。

NDIS 會在 IRQL = PASSIVE_LEVEL 呼叫 MiniportDriverUnload

範例

若要定義 MiniportDriverUnload 函式,您必須先提供函式宣告,以識別您要定義的函式類型。 Windows 提供一組驅動程式的函式類型。 使用函式類型宣告函式有助於 驅動程式的程式代碼分析靜態驅動程序驗證器 (SDV)和其他驗證工具尋找錯誤,而且是撰寫 Windows作系統驅動程式的需求。

例如,若要定義名為 「MyDriverUnload」 的 MiniportDriverUnload 函式,請使用 MINIPORT_UNLOAD 類型,如下列程式代碼範例所示:

MINIPORT_UNLOAD MyDriverUnload;

然後,實作您的函式,如下所示:

_Use_decl_annotations_
VOID
 MyDriverUnload(
    PDRIVER_OBJECT  DriverObject
    )
  {...}

MINIPORT_UNLOAD 函式類型定義於 Ndis.h 頭檔中。 若要在執行程式代碼分析工具時更準確地識別錯誤,請務必將 Use_decl_annotations 批註新增至函式定義。 Use_decl_annotations 批注可確保會使用套用至頭檔中 MINIPORT_UNLOAD 函式類型的批注。 如需函式宣告需求的詳細資訊,請參閱 使用 NDIS 驅動程式的函式角色類型來宣告函式

如需 Use_decl_annotations的相關信息,請參閱 批注函式行為

要求

要求 價值
最低支援的用戶端 NDIS 6.0 和更新版本支援。
目標平臺 窗戶
標頭 ndis.h (包括 Ndis.h)
IRQL PASSIVE_LEVEL

另請參閱

DRIVER_OBJECT

MiniportHaltEx

NdisDeregisterProtocolDriver

NdisMDeregisterMiniportDriver

NdisMRegisterMiniportDriver

卸除