處理 MSI 中斷
當網路介面卡 (NIC) 產生中斷時,NDIS 會呼叫 MiniportMessageInterrupt 函式。 此函式中的 MessageId 參數會識別 MSI-X 訊息。
MiniportMessageInterrupt 在處理中斷之後應該一律傳回 TRUE ,因為不會共用訊息中斷。
迷你埠驅動程式應該在其 MiniportMessageInterrupt 函式中盡可能少執行工作。 驅動程式應該將 I/O 作業延遲至 MiniportMessageInterruptDpc 函式,NDIS 會呼叫此函式以完成中斷的延遲處理。
若要在MiniportMessageInterrupt傳回之後,將額外的延後程序呼叫排入佇列) (DPC,迷你埠驅動程式會設定MiniportMessageInterrupt函式的TargetProcessors參數位。 若要向MiniportMessageInterrupt 或 MiniportMessageInterruptDPC要求其他 DPC,迷你埠驅動程式可以呼叫NdisMQueueDpc函式。
迷你埠驅動程式可以呼叫 NdisMQueueDpc ,以要求其他處理器的其他 DPC。
NDIS 6.1 和更新版本保證針對相同 CPU 排程之不同訊息的 DPC 會分別排入佇列。 例如,如果迷你埠驅動程式在 CPU 1 上同時排程兩個 DPC, (一個 DPC 用於訊息 0,另一個 DPC 用於訊息 1) ,則兩個 DPC 會排入佇列, (一個具有訊息 0 的 DPC,另一個 DPC 則為訊息 1) 。
NDIS 也保證在不同 CPU 上排程之相同訊息的 DPC 會個別排入佇列。 例如,如果迷你埠驅動程式針對訊息 0 排程兩個 DPC (CPU 0 上的一個 DPC,而 CPU 1 上的一個 DPC 則訊息 0) ,則兩個不同的 DPC 會排入 CPU 0 和 CPU 1 上,這兩者都排入訊息 0。