Функция 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 (включая Ndis.h)
Библиотека Ndis.lib
IRQL Любой уровень

См. также раздел

MiniportInterruptDPC

MiniportMessageInterruptDPC

NdisMQueueDpcEx

NdisMRegisterInterruptEx