IOCTL_ACPI_EVAL_METHOD IOCTL (acpiioct.h)

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

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

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

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

入力バッファーの長さ

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_EVAL_METHODを使用して、デバイスがサポートする制御メソッドを同期的に評価できます。 たとえば、デバイスが ACPI 名前空間の "ABCD" という名前で、"ABCD" デバイスが '_FOO' という名前のメソッドをサポートしている場合、この IOCTL を使用して、要求を 'ABCD' デバイスに送信し、制御メソッド名 '_FOO' を指定することで、制御メソッド '_FOO' を評価できます。

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

Windows Server 2008 および Windows Vista 以降では、ドライバーは IOCTL_ACPI_EVAL_METHOD_EX 要求を使用して、デバイスの直接の子オブジェクトではない制御メソッドを同期的に評価することもできます。

Windows Server 2008 および Windows Vista 以降で ACPI 制御メソッドを非同期的に評価する方法については、「 IOCTL_ACPI_ASYNC_EVAL_METHODIOCTL_ACPI_ASYNC_EVAL_METHOD_EX」を参照してください。

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

要件

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

IOCTL_ACPI_ASYNC_EVAL_METHOD_EX

IOCTL_ACPI_EVAL_METHOD_EX