次の方法で共有


操作領域ハンドラーを実装する

ドライバーは、PACPI_OP_REGION_HANDLER 型のコールバックである操作領域ハンドラーを提供する必要があります。 ACPI ドライバーは、ドライバーの操作領域のデータ フィールドにアクセスする操作ハンドラーを呼び出します。 ファンクション ドライバーと ACPI BIOS を組み合わせた操作は、ベンダー定義でデバイス固有です。 一般的に、ファンクション ドライバーと ACPI BIOS は、デバイス固有の操作を行い、適切な情報を返す操作領域のインデックスにアクセスします。

通常、操作領域ハンドラーは、ACPI ドライバーがハンドラーに渡す次のパラメーターを使用します。

  • AccessType は、アクセスが読み取りか書き込みかを指定します。

    アクセスが読み取りである場合、データは操作領域のメモリ バッファーからData バッファーに転送されます。 アクセスが書き込みである場合、データはData バッファーから操作領域のメモリ バッファーに転送されます。 「操作領域へのアクセス」を参照してください。

  • Address は、操作領域のメモリ バッファー内のバイト オフセットを指定します。

  • Size は、転送するバイト数を指定します。

  • Data は、データ転送用に ACPI ドライバーによって提供されるバッファーを指定します。

  • Context は、ドライバーが操作領域ハンドラーに登録した操作領域コンテキストを指定します。

    操作領域コンテキストは、ファンクション ドライバーによってのみ使用され、デバイス固有のものです。

ACPI ドライバーは、前述したパラメーターに加えて、操作領域のハンドラーに操作領域オブジェクト、完了ハンドラー、および完了コンテキストのポインターを渡します。 ただし、ファンクション ドライバーはハンドラーで操作領域オブジェクトを使用せず、完了ハンドラーとコンテキストは内部使用のために予約されています。