IOCTL_ACPI_EVAL_METHOD_EX IOCTL (acpiioct.h)

裝置的驅動程式可以使用IOCTL_ACPI_EVAL_METHOD_EX裝置控制要求,以同步方式評估裝置命名空間中子裝置支援的ACPI控制方法。 驅動程式應該呼叫 IoBuildDeviceIoControlRequest ,並傳遞下列輸入和輸出參數來建置此要求。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

設定 IoBuildDeviceIoControlRequest 輸入參數,如下所示:

  • IoControlCode 設定為 IOCTL_ACPI_EVAL_METHOD_EX。
  • DeviceObject 設定為實體裝置物件的指標, (裝置的 PDO) 。
  • InputBuffer 會設定為輸入緩衝區結構的指標,視要傳遞至控制方法的輸入自變數類型而定。 如需此 IOCTL 支援之類型輸入自變數的詳細資訊,請參閱本主題稍後的一節。
  • InputBufferLength 會設定為 InputBuffer 所提供輸入緩衝區的大小,以位元組為單位。
  • OutputBufferLength 會提供 OutputBuffer 所提供輸出緩衝區的大小,以位元組為單位。
  • InternalDeviceIoControl 設定為 FALSE
  • 事件 會設定為呼叫端配置和初始化事件物件的指標。

輸入緩衝區長度

InputBufferLength 會設定為 InputBuffer 所提供輸入緩衝區的大小,以位元組為單位。

輸出緩衝區

設定 IoBuildDeviceIoControlRequest 輸出參數,如下所示:

輸出緩衝區長度

OutputBufferLength 會提供 OutputBuffer 所提供輸出緩衝區的大小,以位元組為單位。

狀態區塊

如果要求成功,IoStatusBlock-Status> 會設定為 STATUS_SUCCESS;否則,Status 成員會設定為錯誤碼。 如果輸出緩衝區不夠大,無法包含輸出緩衝區標頭, 狀態 成員會設定為STATUS_BUFFER_TOO_SMALL。 如果輸出緩衝區夠大而無法包含輸出緩衝區標頭,但不足以包含控件方法的所有輸出自變數,Status 成員會設定為 STATUS_BUFFER_OVERFLOW,而 OutputBuffer-Length> 設定為輸出緩衝區的必要長度。

如果要求成功,IoStatusBlock-Information> 成員會設定為輸出緩衝區中傳回的位元組數目;否則,Information 成員會設定為零。

備註

裝置的驅動程式可以使用IOCTL_ACPI_EVAL_METHOD_EX,以同步方式評估裝置命名空間中子物件所支援的控件方法。 這個要求所提供之控制方法的路徑和名稱必須是 ACPI 命名空間中方法的完整路徑和名稱,或是相對於傳送要求之裝置的方法路徑和名稱。 例如,假設名為 『ABCD』 的裝置是 ACPI 命名空間根目錄的立即子系、『ABCD』 裝置支援名為 『CHLD』 的子裝置,以及 『CHLD』 裝置支援名為 『_FOO』 的方法。 在此情況下,若要評估 『_FOO』 方法,驅動程式會將評估要求傳送至 『ABCD』 裝置,並提供路徑和名稱 『\ABCD。CHLD._FOO,這是 ACPI 命名空間中的完整路徑和名稱,或路徑和名稱 『CHLD._FOO』,這是 ACPI 命名空間中與 『ABCD』 裝置相對的路徑和名稱。

IOCTL_ACPI_EVAL_METHOD_EX支援下列類型的輸入緩衝區結構:

ACPI_EVAL_INPUT_BUFFER_EX

ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_EX

ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_EX

ACPI_EVAL_INPUT_BUFFER_COMPLEX_EX

控件方法的輸出自變數會在 OutBuffer 指標所提供的可變長度ACPI_EVAL_OUTPUT_BUFFER結構中傳回。 ACPI_EVAL_OUTPUT_BUFFER包含可變長度 ACPI_METHOD_ARGUMENT 結構的陣列,每一個都會傳回輸出自變數。

如需如何同步評估控制方法的詳細資訊,請參閱 同步評估ACPI控制方法

驅動程式也可以使用 IOCTL_ACPI_EVAL_METHOD 要求,以同步方式評估屬於裝置之立即子物件的控件方法。

如需如何在 Windows Server 2008 和 Windows Vista 上以異步方式評估 ACPI 控制項方法的資訊,請參閱 IOCTL_ACPI_ASYNC_EVAL_METHODIOCTL_ACPI_ASYNC_EVAL_METHOD_EX

IOCTL_ACPI_EVAL_METHOD_EX只能在 IRQL < DISPATCH_LEVEL使用。

規格需求

需求
最低支援的用戶端 Windows Vista 和更新版本的 Windows。
標頭 acpiioct.h (包含 Acpiioct.h)

另請參閱

ACPI_EVAL_INPUT_BUFFER_COMPLEX_EX

ACPI_EVAL_INPUT_BUFFER_EX

ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_EX

ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_EX

ACPI_EVAL_OUTPUT_BUFFER

IOCTL_ACPI_ASYNC_EVAL_METHOD

IOCTL_ACPI_ASYNC_EVAL_METHOD_EX

IOCTL_ACPI_EVAL_METHOD