PMINIPORT_QUERY_DEVICE_ROUTINE fungsi panggilan balik (video.h)
HwVidQueryDeviceCallback menggunakan data konfigurasi yang ditentukan untuk mengonfigurasi adaptornya, dan, mungkin, untuk mengisi informasi konfigurasi yang hilang dalam struktur VIDEO_PORT_CONFIG_INFO .
Sintaks
PMINIPORT_QUERY_DEVICE_ROUTINE PminiportQueryDeviceRoutine;
VP_STATUS PminiportQueryDeviceRoutine(
PVOID HwDeviceExtension,
PVOID Context,
VIDEO_DEVICE_DATA_TYPE DeviceDataType,
PVOID Identifier,
ULONG IdentiferLength,
PVOID ConfigurationData,
ULONG ConfigurationDataLength,
PVOID ComponentInformation,
ULONG ComponentInformationLength
)
{...}
Parameter
HwDeviceExtension
Arahkan ke area penyimpanan per adaptor driver miniport. Untuk informasi selengkapnya, lihat Ekstensi Perangkat.
Context
Arahkan ke nilai konteks yang disiapkan oleh HwVidFindAdapter. Biasanya, menunjuk ke buffer VIDEO_PORT_CONFIG_INFO atau ke offset dalam buffer tersebut.
DeviceDataType
Menentukan jenis informasi konfigurasi yang diminta, yang merupakan salah satu dari berikut ini:
VpBusData
VpCmosData
VpControllerData
VpMachineData
VpMonitorData
Driver miniport adaptor video jenis x86 biasanya menentukan VpBusData, terutama untuk adaptor pada bus EISA. Nilai VpControllerData dan VpMonitorData hanya memiliki arti pada platform yang mematuhi ARC. Nilai VpCmosData dan VpMachineData jarang digunakan.
Identifier
Arahkan ke nama perangkat sebagaimana ditentukan oleh firmware ARC. Parameter ini harus digunakan hanya pada platform yang mematuhi ARC. Jika tidak, pointer ini harus NULL.
IdentiferLength
Menentukan ukuran dalam byte dari string Pengidentifikasi yang di-buffer. Nilainya harus nol jika komputer tidak sesuai dengan ARC.
ConfigurationData
Arahkan ke data konfigurasi perangkat keras. Format data ini ditentukan oleh DeviceDataType yang ditentukan dan oleh nilai AdapterInterfaceType dalam VIDEO_PORT_CONFIG_INFO.
ConfigurationDataLength
Menentukan ukuran dalam byte buffer ConfigurationData . Akibatnya, ini menunjukkan berapa banyak informasi yang dikumpulkan dari registri dan disimpan dalam buffer ConfigurationData yang dialokasikan oleh VideoPortGetDeviceBase.
ComponentInformation
Dicadangkan untuk penggunaan sistem.
ComponentInformationLength
Dicadangkan untuk penggunaan sistem.
Nilai kembali
HwVidQueryDeviceCallback mengembalikan status operasi.
Keterangan
HwVidQueryDeviceCallback diteruskan dalam panggilan ke VideoPortGetDeviceData dari fungsi HwVidFindAdapter driver miniport. VideoPortGetDeviceData memanggil HwVidQueryDeviceCallback setelah mengumpulkan informasi konfigurasi yang tersedia di bawah node \Registry\Machine\Hardware\Description dari registri.
HwVidQueryDeviceCallback memeriksa ConfigurationData, yang dikumpulkan dari registri oleh VideoPortGetDeviceData. Ini menggunakan informasi ini untuk mengonfigurasi adaptornya, dan, mungkin, untuk mengisi informasi konfigurasi yang hilang dalam struktur VIDEO_PORT_CONFIG_INFO .
HwVidQueryDeviceCallback tidak dapat meneruskan nilai rentang akses yang ditemukan di ConfigurationData ke VideoPortReadXxx atau VideoPortWriteXxx secara langsung; alamat tersebut terlebih dahulu harus dipetakan dengan memanggil VideoPortGetDeviceBase.
Jika buffer ConfigurationData tidak memiliki informasi rentang akses dan fungsi HwVidFindAdapter driver miniport belum disebut VideoPortGetBusData (atau VideoPortGetAccessRanges), fungsi HwVidQueryDeviceCallback-nya dapat memanggil VideoPortGetBusData. Informasi rentang akses yang dikembalikan oleh VideoPortGetBusData juga harus diteruskan ke VideoPortVerifyAccessRanges.
Jika VideoPortVerifyAccessRanges mengembalikan NO_ERROR, driver miniport dapat memanggil VideoPortGetDeviceBase untuk mendapatkan alamat logis yang dipetakan yang dapat digunakan untuk berkomunikasi dengan adaptor dengan memanggil fungsi VideoPortReadXxx dan/atau VideoPortWriteXxx .
Jika tidak bisa mendapatkan nilai rentang akses relatif bus dengan memanggil VideoPortGetDeviceData, VideoPortGetBusData, atau VideoPortGetAccessRanges, driver miniport dapat menggunakan sekumpulan nilai rentang akses default yang disediakan driver untuk menemukan adaptornya. Dalam keadaan ini, driver miniport harus memanggil VideoPortVerifyAccessRanges dengan rentang akses yang disediakan driver miniport, dan, kemudian memanggil VideoPortGetDeviceBase hanya jika VideoPortVerifyAccessRanges kembali NO_ERROR. Jika panggilan ke VideoPortVerifyAccessRanges tidak berhasil, rentang relatif bus tertentu sudah digunakan oleh driver perangkat lain.
HwVidQueryDeviceCallback harus dibuat dapat di-pageable.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | video.h (sertakan Video.h) |