struktur VIDEO_PORT_CONFIG_INFO (video.h)
Struktur VIDEO_PORT_CONFIG_INFO berisi informasi konfigurasi adaptor khusus bus. Struktur ini digunakan untuk menyiapkan perangkat keras video dan untuk menyediakan driver port video dengan informasi konfigurasi. Driver port video kemudian dapat mengalokasikan sumber daya sistem yang diperlukan untuk driver miniport dan adaptornya.
Sintaks
typedef struct _VIDEO_PORT_CONFIG_INFO {
ULONG Length;
ULONG SystemIoBusNumber;
INTERFACE_TYPE AdapterInterfaceType;
ULONG BusInterruptLevel;
ULONG BusInterruptVector;
KINTERRUPT_MODE InterruptMode;
ULONG NumEmulatorAccessEntries;
PEMULATOR_ACCESS_ENTRY EmulatorAccessEntries;
ULONG_PTR EmulatorAccessEntriesContext;
PHYSICAL_ADDRESS VdmPhysicalVideoMemoryAddress;
ULONG VdmPhysicalVideoMemoryLength;
ULONG HardwareStateSize;
ULONG DmaChannel;
ULONG DmaPort;
UCHAR DmaShareable;
UCHAR InterruptShareable;
BOOLEAN Master;
DMA_WIDTH DmaWidth;
DMA_SPEED DmaSpeed;
BOOLEAN bMapBuffers;
BOOLEAN NeedPhysicalAddresses;
BOOLEAN DemandMode;
ULONG MaximumTransferLength;
ULONG NumberOfPhysicalBreaks;
BOOLEAN ScatterGather;
ULONG MaximumScatterGatherChunkSize;
PVIDEO_PORT_GET_PROC_ADDRESS VideoPortGetProcAddress;
PWSTR DriverRegistryPath;
ULONGLONG SystemMemorySize;
} VIDEO_PORT_CONFIG_INFO, *PVIDEO_PORT_CONFIG_INFO;
Anggota
Length
Adalah ukuran dalam byte struktur ini. Driver port video selalu menginisialisasi anggota Panjang . Akibatnya, nilainya menunjukkan versi VIDEO_PORT_CONFIG_INFO yang digunakan oleh sistem. Karena struktur ini mungkin tumbuh dari satu versi sistem ke versi berikutnya, driver miniport harus memeriksa anggota ini untuk menentukan apakah setidaknya ukuranof (VIDEO_PORT_CONFIG_INFO) yang digunakan driver miniport untuk mengonfigurasi adaptornya.
SystemIoBusNumber
Menentukan nomor bus I/O yang ditetapkan sistem tempat adaptor driver miniport mungkin terhubung. Driver port video selalu menginisialisasi anggota ini.
AdapterInterfaceType
Menentukan jenis antarmuka bus. Driver port video selalu mengatur anggota ini berdasarkan bus tempat manajer PnP mendeteksi perangkat.
BusInterruptLevel
Anggota ini tidak relevan jika perangkat keras video tidak menghasilkan gangguan, yang ditunjukkan dengan mengatur anggota HwInterrupt dalam struktur VIDEO_HW_INITIALIZATION_DATA ke NULL. Jika tidak, ini menentukan IRQL relatif bus yang sesuai dengan permintaan interupsi pada bus jenis Isa atau MicroChannel . Nilai default prasetel untuk anggota ini adalah nol. Driver miniport harus menyediakan nilai yang benar jika menangani gangguan untuk adaptor video pada bus jenis Isa atau MicroChannel , atau untuk adaptor video yang dikonfigurasi untuk gangguan peka tingkat pada bus jenis Eisa .
Jika fungsi HwVidFindAdapter driver miniport menemukan bahwa adaptor video tidak menghasilkan interupsi atau tidak dapat menentukan vektor/tingkat interupsi yang valid untuk adaptor, HwVidFindAdapter harus mengatur BusInterruptLevel dan BusInterruptVector ke nol.
BusInterruptVector
Anggota ini tidak relevan jika perangkat keras video tidak menghasilkan gangguan, ditunjukkan dengan mengatur anggota HwInterrupt dalam struktur VIDEO_HW_INITIALIZATION_DATA ke NULL. Jika tidak, ia menentukan vektor relatif bus yang digunakan oleh perangkat keras video pada bus I/O yang menggunakan vektor interupsi, seperti bus PCI. Nilai default prasetel untuk anggota ini adalah nol.
Jika fungsi HwVidFindAdapter driver miniport menemukan bahwa adaptor video tidak menghasilkan interupsi atau tidak dapat menentukan vektor/tingkat interupsi yang valid untuk adaptor, HwVidFindAdapter harus mengatur BusInterruptVector dan BusInterruptLevel ke nol.
InterruptMode
Menunjukkan apakah perangkat keras video menggunakan Interupsi Latched atau LevelSensitive . Driver port video menginisialisasi anggota ini jika relevan, tetapi driver miniport dengan ISR harus memeriksa bahwa driver tersebut berisi nilai yang benar dan mengatur ulang jika perlu.
NumEmulatorAccessEntries
Anggota ini dan semua anggota berikutnya melalui HardwareStateSize tidak relevan dengan driver miniport yang tidak menyatakan diri mereka sebagai driver miniport yang kompatibel dengan VGA pada platform sistem operasi berbasis NT x86. Untuk driver miniport yang tidak mendukung adaptor SVGA yang kompatibel dengan VGA pada komputer berbasis x86, anggota ini harus nol. Jika tidak, ini menentukan jumlah elemen jenis EMULATOR_ACCESS_RANGE dalam array berikut.
EmulatorAccessEntries
Arahkan ke array rentang akses emulator yang disiapkan oleh driver miniport yang kompatibel dengan VGA. Setiap rentang akses emulator harus merupakan subset yang tepat dari array jenis VIDEO_ACCESS_RANGE driver miniport. Setiap elemen menentukan berbagai port I/O yang akan dikaitkan oleh emulator V86 dan, mungkin, dipantau oleh fungsi SvgaHwIoPortXxx yang disediakan driver setiap kali aplikasi MS-DOS, menjalankan layar penuh, mencoba menulis langsung ke register adaptor video. Biasanya, array ini menjelaskan semua rentang port I/O dalam array rentang akses yang sesuai. Jika driver miniport menentukan array entri akses emulatornya secara statis di driver itu sendiri, driver port menginisialisasi pointer ini ke array tersebut. Jika NumEmulatorAccessEntries adalah nol, anggota ini adalah NULL.
EmulatorAccessEntriesContext
Menentukan nilai yang diteruskan dengan setiap panggilan ke fungsi SvgaHwIoPortXxx yang dijelaskan dalam array EmulatorAccessEntries . Biasanya, driver miniport yang kompatibel dengan VGA menetapkan nilai anggota ini ke pointer HwDeviceExtension , atau ke offset dalam ekstensi perangkat, sehingga driver miniport dapat mempertahankan status, seperti instruksi yang dikeluarkan aplikasi batch, dalam fungsi SvgaHwIoPortXxx .
VdmPhysicalVideoMemoryAddress
Menentukan alamat logis dasar (dipetakan) dari berbagai memori video yang akan dipetakan ke ruang alamat VDM untuk dukungan x86 BIOS INT10. Untuk driver miniport yang tidak mendukung adaptor yang kompatibel dengan VGA pada komputer berbasis x86, anggota ini harus NULL.
VdmPhysicalVideoMemoryLength
Menentukan ukuran dalam byte rentang yang dipetakan ke ruang alamat VDM untuk dukungan BIOS x86. Untuk driver miniport yang tidak mendukung adaptor yang kompatibel dengan VGA pada komputer berbasis x86, anggota ini harus nol.
HardwareStateSize
Menentukan ukuran minimum dalam byte yang diperlukan untuk menyimpan informasi status perangkat keras sebagai respons terhadap permintaan IOCTL_VIDEO_SAVE_HARDWARE_STATE , yang harus didukung hanya oleh driver miniport yang kompatibel dengan VGA pada komputer berbasis x86. Nilai yang diinisialisasi untuk anggota ini adalah nol. Driver miniport yang kompatibel dengan VGA harus mengatur anggota ini ke jumlah byte yang diperlukan untuk menahan status adaptor yang disimpan.
DmaChannel
Dicadangkan untuk penggunaan sistem.
DmaPort
Dicadangkan untuk penggunaan sistem.
DmaShareable
Dicadangkan untuk penggunaan sistem.
InterruptShareable
Jika perangkat driver miniport mengganggu, anggota ini harus diatur ke nol jika interupsi tidak dapat dibagikan dengan perangkat lain, atau diatur ke perangkat lain jika interupsi dapat dibagikan. Jika tidak, driver miniport dapat mengabaikan anggota ini.
Master
Dicadangkan untuk penggunaan sistem.
DmaWidth
Dicadangkan untuk penggunaan sistem.
DmaSpeed
Dicadangkan untuk penggunaan sistem.
bMapBuffers
Dicadangkan untuk penggunaan sistem.
NeedPhysicalAddresses
Dicadangkan untuk penggunaan sistem.
DemandMode
Dicadangkan untuk penggunaan sistem.
MaximumTransferLength
Dicadangkan untuk penggunaan sistem.
NumberOfPhysicalBreaks
Dicadangkan untuk penggunaan sistem.
ScatterGather
Dicadangkan untuk penggunaan sistem.
MaximumScatterGatherChunkSize
Dicadangkan untuk penggunaan sistem.
VideoPortGetProcAddress
Arahkan ke rutinitas panggilan balik VideoPortGetProcAddress . Anggota ini digunakan untuk menemukan alamat fungsi driver port video yang dapat digunakan driver miniport video tanpa menautkannya secara langsung. Ini memungkinkan biner pengandar untuk berjalan pada versi Windows yang lebih lama. Untuk detailnya, lihat Menggunakan VideoPortGetProcAddress.
DriverRegistryPath
Arahkan ke jalur registri yang berisi layanan perangkat. Driver tampilan dapat menggunakan informasi ini dengan cara apa pun yang dianggap berguna.
SystemMemorySize
Menunjukkan kepada driver jumlah, dalam byte, memori fisik dalam sistem.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | video.h (sertakan Video.h) |