共用方式為


Intermediate Driver DriverEntry 函式

中繼驅動程式的初始必要進入點必須明確命名為 DriverEntry ,讓載入器可以正確識別它。 本節描述為 MiniportXxxProtocolXxx的所有其他匯出驅動程式函式,都可以有任何廠商指定的名稱,因為它們會當做位址傳遞至 NDIS。

在中繼驅動程式中, DriverEntry 至少必須:

  1. 呼叫 NdisMRegisterMiniportDriver ,並儲存 在 NdisMiniportDriverHandle 參數中傳回的控制碼。

  2. 如果驅動程式後續將本身系結至基礎 NDIS 驅動程式,請呼叫 NdisRegisterProtocolDriver 來註冊驅動程式的 ProtocolXxx 函式。

  3. 呼叫 NdisIMAssociateMiniport ,以通知 NDIS 驅動程式的迷你埠上邊緣與通訊協定下邊緣之間的關聯。

中繼驅動程式必須註冊 MiniportDriverUnload 卸載處理常式。 當系統卸載中繼驅動程式時,會呼叫這個卸載處理常式。 如果 DriverEntry 失敗,則不會呼叫此卸載處理常式;相反地,只會卸載驅動程式。 如需卸載處理常式的詳細資訊,請參閱 卸載中繼驅動程式

卸載處理常式應該呼叫 NdisDeregisterProtocolDriver 來取消註冊中繼驅動程式的通訊協定部分。 卸載處理常式也應該執行任何必要的清除作業,例如重新配置驅動程式通訊協定部分所使用的資源。

請注意,卸載處理常式與 MiniportHaltEx 函式不同:卸載處理常式具有更全域的範圍,而 MiniportHaltEx 函式的範圍僅限於特定的迷你埠配接器。 中繼驅動程式應該清除狀態資訊,並在系結至該驅動程式的每個基礎迷你埠驅動程式停止時重新配置資源。 如需處理虛擬迷你埠停止作業的相關資訊,請參閱 停止虛擬迷你埠

ProtocolUninstall 是選擇性卸載處理常式。 在您傳遞至NdisRegisterProtocolDriverProtocolCharacteristics結構中註冊此函式的進入點。 NDIS 會呼叫 ProtocolUninstall ,以回應使用者卸載中繼驅動程式的要求。 NDIS 會針對每個系結介面卡呼叫 ProtocolUnbindAdapterEx 一次,然後 NDIS 會呼叫 ProtocolUninstall。 此處理程式會在系統實際卸載驅動程式之前呼叫。 此時間可讓您釋放任何裝置物件或其他資源,而該資源可能會防止系統呼叫向 NdisMRegisterMiniportDriver 註冊的卸載處理常式,並卸載驅動程式。

DriverEntry 可以初始化微調鎖定,以保護中繼驅動程式配置的任何全域共用資源,例如狀態變數、結構和記憶體區域。 驅動程式會使用這些資源來追蹤連線,以及追蹤進行中的傳送或驅動程式配置的佇列。

如果 DriverEntry 無法配置驅動程式執行網路 I/O 作業所需的任何資源,它應該釋放任何先前配置的資源,並傳回適當的錯誤狀態。

下列主題會進一步說明如何註冊中繼驅動程式:

註冊為 NDIS 中繼驅動程式

將中繼驅動程式註冊為 Miniport 驅動程式

將中繼驅動程式註冊為通訊協定驅動程式