IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION IOCTL (gpio.h)

IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION I/O 控制代码使常规用途 I/O(GPIO) 控制器的客户端能够请求特定于控制器的设备控制作。 通常,GPIO 控制器的客户端是连接到 GPIO 引脚的外围设备的驱动程序。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

此 I/O 控件代码的输入缓冲区要求由 GPIO 控制器驱动程序的开发人员定义。 有关 METHOD_BUFFERED IRP 的输入缓冲区的详细信息,请参阅 I/O 控制代码的缓冲区说明

输出缓冲区

此 I/O 控制代码的输出缓冲区要求由 GPIO 控制器驱动程序的开发人员定义。 有关 METHOD_BUFFERED IRP 的输出缓冲区的详细信息,请参阅 I/O 控制代码的缓冲区说明。

状态块

如果作成功,GPIO 控制器驱动程序会将 状态 成员设置为STATUS_SUCCESS,并将 信息 成员设置为写入输出缓冲区的字节总数。 如果作不生成输出数据或输出数据指针为 NULL,则 信息 成员设置为零。

如果输入缓冲区不够大,无法包含输入参数,或者输出缓冲区不够大,无法包含特定于控制器的作的输出参数,则 状态 成员设置为STATUS_BUFFER_TOO_SMALL。

如果此请求失败,则 状态 成员设置为错误代码,信息 成员设置为零。

如果 GPIO 控制器驱动程序不支持特定于控制器的作,则 状态 成员设置为STATUS_NOT_IMPLEMENTED。 如果 GPIO 控制器驱动程序支持特定于控制器的作,但无法将输入缓冲区的内容识别为有效,则 状态 成员设置为STATUS_NOT_SUPPORTED。

言论

典型的 GPIO 控制器不支持 IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION 请求。 但是,控制器驱动程序开发人员可以选择定义一个或多个特定于控制器的作,以解决特定硬件平台上 GPIO 控制器的特殊要求或功能。

只有知道特定类型 GPIO 控制器硬件支持的特定于控制器的作的外围设备驱动程序才能使用 IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION 请求来执行这些作。 使用这些请求在一个硬件平台上执行控制器特定的作的外围设备驱动程序可能会丢失与不支持这些作的其他平台的兼容性。

IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION 控件代码的含义由 GPIO 控制器驱动程序的开发人员定义。 通常,控制器驱动程序使用此控制代码使外围设备驱动程序能够对其设备连接到的 GPIO 引脚执行特定于硬件的作。

例如,IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION 请求的输入缓冲区可能包含控制器定义的命令代码和一些数量的输入参数。 GPIO 控制器驱动程序可能会或可能不会将数据写入输出缓冲区,具体取决于命令代码。

外围设备驱动程序将此 I/O 控制请求发送到目标 GPIO 设备的文件对象。 文件对象是一个 FILE_OBJECT 结构,表示与 GPIO 控制器上的一组引脚的打开连接。 内核模式驱动程序框架 (KMDF) 驱动程序使用 WDFIOTARGET 句柄来引用此文件对象。

要求

要求 价值
最低支持的客户端 从 Windows 8 开始支持。
标头 gpio.h

另请参阅

FILE_OBJECT