функция обратного вызова GPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION (gpioclx.h)
Функция обратного вызова события CLIENT_QueryControllerBasicInformation извлекает атрибуты оборудования контроллера ввода-вывода общего назначения (GPIO).
Синтаксис
GPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION GpioClientQueryControllerBasicInformation;
NTSTATUS GpioClientQueryControllerBasicInformation(
[in] PVOID Context,
[out] PCLIENT_CONTROLLER_BASIC_INFORMATION Information
)
{...}
Параметры
[in] Context
Указатель на контекст устройства драйвера контроллера GPIO.
[out] Information
Указатель на структуру, выделенную вызывающим объектом CLIENT_CONTROLLER_BASIC_INFORMATION . Функция CLIENT_QueryControllerBasicInformation записывает аппаратные атрибуты контроллера GPIO и сведения о конфигурации в эту структуру.
Возвращаемое значение
Функция CLIENT_QueryControllerBasicInformation возвращает STATUS_SUCCESS, если вызов выполнен успешно. В противном случае возвращается соответствующий код ошибки.
Комментарии
Эта функция обратного вызова реализуется драйвером контроллера GPIO. Расширение платформы GPIO (GpioClx) вызывает эту функцию.
Функция обратного вызова CLIENT_QueryControllerBasicInformation должна задавать все элементы структуры CLIENT_CONTROLLER_BASIC_INFORMATION , включая элементы Version и Size . GpioClx не инициализирует член Size перед вызовом этой функции, но буфер, на который указывает параметр Information , гарантированно будет достаточно большим, чтобы содержать версию этой структуры, используемую драйвером контроллера GPIO.
Чтобы зарегистрировать функцию обратного вызова CLIENT_QueryControllerBasicInformation драйвера, вызовите метод GPIO_CLX_RegisterClient . Этот метод принимает в качестве входного параметра указатель на структуру GPIO_CLIENT_REGISTRATION_PACKET , содержащую указатель CLIENT_QueryControllerBasicInformation функции.
Примеры
Чтобы определить CLIENT_QueryControllerBasicInformation функцию обратного вызова, необходимо сначала предоставить объявление функции, определяющее тип определяемой функции обратного вызова. Windows предоставляет набор типов функций обратного вызова для драйверов. Объявление функции с помощью типов функций обратного вызова помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.
Например, чтобы определить функцию обратного вызова CLIENT_QueryControllerBasicInformation с именем MyEvtGpioQueryControllerBasicInformation
, используйте тип функции GPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION, как показано в следующем примере кода:
GPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION MyEvtGpioQueryDeviceInformation;
Затем реализуйте функцию обратного вызова следующим образом:
_Use_decl_annotations_
NTSTATUS
MyEvtGpioQueryDeviceInformation(
PVOID Context,
PCLIENT_CONTROLLER_BASIC_INFORMATION Information
)
{ ... }
Тип функции GPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION определяется в файле заголовка Gpioclx.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, применяемых к типу функции GPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в разделе Объявление функций с помощью типов ролей функций для драйверов KMDF. Дополнительные сведения о Use_decl_annotations см. в статье Поведение функции с заметками.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается начиная с Windows 8. |
Целевая платформа | Персональный компьютер |
Верхняя часть | gpioclx.h |
IRQL | Звонил на PASSIVE_LEVEL. |
См. также раздел
CLIENT_CONTROLLER_BASIC_INFORMATION