Поделиться через


Функция NdisMQueueDpc (ndis.h)

Драйверы мини-порта NDIS вызывают функцию NdisMQueueDpc для планирования вызовов DPC на ЦП.

Синтаксис

ULONG NdisMQueueDpc(
  [in]           NDIS_HANDLE NdisInterruptHandle,
  [in]           ULONG       MessageId,
  [in]           ULONG       TargetProcessors,
  [in, optional] PVOID       MiniportDpcContext
);

Параметры

[in] NdisInterruptHandle

Дескриптор прерывания, полученный в предыдущем вызове драйвера минипорта функция NdisMRegisterInterruptEx.

[in] MessageId

Идентификатор сообщения MSI для DPC. Если DPC предназначен для прерывания на основе строк, этот параметр не используется и он должен быть равен нулю. В противном случае MessageId является индексом для IO_INTERRUPT_MESSAGE_INFO_ENTRY структуры внутри структура IO_INTERRUPT_MESSAGE_INFO. NDIS передает указатель на связанную структуру IO_INTERRUPT_MESSAGE_INFO в элементе MessageInfoTable, когда драйвер успешно регистрирует MSI с помощью функции NdisMRegisterInterruptEx.

[in] TargetProcessors

Растровое изображение, указывающее целевые процессоры, для которых NDIS должен запланировать DPC. Каждый бит в TargetProcessors определяет ЦП. Если вызывающий объект задает бит 0, NDIS планирует DPC для ЦП 0. Если вызывающий объект задает бит 1, NDIS планирует DPC для ЦП 1 и т. д.

[in, optional] MiniportDpcContext

Указатель на область контекста, указанную вызывающим объектом. NDIS передает этот указатель на параметр MiniportDpcContextMiniportInterruptDPC и функции MiniportMessageInterruptDPC.

Возвращаемое значение

NdisMQueueDpc возвращает растровое изображение, указывающее целевые процессоры, для которых NDIS успешно запланировал DPC. Каждый бит в возвращаемом значении определяет ЦП. Если NDIS задает бит 0, NDIS запланировал DPC для ЦП 0. Если NDIS задает бит 1, NDIS запланировал DPC для ЦП 1 и т. д.

Если драйвер запросил DPC для ЦП и NDIS указывает, что он не планировал DPC, DPC не был запланирован, так как DPC уже запланирован для этого ЦП.

Замечания

Вызовы NDIS MiniportInterruptDPC или MiniportMessageInterruptDPC для завершения отложенной обработки прерывания. Драйвер минипорта может вызывать NdisMQueueDpc для запроса дополнительных вызовов DPC для других процессоров.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается в NDIS 6.0 и 6.1. Для NDIS 6.20 и более поздних версий используйте NdisMQueueDpcEx.
целевая платформа Всеобщий
заголовка ndis.h (include Ndis.h)
библиотеки Ndis.lib
IRQL Любой уровень

См. также

MiniportInterruptDPC

MiniportMessageInterruptDPC

NdisMQueueDpcEx

NdisMRegisterInterruptEx