次の方法で共有


IOCTL_ACPI_ASYNC_EVAL_METHOD_EX IOCTL (acpiioct.h)

デバイスのドライバーは、IOCTL_ACPI_ASYNC_EVAL_METHOD_EXデバイス制御要求を使用して、デバイスの子デバイスでサポートされている ACPI 制御メソッドを非同期的に評価できます。 ドライバーは IoBuildDeviceIoControlRequest を呼び出し、次の入力パラメーターと出力パラメーターを渡してこの要求をビルドする必要があります。

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

IoBuildDeviceIoControlRequest 入力パラメーターを次のように設定します。

  • IoControlCode は IOCTL_ACPI_ASYNC_EVAL_METHOD_EX に設定されます。
  • DeviceObject は、デバイスの物理デバイス オブジェクト (PDO) へのポインターに設定されます。
  • InputBuffer は、コントロール メソッドに渡される入力引数の型に依存する入力バッファー構造体へのポインターに設定されます。 この IOCTL でサポートされる型入力引数の詳細については、このトピックで後述する「解説」セクションを参照してください。
  • InputBufferLength は、 InputBuffer によって提供される入力バッファーのサイズ (バイト単位) に設定されます。
  • OutputBufferLength は、 OutputBuffer によって提供される出力バッファーのサイズをバイト単位で提供します。
  • InternalDeviceIoControl が FALSE に設定 されています
  • イベント は NULL に設定 されています

入力バッファーの長さ

InputBufferLength は、 InputBuffer によって提供される入力バッファーのサイズ (バイト単位) に設定されます。

出力バッファー

IoBuildDeviceIoControlRequest 出力パラメーターを次のように設定します。

  • OutputBuffer は、コントロール メソッドからの出力引数を含む ACPI_EVAL_OUTPUT_BUFFER 構造体へのポインターを提供します。
  • IoStatusBlock、IO_STATUS_BLOCK 構造体に設定されます。

出力バッファーの長さ

OutputBufferLength は、 OutputBuffer によって提供される出力バッファーのサイズをバイト単位で提供します。

ステータス ブロック

要求が成功した場合、IoStatusBlock-Status> はSTATUS_SUCCESSに設定されます。それ以外の場合、Status メンバーはエラー コードに設定されます。 出力バッファーが出力バッファー ヘッダーを格納するのに十分な大きさでない場合、 Status メンバーは STATUS_BUFFER_TOO_SMALL に設定されます。 出力バッファーが出力バッファー ヘッダーを格納するのに十分な大きさで、コントロール メソッドのすべての出力引数を格納するのに十分な大きさではない場合、Status メンバーはSTATUS_BUFFER_OVERFLOWに設定され、OutputBuffer-Length> は出力バッファーの必要な長さに設定されます。

要求が成功した場合、IoStatusBlock-Information> メンバーは出力バッファーで返されるバイト数に設定されます。それ以外の場合、Information メンバーは 0 に設定されます。

注釈

デバイスのドライバーは、IOCTL_ACPI_ASYNC_EVAL_METHOD_EXを使用して、デバイスの名前空間内の子オブジェクトでサポートされているコントロール メソッドを非同期的に評価できます。 この要求によって提供される制御メソッドのパスと名前は、ACPI 名前空間内のメソッドの完全修飾パスと名前、または要求の送信先デバイスに対するメソッドのパスと名前のいずれかである必要があります。 たとえば、"ABCD" という名前のデバイスが ACPI 名前空間のルートの直接の子であり、"ABCD" デバイスが 'CHLD' という名前の子デバイスをサポートしていること、および 'CHLD' デバイスが '_FOO' という名前のメソッドをサポートしているとします。 この場合、"_FOO" メソッドを評価するために、ドライバーは 'ABCD' デバイスに評価要求を送信し、パスと名前 '\ABCD のいずれかを指定します。CHLD._FOO。ACPI 名前空間の完全修飾パスと名前、または ACPI 名前空間の 'ABCD' デバイスに対する相対パスと名前であるパスと名前 'CHLD._FOO' です。

IOCTL_ACPI_ASYNC_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_METHODIOCTL_ACPI_EVAL_METHOD_EXおよび ACPI 制御メソッドを同期的に評価する」を参照してください。

IOCTL_ACPI_ASYNC_EVAL_METHOD_EXは IRQL <= DISPATCH_LEVELでのみ使用できます。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows。
Header 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

ACPI_METHOD_ARGUMENT

IOCTL_ACPI_EVAL_METHOD

IOCTL_ACPI_EVAL_METHOD_EX