初始化 Miniport 配接器
當網路裝置變成可用時,如果尚未載入,系統會載入所需的 NDIS 迷你埠驅動程式。 接著,隨插即用 (PnP) 管理員會傳送 NDIS 隨插即用 IRP 來啟動裝置。 NDIS 會呼叫 miniport 驅動程式的 MiniportInitializeEx 函式,以初始化網路介面卡以進行網路 I/O 作業。 NDIS 可以在驅動程式初始化之後隨時呼叫 MiniportInitializeEx 。 如需迷你埠驅動程式初始化的詳細資訊,請參閱 初始化 Miniport 驅動程式。
在 MiniportInitializeEx 傳回之前,NDIS 不會針對要初始化的配接器提交任何要求。 配接器處於初始化狀態。
迷你埠驅動程式通常會在 MiniportInitializeEx中執行下列工作:
取得配接器的組態資訊。
取得介面卡硬體資源的相關資訊。
呼叫 NdisMSetMiniportAttributes ,並提供與配接器相關聯的下列屬性:
- 驅動程式配置內容區域的指標。
- 適當的屬性旗標。
- 呼叫其 MiniportCheckForHangEx 函式的逾時間隔。
- 介面型別。
初始化配接器特定的資源。
迷你埠驅動程式會指定MiniportInitializeEx傳遞至NdisMSetMiniportAttributes之NDIS_MINIPORT_ADAPTER_ATTRIBUTES結構中的配接器屬性。
MiniportInitializeEx通常會依下列順序配置介面卡特定資源:
非分頁集區記憶體。
(請參閱迷你埠驅動程式傳送和接收作業) NET_BUFFER和NET_BUFFER_LIST集區。
微調鎖定。
計時器。
IO 埠。
DMA (請參閱 散佈/收集 DMA) 。
共用記憶體。
中斷 (請參閱 管理中斷) 。
MiniportInitializeEx成功傳回之後,配接器會處於暫停狀態。 NDIS 可以呼叫 MiniportRestart 函式,將配接器轉換為執行中狀態。 如需詳細資訊,請參閱 啟動迷你埠配接器。
如果 MiniportInitializeEx 傳回NDIS_STATUS_SUCCESS,驅動程式應該釋放 MiniportHaltEx 函式中介面卡的所有資源。 如需詳細資訊,請參閱 停止迷你埠配接器。
如果驅動程式傳回NDIS_STATUS_SUCCESS,驅動程式必須呼叫NdisMSetMiniportAttributes,並在NDIS_MINIPORT_ADAPTER_ATTRIBUTES結構中設定GeneralAttributes。
如果 MiniportInitializeEx 失敗, MiniportInitializeEx 必須釋放它所配置的所有資源,然後配接器會返回已停止狀態。