NdisMRegisterInterruptEx 函式 (ndis.h)
NDIS 迷你埠驅動程式會呼叫 NdisMRegisterInterruptEx 函式來註冊中斷。
語法
NDIS_STATUS NdisMRegisterInterruptEx(
[in] NDIS_HANDLE MiniportAdapterHandle,
[in] NDIS_HANDLE MiniportInterruptContext,
[in] PNDIS_MINIPORT_INTERRUPT_CHARACTERISTICS MiniportInterruptCharacteristics,
[out] PNDIS_HANDLE NdisInterruptHandle
);
參數
[in] MiniportAdapterHandle
NDIS 傳遞至 的迷你埠配接器句柄 MiniportInitializeEx 函式。
[in] MiniportInterruptContext
內容信息的區塊指標。 迷你埠驅動程式會配置此記憶體來儲存中斷的相關信息。 NDIS 會將後續呼叫中的內容資訊區塊傳遞給與中斷相關聯的其他函式。
[in] MiniportInterruptCharacteristics
的指標 NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS 迷你埠驅動程式所建立的結構。 驅動程式會使用定義中斷特性的處理程序進入點和組態參數,初始化這個結構。
[out] NdisInterruptHandle
NDIS 句柄的指標。 NDIS 會將新建立之中斷物件的句柄寫入 NdisInterruptHandle 指標所指定的位址。
傳回值
NdisMRegisterInterruptEx 可以傳回下列其中一個值:
傳回碼 | Description |
---|---|
|
NDIS 已初始化中斷物件,並在 NdisInterruptHandle 提供有效的中斷句柄。 NDIS 宣告的硬體資源,並在發生中斷時設定它所呼叫的函式。 |
|
NdisMRegisterInterruptEx 因為資源不足而失敗。 |
|
嘗試初始化中斷物件時失敗,原因除了上述清單中的中斷物件之外。 |
備註
如果 Miniport 驅動程式管理產生中斷的 NIC,則必須從 MiniportInitializeEx 函式呼叫 NdisMRegisterInterruptEx。
MiniportInitializeEx 必須呼叫在呼叫 NdisMRegisterInterruptEx 之前,NdisMSetMiniportAttributes 函式。
迷你埠驅動程式必須指定下列中斷服務函式的進入點:
MiniportDisableInterruptEx如果 NIC 支援訊息訊號中斷 (MSI) ,迷你埠驅動程式應該指定下列 MSI 服務函式的進入點:
MiniportMessageInterruptDPC MiniportDisableMessageInterrupt MiniportEnableMessageInterrupt如果驅動程式指定 MSI 的進入點,它也必須指定非 MSI 中斷服務函式的進入點。 此外,如果 NdisMRegisterInterruptEx 傳回NDIS_STATUS_SUCCESS,驅動程式必須檢查 的 InterruptType 成員值 NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS 結構,以判斷授與的中斷類型。 如果 NDIS 無法授與 MSI 支援,則會授與行型中斷的支援。
在 NIC 上啟用中斷時,驅動程式的 MiniportInterrupt (或 MiniportMessageInterrupt) 函式可以在驅動程式呼叫 NdisMRegisterInterruptEx 之後隨時呼叫,即使在 NdisMRegisterInterruptEx 傳回之前也一樣。 因此,驅動程式在準備好處理中斷之前,不應該呼叫 NdisMRegisterInterruptEx 。
驅動程式呼叫 NdisMDeregisterInterruptEx 函式可釋放先前使用 NdisMRegisterInterruptEx 配置的資源。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和更新版本支援。 |
目標平台 | Universal |
標頭 | ndis.h (包括 Ndis.h) |
程式庫 | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | Init_DeRegisterInterrupt (ndis) 、Init_RegisterInterrupt (ndis) 、Irql_Interrupt_Function (ndis ) 、NdisMDeregisterInterruptEx (ndis) |