IOCTL_ACPI_ASYNC_EVAL_METHOD IOCTL (acpiioct.h)

设备的驱动程序可以使用IOCTL_ACPI_ASYNC_EVAL_METHOD设备控制请求异步评估设备支持的 ACPI 控制方法。 驱动程序应调用 IoBuildDeviceIoControlRequest 并传递以下输入和输出参数来生成此请求。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

按如下所示设置 IoBuildDeviceIoControlRequest 输入参数:

  • IoControlCode 设置为 IOCTL_ACPI_ASYNC_EVAL_METHOD。
  • DeviceObject 设置为指向物理设备对象的指针, (设备的 PDO) 。
  • InputBuffer 设置为指向输入缓冲区结构的指针,该结构取决于要传递给控件方法的输入参数的类型。 有关此 IOCTL 支持的输入参数类型的详细信息,请参阅本主题后面的备注部分。
  • InputBufferLength 设置为 InputBuffer 提供的输入缓冲区的大小(以字节为单位)。
  • OutputBufferLength 提供 OutputBuffer 提供的输出缓冲区的大小(以字节为单位)。
  • InternalDeviceIoControl 设置为 FALSE
  • 事件 设置为 NULL

输入缓冲区长度

InputBufferLength 设置为 InputBuffer 提供的输入缓冲区的大小(以字节为单位)。

输出缓冲区

按如下所示设置 IoBuildDeviceIoControlRequest 输出参数:

输出缓冲区长度

OutputBufferLength 提供 OutputBuffer 提供的输出缓冲区的大小(以字节为单位)。

状态块

如果请求成功,IoStatusBlock-Status> 设置为 STATUS_SUCCESS;否则,Status 成员设置为错误代码。 如果输出缓冲区的大小不足以包含输出缓冲区标头, 则 Status 成员将设置为 STATUS_BUFFER_TOO_SMALL。 如果输出缓冲区足够大,足以包含输出缓冲区标头,但大小不足以包含控制方法中的所有输出参数,则 Status 成员设置为 STATUS_BUFFER_OVERFLOW,OutputBuffer-Length > 设置为输出缓冲区的所需长度。

如果请求成功,IoStatusBlock-Information> 成员将设置为输出缓冲区中返回的字节数;否则,信息成员设置为零。

注解

设备的驱动程序可以使用IOCTL_ACPI_ASYNC_EVAL_METHOD异步评估设备支持的控制方法。 例如,如果设备在 ACPI 命名空间中名为“ABCD”,并且“ABCD”设备支持名为“_FOO”的方法,则此 IOCTL 可用于评估控制方法“_FOO”,方法是将请求发送到“ABCD”设备并提供控制方法名称“_FOO”。

IOCTL_ACPI_ASYNC_EVAL_METHOD支持以下类型的输入缓冲区结构:

ACPI_EVAL_INPUT_BUFFER

ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER

ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING

ACPI_EVAL_INPUT_BUFFER_COMPLEX

控制方法的输出参数在 OutBuffer 指针提供的可变长度ACPI_EVAL_OUTPUT_BUFFER结构中返回。 ACPI_EVAL_OUTPUT_BUFFER包含一个可变长度 ACPI_METHOD_ARGUMENT 结构的数组,每个结构都返回一个输出参数。

有关如何同步评估 ACPI 控制方法的信息,请参阅 IOCTL_ACPI_EVAL_METHODIOCTL_ACPI_EVAL_METHOD_EX同步评估 ACPI 控制方法

IOCTL_ACPI_ASYNC_EVAL_METHOD只能在 IRQL <= DISPATCH_LEVEL 中使用。

要求

要求
最低受支持的客户端 Windows Vista 和更高版本的 Windows。
标头 acpiioct.h (包括 Acpiioct.h)

另请参阅

ACPI_EVAL_INPUT_BUFFER

ACPI_EVAL_INPUT_BUFFER_COMPLEX

ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER

ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING

ACPI_EVAL_OUTPUT_BUFFER

ACPI_METHOD_ARGUMENT

IOCTL_ACPI_EVAL_METHOD

IOCTL_ACPI_EVAL_METHOD_EX