Bagikan melalui


Fungsi VideoPortVerifyAccessRanges (video.h)

Fungsi VideoPortVerifyAccessRanges memeriksa registri apakah driver lain telah mengklaim kepemilikan rentang akses relatif bus yang ditentukan dan sumber daya perangkat keras lainnya yang ditentukan dalam struktur VIDEO_PORT_CONFIG_INFO . Jika tidak, fungsi ini mengklaim sumber daya yang diberikan untuk pemanggil.

Sintaks

VIDEOPORT_DEPRECATED VIDEOPORT_API VP_STATUS VideoPortVerifyAccessRanges(
                 PVOID               HwDeviceExtension,
                 ULONG               NumAccessRanges,
  [in, optional] PVIDEO_ACCESS_RANGE AccessRanges
);

Parameter

HwDeviceExtension

Arahkan ke ekstensi perangkat driver miniport.

NumAccessRanges

Menentukan jumlah elemen dalam array AccessRanges , atau nol.

[in, optional] AccessRanges

Arahkan ke array rentang akses driver miniport, atau NULL. Setiap elemen jenis VIDEO_ACCESS_RANGE dalam array ini menentukan rentang memori perangkat relatif bus, port I/O, atau alamat register untuk adaptor.

Nilai kembali

VideoPortVerifyAccessRanges mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
ERROR_INVALID_PARAMETER Terjadi kesalahan atau konflik ditemukan; artinya, driver lain telah mengklaim satu atau beberapa sumber daya perangkat keras yang diberikan untuk perangkatnya.
NO_ERROR AccessRanges yang diberikan valid dan telah diklaim untuk digunakan oleh pemanggil.

Keterangan

Setiap driver miniport video harus memanggil VideoPortVerifyAccessRanges, atau menggunakan rentang akses yang dikembalikan oleh VideoPortGetAccessRanges sebelum mencoba mengakses adaptor video selama proses inisialisasi driver (dan sistem).

VideoPortVerifyAccessRanges hanya dapat dipanggil oleh fungsi HwVidFindAdapter driver miniport.

Setiap driver miniport video harus menentukan rentang akses relatif bus untuk perangkatnya, baik sebagai memori yang dialokasikan secara statis dalam file atau kode header driver atau pada tumpukan. Sebagian besar driver miniport menyiapkan rentang akses video mereka pada tumpukan, kecuali yang menggunakan rentang alamat standar PC untuk memori video, seperti driver miniport SVGA yang kompatibel dengan VGA.

Fungsi HwVidFindAdapter harus mencoba mendapatkan informasi rentang akses relatif bus dengan memanggil VideoPortGetAccessRanges, atau dengan memeriksa registri melalui panggilan ke VideoPortGetDeviceData atau VideoPortGetRegistryParameters. Jika HwVidFindAdapter tidak dapat memperoleh informasi ini, driver miniport harus memiliki serangkaian nilai default relatif bus untuk rentang akses.

Jika rentang akses driver miniport dapat dikonfigurasi secara eksternal, program penginstalan menyiapkan rentang akses untuk adaptor di registri. Fungsi HwVidFindAdapter driver miniport seperti itu dapat memanggil VideoPortGetRegistryParameters dengan fungsi HwVidQueryNamedValueCallback yang disediakan driver miniport yang memproses informasi yang diambil dari registri.

HwVidFindAdapter tidak boleh meneruskan alamat rentang akses apa pun ke VideoPortGetDeviceBase kecuali memanggil VideoPortVerifyAccessRanges atau VideoPortGetAccessRanges terlebih dahulu dan fungsi masing-masing mengembalikan NO_ERROR.

VideoPortVerifyAccessRanges dapat dipanggil lagi jika spesifikasi atau nilai AccessRanges awal dalam VIDEO_PORT_CONFIG_INFO, seperti vektor interupsi, menyebabkannya mengembalikan ERROR_XXX yang menunjukkan bahwa driver lain telah mengklaim sumber daya.

Jika VideoPortVerifyAccessRanges mengembalikan NO_ERROR, panggilan berikutnya untuk adaptor yang sama menimpa klaim driver miniport pada sumber daya untuk adaptor tersebut di registri.

Perhatikan bahwa driver miniport tidak dapat berkomunikasi dengan adaptor videonya, kecuali dengan menggunakan alamat yang dipetakan yang dikembalikan oleh VideoPortGetDeviceBase dengan fungsi VideoPortRead/WriteXxx .

Jika fungsi HwVidFindAdapter mengklaim rentang akses relatif bus dan mungkin sumber daya perangkat keras lainnya untuk adaptor tetapi kemudian menentukan bahwa itu tidak mendukung adaptor, driver miniport harus melepaskan klaimnya pada sumber daya perangkat keras di registri dengan memanggil VideoPortVerifyAccessRanges atau VideoPortGetAccessRanges dengan NumAccessRanges diatur ke nol dan AccessRanges diatur ke NULL.

Untuk melepaskan klaim pada subset rentang akses yang diklaim yang tidak lagi digunakan driver miniport, lakukan hal berikut:

  1. Ubah spesifikasi AccessRanges untuk adaptor sehingga setiap elemen yang menjelaskan rentang yang akan dirilis masih memiliki RangeStart yang diatur ke basis relatif bus dari rentang yang diklaim, tetapi RangeLength mengatur ulang ke nol.
  2. Panggil VideoPortVerifyAccessRanges dengan array AccessRanges yang dimodifikasi ini.

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

HwVidFindAdapter

HwVidQueryDeviceCallback

HwVidQueryNamedValueCallback

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetAccessRanges

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortGetRegistryParameters