コールバック関数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 を含む) |