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

Функция обратного вызова события CLIENT_QuerySetControllerInformation запрашивает драйвер контроллера ввода-вывода общего назначения (GPIO) для указанного набора атрибутов контроллера GPIO.

Синтаксис

GPIO_CLIENT_QUERY_SET_CONTROLLER_INFORMATION GpioClientQuerySetControllerInformation;

NTSTATUS GpioClientQuerySetControllerInformation(
  [in]            PVOID Context,
  [in]            PCLIENT_CONTROLLER_QUERY_SET_INFORMATION_INPUT InputBuffer,
  [out, optional] PCLIENT_CONTROLLER_QUERY_SET_INFORMATION_OUTPUT OutputBuffer
)
{...}

Параметры

[in] Context

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

[in] InputBuffer

Указатель на структуру CLIENT_CONTROLLER_QUERY_SET_INFORMATION_INPUT , описывающую тип атрибутов, запрашиваемых вызывающим элементом.

[out, optional] OutputBuffer

Необязательный указатель на структуру CLIENT_CONTROLLER_QUERY_SET_INFORMATION_OUTPUT , в которую функция записывает значения запрошенных атрибутов.

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

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

Код возврата Описание
STATUS_NOT_SUPPORTED
Функция не поддерживает тип запрашиваемых атрибутов.

Комментарии

Элемент RequestType структуры CLIENT_CONTROLLER_QUERY_SET_INFORMATION_INPUT , на который указывает InputBuffer , указывает тип запрашиваемых атрибутов. Список типов атрибутов, которые можно запросить, см. в разделе CLIENT_CONTROLLER_QUERY_SET_REQUEST_TYPE.

Реализация функции CLIENT_QuerySetControllerInformation необязательна. Если драйвер контроллера GPIO реализует функцию CLIENT_QuerySetControllerInformation , эта функция может поддерживать некоторые типы запросов атрибутов, но не поддерживать другие. Если вызывающий объект запрашивает тип атрибута, который не поддерживается функцией, функция возвращает STATUS_NOT_SUPPORTED.

Примеры

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

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

GPIO_CLIENT_QUERY_SET_CONTROLLER_INFORMATION MyEvtGpioQuerySetControllerInformation;

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

_Use_decl_annotations_
NTSTATUS
  MyEvtGpioQuerySetControllerInformation(
    PVOID Context,
    PCLIENT_CONTROLLER_QUERY_SET_INFORMATION_INPUT InputBuffer,
    PCLIENT_CONTROLLER_QUERY_SET_INFORMATION_OUTPUT OutputBuffer
    )
{ ... }

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

Требования

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

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

CLIENT_CONTROLLER_QUERY_SET_INFORMATION_INPUT

CLIENT_CONTROLLER_QUERY_SET_INFORMATION_OUTPUT

CLIENT_CONTROLLER_QUERY_SET_REQUEST_TYPE