Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Драйверы мини-порта NDIS вызывают функцию NdisMQueueDpcEx для планирования вызовов DPC на ЦП.
Синтаксис
KAFFINITY NdisMQueueDpcEx(
[in] IN NDIS_HANDLE NdisInterruptHandle,
[in] IN ULONG MessageId,
[in] IN PGROUP_AFFINITY TargetProcessors,
[in] IN 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] MiniportDpcContext
Указатель на область контекста, указанную вызывающим объектом. NDIS передает этот указатель на параметр MiniportDpcContextMiniportInterruptDPC и функции MiniportMessageInterruptDPC.
Возвращаемое значение
NdisMQueueDpcEx возвращает растровое изображение, указывающее на целевые процессоры. Каждый бит в возвращаемом значении определяет ЦП.
NDIS успешно запланировал DPC для каждого целевого процессора, заданного в растровом рисунке. Если NDIS задает бит 0, NDIS запланировал DPC для ЦП 0. Если NDIS задает бит 1, NDIS запланировал DPC для ЦП 1 и т. д.
Если драйвер запросил DPC для ЦП и NDIS указывает, что он не планировал DPC, то DPC не был запланирован, так как DPC, который сопоставляется с этой парой прерываний или процессора, уже запланирован для этого ЦП.
Замечания
Драйверы мини-порта NDIS 6.20 и более поздних версий вызывают NdisMQueueDpcEx для запроса вызовов DPC для других процессоров. NDIS вызывает MiniportInterruptDPC или функцию MiniportMessageInterruptDPC для завершения отложенной обработки прерывания.
NdisMQueueDpcEx совпадает с функцией NdisMQueueDpc, за исключением того, что параметр TargetProcessors имеет тип KGROUP_AFFINITY. Таким образом, NdisMQueueDpcEx могут планировать dpcs на процессорах в любой группе процессоров. Для планирования ЦП в нескольких группах процессоров можно использовать несколько вызовов для NdisMQueueDpcEx.
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Поддерживается в NDIS 6.20 и более поздних версиях. |
| целевая платформа | Всеобщий |
| заголовка | ndis.h (include Ndis.h) |
| библиотеки | Ndis.lib |
| IRQL | Любой уровень |