NdisMQueueDpc 函式 (ndis.h)
NDIS 迷你埠驅動程式會呼叫 NdisMQueueDpc 函式,以排程 CPU 上的 DPC 呼叫。
語法
ULONG NdisMQueueDpc(
[in] NDIS_HANDLE NdisInterruptHandle,
[in] ULONG MessageId,
[in] ULONG TargetProcessors,
[in, optional] PVOID MiniportDpcContext
);
參數
[in] NdisInterruptHandle
迷你埠驅動程式在先前呼叫 中取得的中斷句柄 NdisMRegisterInterruptEx 函式。
[in] MessageId
DPC 的 MSI 訊息識別碼。 如果 DPC 用於行型中斷,則不會使用此參數,而且應該設定為零。 否則 ,MessageId 是 的索引 內IO_INTERRUPT_MESSAGE_INFO_ENTRY 結構 IO_INTERRUPT_MESSAGE_INFO 結構。 當驅動程式成功向 NdisMRegisterInterruptEx 函式註冊 MSI 時,NDIS 會在 MessageInfoTable 成員上傳遞相關IO_INTERRUPT_MESSAGE_INFO結構的指標。
[in] TargetProcessors
位圖,指出 NDIS 應該排程 DPC 的目標處理器。 TargetProcessors 中的每個位都會識別 CPU。 如果呼叫端設定位 0,NDIS 會排程 CPU 0 的 DPC。 如果呼叫端設定位 1,NDIS 會排程 CPU 1 的 DPC,依此類推。
[in, optional] MiniportDpcContext
呼叫端指定之內容區域的指標。 NDIS 會將這個指標傳遞至 MiniportInterruptDPC 和 的 MiniportDpcContext 參數 MiniportMessageInterruptDPC 函式。
傳回值
NdisMQueueDpc 會傳回點陣圖,指出 NDIS 已成功排程 DPC 的目標處理器。 傳回值中的每個位都會識別CPU。 如果 NDIS 設定位 0,NDIS 會排程 CPU 0 的 DPC。 如果 NDIS 設定位 1,NDIS 會排程 CPU 1 的 DPC,依此類推。
如果驅動程式要求 CPU 的 DPC,而 NDIS 表示它未排程該 DPC,則 DPC 並未排程,因為 DPC 已經排程該 CPU。
備註
NDIS 會呼叫 MiniportInterruptDPC 或 MiniportMessageInterruptDPC 以完成中斷的延後處理。 迷你埠驅動程式可以呼叫 NdisMQueueDpc ,以要求其他處理器的其他 DPC 呼叫。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和 6.1 支援。 針對 NDIS 6.20 和更新版本,請使用 NdisMQueueDpcEx。 |
目標平台 | Universal |
標頭 | ndis.h (包括 Ndis.h) |
程式庫 | Ndis.lib |
IRQL | 任何層級 |