Bagikan melalui


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)

Lihat juga

HwVidFindAdapter

IOCTL_VIDEO_SAVE_HARDWARE_STATE

VIDEO_ACCESS_RANGE

VIDEO_HW_INITIALIZATION_DATA

VideoPortGetAccessRanges

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortGetProcAddress

VideoPortVerifyAccessRanges