PDRIVER_IO_PORT_USHORT_STRING fungsi panggilan balik (video.h)
SvgaHwIoPortUshortString menjebak rentang port I/O tempat aplikasi MS-DOS layar penuh dalam mesin berbasis x86 mengirim urutan data berukuran USHORT.
Sintaks
PDRIVER_IO_PORT_USHORT_STRING PdriverIoPortUshortString;
VP_STATUS PdriverIoPortUshortString(
ULONG_PTR Context,
ULONG Port,
UCHAR AccessMode,
PUSHORT Data,
ULONG DataLength
)
{...}
Parameter
Context
Menentukan nilai konteks miniport yang ditentukan driver yang ditetapkan di EmulatorAccessEntriesContext dari VIDEO_PORT_CONFIG_INFO.
Port
Menentukan port I/O yang dipetakan untuk dijebak.
AccessMode
Menentukan jenis akses yang diizinkan, yang bisa berupa satu atau kombinasi (ORed) dari nilai berikut:
- EMULATOR_READ_ACCESS
- EMULATOR_WRITE_ACCESS
Data
Penunjuk ke string nilai data USHORT yang akan ditransfer. String ini diakses satu nilai pada satu waktu sampai semua nilai telah dikaitkan.
DataLength
Menentukan jumlah nilai USHORT dalam string.
Nilai kembali
SvgaHwIoPortUshortString mengembalikan status akhir operasi.
Keterangan
Hanya driver miniport adaptor SVGA yang kompatibel dengan VGA yang memiliki fungsi SvgaHwIoPortXxx . (Lihat Fungsi SVGA.)
SvgaHwIoPortUshortString mencegat akses rentang apa pun yang dicoba oleh aplikasi MS-DOS layar penuh yang mengeluarkan salah satu atau kedua instruksi REP OUTSW DX, ESI dan REP INSW EDI, DX.
Jika driver miniport mengaktifkan rentang Port untuk akses langsung dengan memanggil VideoSetTrappedEmulatorPorts, fungsi SvgaHwIoPortUshortString-nya tidak akan dipanggil. Aplikasi seperti itu kemudian akan memiliki akses langsung ke rentang port I/O, kecuali driver miniport menonaktifkan rentang Port dengan panggilan lain ke VideoSetTrappedEmulatorPorts.
Jika satu atau beberapa instruksi INSW atau OUTSW x86 yang dikeluarkan aplikasi dapat memengaruhi status register pengurut adaptor yang kompatibel dengan VGA, daftar output lain-lain, atau register khusus adaptor apa pun dan, sehingga menyebabkan mesin macet, driver miniport tidak boleh mengaktifkan port untuk akses langsung dengan memanggil VideoPortSetTrappedEmulatorPorts.
SvgaHwIoPortUshortString harus buffer instruksi berikutnya dari aplikasi dan memeriksa bahwa tidak ada yang dapat menggantung komputer. Jika aplikasi mengeluarkan urutan instruksi yang mungkin menggantung komputer, SvgaHwIoPortUshortString harus membuang instruksi yang di-buffer. Jika tidak, itu harus mengeluarkannya, USHORT pada satu waktu, ke port I/O yang ditentukan dan dipetakan.
SvgaHwIoPortUshortString harus dibuat dapat di-pageable.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | video.h (sertakan Video.h) |