NdisMRegisterMiniportDriver 函式 (ndis.h)
迷你埠驅動程式會呼叫 NdisMRegisterMiniportDriver 函式,以使用 NDIS 註冊 MiniportXxx 進入點作為初始化的第一個步驟。
語法
NDIS_STATUS NdisMRegisterMiniportDriver(
[in] PDRIVER_OBJECT DriverObject,
[in] PUNICODE_STRING RegistryPath,
[in, optional] NDIS_HANDLE MiniportDriverContext,
[in] PNDIS_MINIPORT_DRIVER_CHARACTERISTICS MiniportDriverCharacteristics,
[out] PNDIS_HANDLE NdisMiniportDriverHandle
);
參數
[in] DriverObject
迷你埠驅動程式在其 DriverEntry 例程中,在 Argument1 參數中收到的不透明驅動程式對象的指標(請參閱 NDIS Miniport Drivers的 DriverEntry )。
[in] RegistryPath
迷你埠驅動程式在其 DriverEntry 例程中,於 Argument2 參數收到的不透明登錄路徑指標。
[in, optional] MiniportDriverContext
驅動程式所配置內容區域的句柄,其中驅動程式會維護狀態和組態資訊。
[in] MiniportDriverCharacteristics
的指標 NDIS_MINIPORT_DRIVER_CHARACTERISTICS 呼叫端初始化的結構。
[out] NdisMiniportDriverHandle
呼叫端提供的句柄變數指標。 NDIS 會將句柄寫入這個變數,以唯一識別此驅動程式。 驅動程式必須儲存此句柄,才能用於後續 NdisXxx 函數調用。
傳回值
NdisMRegisterMiniportDriver 會傳回下列其中一個狀態值:
傳回碼 | 描述 |
---|---|
|
NdisMRegisterMiniportDriver 已成功註冊迷你埠驅動程式。 |
|
CharacteristicsLength 參數在 MiniportDriverCharacteristics 結構中指定之 MajorNdisVersion 成員的 NDIS 版本不正確。 |
|
在特性結構中指定的 MajorNdisVersion 或 MinorNdisVersion 無效。 |
|
資源短缺,可能是記憶體,導致 NDIS 無法註冊呼叫端。 |
|
這是預設的錯誤狀態,當上述任何錯誤都導致註冊失敗時,就會傳回。 |
言論
NDIS 驅動程式會從其 DriverEntry 例程呼叫 NdisMRegisterMiniportDriver。 如需詳細資訊,請參閱 NDIS 迷你埠驅動程式的 DriverEntry。
每個迷你埠驅動程式都會藉由設定特性結構和呼叫 NdisMRegisterMiniportDriver,來導出一組標準 MiniportXxx 函式。 NDIS 會將特性結構複製到 NDIS 內部記憶體。 因此,註冊之後,驅動程式就無法變更其 MiniportXxx 進入點。
若要註冊其虛擬迷你埠介面,NDIS 中繼驅動程式必須呼叫 NdisMRegisterMiniportDriver,並在 MiniportDriverCharacteristics 的 結構中設定NDIS_INTERMEDIATE_DRIVER旗標。 具有 WDM 下邊緣的 NDIS 驅動程式必須呼叫 NdisMRegisterMiniportDriver,並在 MiniportDriverCharacteristics 的結構中設定NDIS_WDM_DRIVER旗標。
驅動程式可以註冊為合併的迷你埠驅動程式和中繼驅動程式。 若要註冊其實體迷你埠驅動程式,迷你埠中繼驅動程式會呼叫 NdisMRegisterMiniportDriver 適當的參數,就如同任何迷你埠驅動程式一樣。 若要註冊其虛擬迷你埠介面,驅動程式會再次呼叫 NdisMRegisterMiniportDriver,但在 MiniportDriverCharacteristics 參數中設定NDIS_INTERMEDIATE_DRIVER旗標。
若要讓迷你埠驅動程式註冊選用服務,NDIS 會在 NdisMRegisterMiniportDriver的內容中呼叫 MiniportSetOptions 函式。
在驅動程式呼叫 NdisMRegisterMiniportDriver之後,驅動程式應該準備好在 DriverEntry 傳回 MiniportDriverCharacteristics 參數中指定的 MiniportInitializeEx 函式。
如果在 NdisMRegisterMiniportDriver 成功傳回之後,DriverEntry 發生錯誤,驅動程式必須呼叫 NdisMDeregisterMiniportDriver 函式,DriverEntry 傳回。 如果 DriverEntry 成功,驅動程式必須從其 MiniportDriverUnload 函式呼叫 NdisMDeregisterMiniportDriver。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和更新版本支援。 |
目標平臺 | 普遍 |
標頭 | ndis.h (包括 Ndis.h) |
連結庫 | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | Irql_Miniport_Driver_Function(ndis) |