次の方法で共有


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

AgpCommitVirtual 関数は、予約済みの仮想メモリを、関連付けられた AGP デコード可能な物理アドレスの範囲にマップします。

構文

PAGP_COMMIT_VIRTUAL PagpCommitVirtual;

PVOID PagpCommitVirtual(
  [in] IN PVOID HwDeviceExtension,
  [in] IN PVOID VirtualReserveContext,
  [in] IN ULONG Pages,
  [in] IN ULONG Offset
)
{...}

パラメーター

[in] HwDeviceExtension

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

[in] VirtualReserveContext

予約済みの仮想アドレス範囲を識別します。 コンテキスト ハンドルは AgpReserveVirtual から取得されました。

[in] Pages

マップする仮想メモリのページ数を指定します。

[in] Offset

ページをコミットするページ オフセットを指定します。 オフセットは、 VirtualReserveContext によって識別される予約済み仮想アドレス範囲に適用されます。

戻り値

マッピングが成功した場合、AgpCommitVirtual はコミットされたページのベースの仮想アドレスを返します。それ以外の場合は NULL を返します。

注釈

AgpCommitVirtual を呼び出して仮想ページの範囲をコミットする前に、次の操作を行う必要があります。

  • AgpReservePhysical を呼び出して、GPU で使用する物理アドレスの範囲を予約します。
  • AgpCommitPhysical を呼び出して、予約済み物理アドレスの一部 (またはすべて) をシステム メモリ内のロックされたページにマップします。
  • AgpReserveVirtual を呼び出して、AgpReservePhysical によって予約された物理アドレスの範囲に関連付けられている仮想アドレスの範囲を予約します。
これらの項目が完了したら、 AgpCommitVirtual を呼び出して、予約済みの仮想ページの一部を 、AgpCommitPhysical によって既にマップおよびロックされているページにマップできます。 物理アドレスの対応するページがまだマップされていない場合は、仮想アドレスのページをマップしようとしないでください。

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

Windows XP 以降では、 AgpCommitVirtual によってコミットされた範囲が自動的に拡張され、64 キロバイトの倍数になります。

ミニポート ドライバーが AgpCommitVirtual を呼び出すと、 VirtualReserveContext によって識別される仮想アドレス範囲の一部が物理アドレスにマップされます。 マップされた部分は、VirtualReserveContext によって識別される仮想アドレス範囲にオフセット ページを開始します。

要件

要件
サポートされている最小のクライアント Windows 2000 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム デスクトップ
Header videoagp.h (Video.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

AgpFreeVirtual

AgpReservePhysical

AgpReserveVirtual