Bagikan melalui


Fungsi VideoPortMapBankedMemory (video.h)

Fungsi VideoPortMapBankedMemory sudah usang, dan hanya didukung untuk Windows NT 4.0 dan driver sebelumnya. Driver Windows 2000 dan yang lebih baru harus menggunakan VideoPortMapMemory.

VideoPortMapBankedMemory memetakan kembali rentang fisik memori video relatif bus ke ruang alamat virtual driver tampilan yang sesuai sebagai respons terhadap VRP dengan anggota IoControlCode yang diatur ke IOCTL_VIDEO_SHARE_VIDEO_MEMORY atau IOCTL_VIDEO_MAP_VIDEO_MEMORY.

Sintaks

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
);

Parameter

HwDeviceExtension

Arahkan ke ekstensi perangkat driver miniport.

PhysicalAddress

Menentukan alamat dasar relatif bus dari rentang yang akan dipetakan.

Length

Pointer ke variabel yang menentukan jumlah total byte memori perangkat yang akan dipetakan (terlepas dari ukuran bank). VideoPortMapBankedMemory mengembalikan ukuran aktual memori yang dipetakan, yang dapat dibulatkan ke batas perataan yang ditentukan sistem, dalam parameter ini. Namun, driver miniport dan tampilan tidak dapat mengakses memori di luar rentang yang dibatasi oleh nilai input pada Panjang.

InIoSpace

Menunjukkan lokasi rentang. Parameter ini bisa menjadi salah satu nilai berikut:

Nilai Makna
VIDEO_MEMORY_SPACE_DENSE Kedaluwarsa
VIDEO_MEMORY_SPACE_IO Rentang berada dalam ruang I/O sistem daripada di ruang memori.
VIDEO_MEMORY_SPACE_MEMORY Rentang berada di ruang memori daripada di ruang I/O sistem.
VIDEO_MEMORY_SPACE_P6CACHE Prosesor mengagregasi urutan operasi tulis dan mengirimkannya ke baris cache tertentu. Prosesor kemudian membersihkan cache. Bendera ini bermakna hanya ketika VIDEO_MEMORY_SPACE_IO tidak diatur.
VIDEO_MEMORY_SPACE_USER_MODE Menunjukkan bahwa rentang alamat yang ditentukan harus dipetakan ke mode pengguna daripada mode kernel. Bendera ini bermakna hanya ketika VIDEO_MEMORY_SPACE_IO tidak diatur.

VirtualAddress

Adalah handel untuk proses di mana memori harus dipetakan, atau NULL. NULL menentukan bahwa driver port harus memetakan rentang memori logis di lokasi mana pun di ruang alamat proses saat ini. Jika tidak, handel ini dapat menjadi nilai yang diteruskan dalam VRP oleh driver tampilan yang sesuai dengan driver miniport. Saat kembali dari panggilan yang berhasil, VideoPortMapBankedMemory mengatur ulang variabel ke alamat virtual dasar yang telah dipetakan PhysicalAddress yang diberikan.

BankLength

Menentukan ukuran bank, dalam byte.

ReadWriteBank

Jika diatur ke TRUE , bank adalah Read\Write; jika diatur ke FALSE ada dua bank baca dan tulis independen.

BankRoutine

Pointer ke fungsi HwVidBankedMemoryCallback yang disediakan driver untuk dipanggil oleh Memory Manager ketika bank baru diakses oleh driver tampilan.

Context

Arahkan ke konteks miniport yang disediakan pengemudi yang diteruskan kembali ke pengemudi ketika BankRoutine dipanggil.

Mengembalikan nilai

VideoPortMapBankedMemory mengembalikan NO_ERROR jika rentang logis yang diberikan berhasil dipetakan ke rentang virtual ruang pengguna. Jika tidak, itu dapat mengembalikan ERROR_INVALID_PARAMETER.

Keterangan

VideoPortMapBankedMemory berjalan dalam mode kernel dalam konteks yang sama dengan utas mode pengguna yang memulai panggilan.

VideoPortMapBankedMemory dipanggil oleh driver miniport untuk mengelola perangkat jenis x86 secara efisien yang terbatas pada pemetaan buffer bingkai di bank. Ketika rutinitas ini kembali ke pemanggil, buffer bingkai yang dikelola oleh driver miniport dipetakan sebagai buffer bingkai linier ke ruang alamat proses yang meminta (lihat parameter VirtualAddress ). Ketika akses dibuat ke alamat di ruang yang dipetakan, Manajer Memori memanggil driver miniport untuk memperbarui Register Indeks Bank untuk menunjuk ke bank baru yang berisi alamat yang saat ini dirujuk. Bank Index Register dikelola oleh pengemudi miniport di BankRoutine. Indeks Bank yang benar dihitung oleh Memory Manager secara transparan ke driver display dan diteruskan ke driver miniport dalam panggilan balik ke BankRoutine.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows 2000 dan versi yang lebih baru dari sistem operasi Windows.
Target Platform Desktop
Header video.h (sertakan Video.h)
Pustaka Videoprt.lib
DLL Videoprt.sys
IRQL PASSIVE_LEVEL

Lihat juga

HwVidBankedMemoryCallback

IOCTL_VIDEO_MAP_VIDEO_MEMORY

IOCTL_VIDEO_SHARE_VIDEO_MEMORY

IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY

VIDEO_REQUEST_PACKET

VideoPortMapMemory

VideoPortUnmapMemory