次の方法で共有


コールバック関数ACPI_OP_REGION_HANDLER (oprghdlr.h)

ACPI_OP_REGION_HANDLER型のルーチンは、ACPI ドライバーがデバイスの操作領域へのアクセスを提供するために 、ACPI デバイス関数ドライバーによって提供されます。

構文

ACPI_OP_REGION_HANDLER AcpiOpRegionHandler;

NTSTATUS AcpiOpRegionHandler(
  ULONG AccessType,
  PVOID OperationRegionObject,
  ULONG Address,
  ULONG Size,
  PULONG Data,
  ULONG_PTR Context,
  PACPI_OP_REGION_CALLBACK CompletionHandler,
  PVOID CompletionContext
)
{...}

パラメーター

AccessType

次のいずれかのアクセスの種類を指定します。

アクセスの種類 説明
ACPI_OPREGION_WRITE 操作領域のメモリ バッファーに書き込みます。
ACPI_OPREGION_READ 操作領域のメモリ バッファーから読み取ります。

OperationRegionObject

操作領域ハンドラーに対して RegisterOpRegionHandler によって返される操作領域オブジェクトを指定します。

Address

操作領域のメモリ バッファー内のバイト オフセットを指定します。 アクセスの種類に応じて、このメモリの場所間でデータが転送されます。

Size

アクセスするバイト数を指定します。

Data

アクセスに関連付けられている ACPI ドライバーによって提供されるデータ バッファーへのポインター。 読み取りアクセスの場合、バイトは操作領域のメモリ バッファーからデータ バッファーに転送されます。 書き込みアクセスの場合、バイトはデータ バッファーから操作領域のメモリ バッファーに転送されます。

Context

関数ドライバーが操作領域ハンドラーを登録したときに指定したのと同じ操作領域コンテキストへのポインター。

CompletionHandler

内部使用のために予約されています。

CompletionContext

内部使用のために予約されています。

戻り値

次のいずれかの状態値を返します。

リターン コード 説明
STATUS_SUCCESS アクセスが成功しました。
STATUS_INVALID_DEVICE_REQUEST アクセスの種類が無効です。
STATUS_Xxx 内部エラーが発生しました。

注釈

ACPI ドライバーは、操作領域ハンドラーを呼び出すときに 、アクセス が ACPI デバイスの ACPI BIOS で定義されている操作領域内にあることを確認するアドレスと サイズ の値を指定します。 ACPI デバイス関数ドライバーは、割り当てる操作領域のメモリ バッファーが、ACPI デバイスに対して定義されている操作領域と同じ大きさ (バイト単位) 以上であることを確認する必要があります。

操作領域ハンドラーの詳細については、「 操作リージョンのサポート」を参照してください。

ACPI_OP_REGION_HANDLER型指定されたルーチンは、呼び出し元の IRQL で実行されます。

操作領域の制約の詳細については、「 高度な構成と電源インターフェイス (ACPI) の仕様」を参照してください

要件

要件
対象プラットフォーム デスクトップ
Header oprghdlr.h (Oprghdlr.h を含む)

こちらもご覧ください

DeRegisterOpRegionHandler