Bagikan melalui


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)

Lihat juga

VideoPortGetAccessRanges

VideoPortGetBusData

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortVerifyAccessRanges