функция обратного вызова MINIPORT_DISABLE_MESSAGE_INTERRUPT (ndis.h)
NDIS может вызвать обработчик MiniportDisableMessageInterrupt драйвера минипорта , чтобы отключить прерывание сообщения для целей диагностики и устранения неполадок.
Синтаксис
MINIPORT_DISABLE_MESSAGE_INTERRUPT MiniportDisableMessageInterrupt;
void MiniportDisableMessageInterrupt(
[in] NDIS_HANDLE MiniportInterruptContext,
[in] ULONG MessageId
)
{...}
Параметры
[in] MiniportInterruptContext
Дескриптор для блока контекстных сведений. Драйвер мини-порта предоставил этот дескриптор в параметре MiniportInterruptContext , который драйвер мини-порта передал вФункция NdisMRegisterInterruptEx.
[in] MessageId
Прерывание с сигналом сообщения. MessageId является индексом для IO_INTERRUPT_MESSAGE_INFO_ENTRY структур внутри структура IO_INTERRUPT_MESSAGE_INFO . NDIS передает указатель на связанную структуру IO_INTERRUPT_MESSAGE_INFO в элементе MessageInfoTable , когда драйвер успешно регистрируется в MSI с помощью функции NdisMRegisterInterruptEx .
Возвращаемое значение
None
Remarks
Драйвер мини-порта должен предоставить функцию MiniportDisableMessageInterrupt, если драйвер вызывает функцию NdisMRegisterInterruptEx для регистрации прерывания.
Драйверы мини-порта должны отключить и включить прерывание сообщения, как описано в MiniportMessageInterrupt и Справочные страницы MiniportMessageInterruptDpc .
NDIS вызываетФункции MiniportEnableMessageInterrupt и MiniportDisableMessageInterrupt позволяют включать и отключать прерывания для целей диагностики и устранения неполадок. Как правило, MiniportEnableMessageInterrupt и MiniportDisableMessageInterrupt получают доступ к ресурсам драйвера мини-порта, которые совместно используютсяФункция MiniportMessageInterrupt. Поэтому NDIS вызывает эти обработчики в DIRQL.
Примеры
Чтобы определить функцию MiniportDisableMessageInterrupt , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.Например, чтобы определить функцию MiniportDisableMessageInterrupt с именем MyDisableMessageInterrupt, используйте тип MINIPORT_DISABLE_MESSAGE_INTERRUPT , как показано в следующем примере кода:
MINIPORT_DISABLE_MESSAGE_INTERRUPT MyDisableMessageInterrupt;
Затем реализуйте функцию следующим образом:
_Use_decl_annotations_
VOID
MyDisableMessageInterrupt(
NDIS_HANDLE MiniportInterruptContext,
ULONG MessageId
)
{...}
Тип функции MINIPORT_DISABLE_MESSAGE_INTERRUPT определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, не забудьте добавить заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, применяемых к типу функции MINIPORT_DISABLE_MESSAGE_INTERRUPT в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в статье Объявление функций с помощью типов ролей функций для драйверов NDIS.
Сведения о Use_decl_annotations см. в статье Поведение функции с заметками.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.0 и более поздних версиях. |
Целевая платформа | Windows |
Header | ndis.h (включая Ndis.h) |
IRQL | DIRQL (см. раздел "Примечания") |