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 並未排程,因為已針對該 CPU 排程 DPC。
言論
NDIS 會呼叫 MiniportInterruptDPC 或 MiniportMessageInterruptDPC,以完成中斷的延遲處理。 迷你埠驅動程式可以呼叫 NdisMQueueDpc,以要求其他處理器的額外 DPC 呼叫。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和 6.1 支援。 針對 NDIS 6.20 和更新版本,請使用 NdisMQueueDpcEx。 |
目標平臺 | 普遍 |
標頭 | ndis.h (包括 Ndis.h) |
連結庫 | Ndis.lib |
IRQL | 任何層級 |