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

Функция обратного вызова события CLIENT_ClearActiveInterrupts очищает активные прерывания в наборе контактов ввода-вывода общего назначения (GPIO), настроенных в качестве входных данных прерывания.

Синтаксис

GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS GpioClientClearActiveInterrupts;

NTSTATUS GpioClientClearActiveInterrupts(
  [in]      PVOID Context,
  [in, out] PGPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS ClearParameters
)
{...}

Параметры

[in] Context

Указатель на контекст устройства драйвера контроллера GPIO.

[in, out] ClearParameters

Указатель на структуру GPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS , которая в записи описывает закрепления прерываний GPIO для очистки, а при выходе содержит состояние операции очистки.

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

Функция CLIENT_ClearActiveInterrupts возвращает STATUS_SUCCESS, если вызов выполнен успешно. В противном случае возвращается соответствующий код ошибки.

Комментарии

Эта функция обратного вызова реализуется драйвером контроллера GPIO. Расширение платформы GPIO (GpioClx) вызывает эту функцию для очистки активных прерываний в контактах GPIO, настроенных как входные данные запроса прерывания.

Эта функция обратного вызова является необязательной. Если аппаратное обеспечение контроллера GPIO автоматически очищает биты состояния активных прерываний при их чтении, драйвер не должен регистрировать функцию обратного вызова CLIENT_ClearActiveInterrupts . Дополнительные сведения см. в разделах Необязательные и обязательные функции обратного вызова GPIO.

Чтобы зарегистрировать функцию обратного вызова CLIENT_ClearActiveInterrupts драйвера, вызовите метод GPIO_CLX_RegisterClient . Этот метод принимает в качестве входного параметра указатель на структуру GPIO_CLIENT_REGISTRATION_PACKET , содержащую указатель CLIENT_ClearActiveInterrupts функции.

GpioClx вызывает функцию обратного вызова CLIENT_ClearActiveInterrupts по адресу PASSIVE_LEVEL или DIRQL в зависимости от сведений об устройстве, которые функция обратного вызова CLIENT_QueryControllerBasicInformation предоставляет GpioClx. Функция CLIENT_QueryControllerBasicInformation предоставляет сведения об устройстве в виде структуры CLIENT_CONTROLLER_BASIC_INFORMATION . Если бит флага MemoryMappedController задан в элементе Flags этой структуры, GpioClx вызывает функцию CLIENT_ClearActiveInterrupts в DIRQL, которая является irQL, по которой выполняется ISR в GpioClx. В противном случае эта функция вызывается в PASSIVE_LEVEL. Дополнительные сведения об этом бите флага см. в разделе Обратные вызовы, связанные с прерыванием.

Примеры

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

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

GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS MyEvtGpioClearActiveInterrupts;

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

_Use_decl_annotations_
NTSTATUS
  MyEvtGpioClearActiveInterrupts(
    PVOID Context,
    PGPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS ClearParameters
    )
{ ... }

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

Требования

Требование Значение
Минимальная версия клиента Поддерживается начиная с Windows 8.
Целевая платформа Персональный компьютер
Верхняя часть gpioclx.h
IRQL См. заметки.

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

CLIENT_CONTROLLER_BASIC_INFORMATION

CLIENT_QueryControllerBasicInformation

GPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient