VideoPortMapBankedMemory 関数 (video.h)

VideoPortMapBankedMemory 関数は廃止され、Windows NT 4.0 以前のドライバーでのみサポートされています。 Windows 2000 以降のドライバーでは 、VideoPortMapMemory を使用する必要があります。

VideoPortMapBankedMemory は、 IoControlCode メンバーが IOCTL_VIDEO_SHARE_VIDEO_MEMORY または IOCTL_VIDEO_MAP_VIDEO_MEMORY に設定された VRP に応答して、バス相対物理範囲のビデオ メモリを対応するディスプレイ ドライバーの仮想アドレス空間に再マップします。

構文

VIDEOPORT_DEPRECATED VIDEOPORT_API VP_STATUS VideoPortMapBankedMemory(
  PVOID                   HwDeviceExtension,
  PHYSICAL_ADDRESS        PhysicalAddress,
  PULONG                  Length,
  PULONG                  InIoSpace,
  PVOID                   *VirtualAddress,
  ULONG                   BankLength,
  UCHAR                   ReadWriteBank,
  PBANKED_SECTION_ROUTINE BankRoutine,
  PVOID                   Context
);

パラメーター

HwDeviceExtension

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

PhysicalAddress

マップする範囲のバス相対ベース アドレスを指定します。

Length

マップするデバイス メモリの合計バイト数を指定する変数へのポインター (銀行のサイズに関係なく)。 VideoPortMapBankedMemory は、このパラメーターで、システムによって決定された配置境界に丸めることができる、マップされたメモリの実際のサイズを返します。 ただし、ミニポート ドライバーとディスプレイ ドライバーは 、長さの入力値で区切られた範囲外のメモリにアクセスできません。

InIoSpace

範囲の場所を示します。 このパラメーターには、次のいずれかの値を指定できます。

意味
VIDEO_MEMORY_SPACE_DENSE 古い
VIDEO_MEMORY_SPACE_IO この範囲は、メモリ空間ではなく、システム I/O 領域にあります。
VIDEO_MEMORY_SPACE_MEMORY この範囲は、システム I/O 領域ではなくメモリ領域にあります。
VIDEO_MEMORY_SPACE_P6CACHE プロセッサは、一連の書き込み操作を集計し、特定のキャッシュ行に送信します。 その後、プロセッサによってキャッシュがフラッシュされます。 このフラグは、VIDEO_MEMORY_SPACE_IOが設定されていない場合にのみ意味があります。
VIDEO_MEMORY_SPACE_USER_MODE 指定されたアドレス範囲をカーネル モードではなくユーザー モードにマップする必要があることを示します。 このフラグは、VIDEO_MEMORY_SPACE_IOが設定されていない場合にのみ意味があります。

VirtualAddress

メモリをマップする必要があるプロセスのハンドル ( NULL) ですNULL は 、ポート ドライバーが現在のプロセスのアドレス空間内の任意の場所に論理メモリ範囲をマップすることを指定します。 それ以外の場合、このハンドルには、ミニポート ドライバーの対応するディスプレイ ドライバーによって VRP に渡される値を指定できます。 呼び出しが成功すると、 VideoPortMapBankedMemory は、指定された PhysicalAddress をマップしたベース仮想アドレスに変数をリセットします。

BankLength

バンクのサイズをバイト単位で指定します。

ReadWriteBank

TRUE に設定すると、銀行は読み取り/書き込みになります。FALSE に設定されている場合は、2 つの独立した読み取りおよび書き込みバンクがあります。

BankRoutine

新しいバンクがディスプレイ ドライバーからアクセスされたときにメモリ マネージャーによって呼び出されるドライバー提供の HwVidBankedMemoryCallback 関数へのポインター。

Context

BankRoutine が呼び出されたときにドライバーに返されるミニポート ドライバー提供のコンテキストへのポインター。

戻り値

指定された論理範囲がユーザー空間の仮想範囲に正常にマップされた場合、VideoPortMapBankedMemory はNO_ERRORを返します。 それ以外の場合は、ERROR_INVALID_PARAMETERを返すことができます。

注釈

VideoPortMapBankedMemory は、呼び出しを開始したユーザー モード スレッドと同じコンテキスト内でカーネル モードで実行されます。

VideoPortMapBankedMemory は、バンク内のフレーム バッファーのマッピングに制限されている x86 型デバイスを効率的に管理するために、ミニポート ドライバーによって呼び出されます。 このルーチンが呼び出し元に戻ると、ミニポート ドライバーによって管理されるフレーム バッファーは、要求プロセスのアドレス空間に線形フレーム バッファーとしてマップされます ( 「VirtualAddress パラメーター」を参照)。 割り当てられた領域のアドレスへのアクセスが行われると、メモリ マネージャーはミニポート ドライバーを呼び出して、現在参照されているアドレスを含む新しい銀行を指すように銀行インデックス レジスタを更新します。 BankRoutine のミニポート ドライバーによって、銀行インデックス レジスタが維持されます。 正しいバンク インデックスは、メモリ マネージャーによってディスプレイ ドライバーに透過的に計算され、 BankRoutine へのコールバックでミニポート ドライバーに渡されます。

要件

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

こちらもご覧ください

HwVidBankedMemoryCallback

IOCTL_VIDEO_MAP_VIDEO_MEMORY

IOCTL_VIDEO_SHARE_VIDEO_MEMORY

IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY

VIDEO_REQUEST_PACKET

VideoPortMapMemory

VideoPortUnmapMemory