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 可以傳回下列其中一個值:
傳回碼 | 描述 |
---|---|
|
NDIS 初始化中斷物件,並在 NdisInterruptHandle 提供有效的插斷句柄。 NDIS 宣告硬體資源,並設定在中斷發生時呼叫的函式。 |
|
NdisMRegisterInterruptEx 因為資源不足而失敗。 |
|
嘗試初始化插斷對象失敗,原因不如上述清單中的其他原因。 |
言論
如果 Miniport 驅動程式管理產生中斷的 NIC,則必須從其 MiniportInitializeEx 函式呼叫 NdisMRegisterInterruptEx。
MiniportInitializeEx 必須呼叫 NdisMSetMiniportAttributes 函式,再呼叫 NdisMRegisterInterruptEx。
迷你埠驅動程式必須指定下列中斷服務函式的進入點:
MiniportDisableInterruptEx如果 NIC 支援訊息訊號中斷 (MSI),迷你埠驅動程式應該指定下列 MSI 服務函式的進入點:
MiniportMessageInterruptDPC MiniportDisableMessageInterrupt MiniportEnableMessageInterrupt如果驅動程式指定 MSI 的進入點,它也必須指定非 MSI 中斷服務函式的進入點。 此外,如果 NdisMRegisterInterruptEx 傳回NDIS_STATUS_SUCCESS,驅動程式必須檢查 InterruptType 成員的值 NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS 結構,以判斷授與的 NDIS 中斷類型。 如果 NDIS 無法授與 MSI 支援,則會授與支援以行為基礎的中斷。
在 NIC 上啟用中斷時,驅動程式的 MiniportInterrupt(或 MiniportMessageInterrupt) 函式可以在驅動程式呼叫 NdisMRegisterInterruptEx之後隨時呼叫,即使 NdisMRegisterInterruptEx 傳回也一樣。 因此,驅動程式不應該呼叫 NdisMRegisterInterruptEx,直到它準備好處理中斷為止。
驅動程式呼叫 NdisMDeregisterInterruptEx 函式,以釋放先前使用 NdisMRegisterInterruptEx配置的資源。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和更新版本支援。 |
目標平臺 | 普遍 |
標頭 | ndis.h (包括 Ndis.h) |
連結庫 | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | Init_DeRegisterInterrupt(ndis), Init_RegisterInterrupt(ndis), Irql_Interrupt_Function(ndis), NdisMDeregisterInterruptEx(ndis) |