次の方法で共有


PAGP_RESERVE_PHYSICALコールバック関数 (videoagp.h)

AgpReservePhysical 関数は、AGP コントローラーが応答できるシステム バス上の物理アドレスの範囲を予約します。

構文

PAGP_RESERVE_PHYSICAL PagpReservePhysical;

PHYSICAL_ADDRESS PagpReservePhysical(
  [in]  IN PVOID HwDeviceExtension,
  [in]  IN ULONG Pages,
  [in]  IN VIDEO_PORT_CACHE_TYPE Caching,
  [out] OUT PVOID *PhysicalReserveContext
)
{...}

パラメーター

[in] HwDeviceExtension

ミニポート ドライバーのデバイス拡張機能へのポインター。

[in] Pages

ビデオ ポート ドライバーが予約するページの数を指定します。

[in] Caching

システムで使用するキャッシュの種類を指定する VIDEO_PORT_CACHE_TYPE 列挙体。

[out] PhysicalReserveContext

ビデオ ポート ドライバーが、予約済みの物理アドレス空間を識別するコンテキスト ハンドルを書き込む場所を指定します。

戻り値

AgpReservePhysical は、成功した場合に予約済み物理アドレス範囲のベース アドレスを返します。それ以外の場合は NULL を返します。

備考

Windows 2000 で実行されるビデオ ミニポート ドライバーは、サイズが 64 KB の倍数である範囲を常に予約する必要があります。 64 KB の倍数ではない範囲を予約すると、AgpReserveVirtual したり、AgpCommitVirtual 無効な仮想アドレスが返されたりする可能性があります。

Windows XP 以降では、AgpReservePhysical は、要求された範囲を 64 KB の倍数に自動的に拡張します。

正常に戻ると、AGP コントローラーはバス上の予約済み物理アドレス範囲に応答できます。 ただし、ビデオ ミニポート ドライバーは、最初に AgpCommitPhysical を呼び出して、アクセスされた結果を定義するために、このメモリにアクセスする前にコミットする必要があります。

ミニポート ドライバーは、AgpReservePhysical を複数回呼び出して、1 つの大きな範囲ではなく、多数の小さなアドレス範囲を予約できます。

ミニポート ドライバーは、AgpReleasePhysical を呼び出して、不要になったときに物理アドレス範囲を解放する必要があります。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000
ターゲット プラットフォーム の デスクトップ
ヘッダー videoagp.h (Video.h を含む)
IRQL PASSIVE_LEVEL

関連項目

AgpCommitPhysical

AgpReleasePhysical

AgpReserveVirtual の