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


функция обратного вызова MINIPORT_ENABLE_MESSAGE_INTERRUPT (ndis.h)

NDIS может вызывать функцию MiniportEnableMessageInterrupt драйвера минипорта , чтобы включить прерывание сообщения для диагностики и устранения неполадок.

Примечание Функцию необходимо объявить с помощью типа MINIPORT_ENABLE_MESSAGE_INTERRUPT . Дополнительные сведения см. в следующем разделе Примеры.
 

Синтаксис

MINIPORT_ENABLE_MESSAGE_INTERRUPT MiniportEnableMessageInterrupt;

void MiniportEnableMessageInterrupt(
  [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

Драйвер мини-порта должен предоставить функцию MiniportEnableMessageInterrupt , если драйвер вызывает функцию NdisMRegisterInterruptEx для регистрации прерывания.

Драйверы мини-порта должны отключить и включить прерывание сообщения, как описано в MiniportMessageInterrupt и Справочные страницы MiniportMessageInterruptDpc .

NDIS вызывает MiniportEnableMessageInterrupt иФункции MiniportDisableMessageInterrupt для включения и отключения прерывания сообщений в целях диагностики и устранения неполадок. Как правило, MiniportEnableMessageInterrupt и MiniportDisableMessageInterrupt получают доступ к ресурсам драйвера мини-порта, которые совместно используютсяФункция MiniportMessageInterrupt. Поэтому NDIS вызывает эти обработчики в DIRQL.

Примеры

Чтобы определить функцию MiniportEnableMessageInterrupt , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.

Например, чтобы определить функцию MiniportEnableMessageInterrupt с именем MyEnableMessageInterrupt, используйте тип MINIPORT_ENABLE_MESSAGE_INTERRUPT , как показано в следующем примере кода:

MINIPORT_ENABLE_MESSAGE_INTERRUPT MyEnableMessageInterrupt;

Затем реализуйте функцию следующим образом:

_Use_decl_annotations_
VOID
 MyEnableMessageInterrupt(
    __in  NDIS_HANDLE  MiniportInterruptContext,
    __in  ULONG  MessageId
    )
  {...}

Тип функции MINIPORT_ENABLE_MESSAGE_INTERRUPT определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, не забудьте добавить заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, которые применяются к типу функции MINIPORT_ENABLE_MESSAGE_INTERRUPT в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в статье Объявление функций с помощью типов ролей функций для драйверов NDIS.

Сведения о Use_decl_annotations см. в статье Поведение функции с заметками.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Целевая платформа Windows
Header ndis.h (включая Ndis.h)
IRQL DIRQL (см. раздел "Примечания")

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

IO_INTERRUPT_MESSAGE_INFO

IO_INTERRUPT_MESSAGE_INFO_ENTRY MiniportDisableMessageInterrupt

MiniportMessageInterrupt

MiniportMessageInterruptDPC

NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS

NdisMRegisterInterruptEx