Partager via


PMINIPORT_QUERY_DEVICE_ROUTINE fonction de rappel (video.h)

HwVidQueryDeviceCallback utilise les données de configuration spécifiées pour configurer son adaptateur et, éventuellement, pour renseigner les informations de configuration manquantes dans la structure VIDEO_PORT_CONFIG_INFO .

Syntaxe

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
)
{...}

Paramètres

HwDeviceExtension

Pointeur vers la zone de stockage par adaptateur du pilote miniport. Pour plus d’informations, consultez Extensions d’appareil.

Context

Pointeur vers la valeur de contexte configurée par HwVidFindAdapter. En règle générale, elle pointe vers la mémoire tampon VIDEO_PORT_CONFIG_INFO ou vers un décalage dans cette mémoire tampon.

DeviceDataType

Spécifie le type d’informations de configuration qui ont été demandées, qui est l’une des suivantes :

VpBusData

VpCmosData

VpControllerData

VpMachineData

VpMonitorData

Les pilotes miniport des adaptateurs vidéo de type x86 spécifient généralement VpBusData, en particulier pour les adaptateurs sur les bus EISA. Les valeurs VpControllerData et VpMonitorData ont une signification uniquement sur les plateformes conformes à ARC. Les valeurs VpCmosData et VpMachineData sont rarement utilisées.

Identifier

Pointeur vers le nom de l’appareil, tel que déterminé par le microprogramme ARC. Ce paramètre doit être utilisé uniquement sur les plateformes conformes à ARC. Sinon, ce pointeur doit être NULL.

IdentiferLength

Spécifie la taille en octets de la chaîne d’identificateur mise en mémoire tampon. La valeur doit être égale à zéro si la machine n’est pas conforme à ARC.

ConfigurationData

Pointeur vers les données de configuration matérielle. Le format de ces données est déterminé par le DeviceDataType spécifié et par la valeur AdapterInterfaceType dans le VIDEO_PORT_CONFIG_INFO.

ConfigurationDataLength

Spécifie la taille en octets de la mémoire tampon ConfigurationData . En effet, cela indique la quantité d’informations collectées à partir du Registre et stockées dans la mémoire tampon ConfigurationData allouée par VideoPortGetDeviceBase.

ComponentInformation

Réservé pour le système.

ComponentInformationLength

Réservé pour le système.

Valeur retournée

HwVidQueryDeviceCallback retourne la status de l’opération.

Remarques

HwVidQueryDeviceCallback est passé dans un appel à VideoPortGetDeviceData à partir de la fonction HwVidFindAdapter du pilote miniport. VideoPortGetDeviceData appelle HwVidQueryDeviceCallback après avoir collecté les informations de configuration disponibles sous le nœud \Registry\Machine\Hardware\Description du registre.

HwVidQueryDeviceCallback examine la ConfigurationData, collectée à partir du registre par VideoPortGetDeviceData. Il utilise ces informations pour configurer son adaptateur et, éventuellement, pour renseigner les informations de configuration manquantes dans la structure VIDEO_PORT_CONFIG_INFO .

HwVidQueryDeviceCallback ne peut pas transmettre directement les valeurs de plage d’accès trouvées dans ConfigurationData à n’importe quel VideoPortReadXxx ou VideoPortWriteXxx ; ces adresses doivent d’abord être mappées en appelant VideoPortGetDeviceBase.

Si la mémoire tampon ConfigurationData n’a pas d’informations de plage d’accès et que la fonction HwVidFindAdapter du pilote miniport n’a pas déjà appelé VideoPortGetBusData (ou VideoPortGetAccessRanges), sa fonction HwVidQueryDeviceCallback peut appeler VideoPortGetBusData. Les informations de plage d’accès retournées par VideoPortGetBusData doivent également être passées à VideoPortVerifyAccessRanges.

Si VideoPortVerifyAccessRanges retourne NO_ERROR, le pilote miniport peut appeler VideoPortGetDeviceBase pour obtenir des adresses logiques mappées qu’il peut utiliser pour communiquer avec l’adaptateur en appelant les fonctions VideoPortReadXxx et/ou VideoPortWriteXxx .

S’il ne peut pas obtenir les valeurs des plages d’accès relatives au bus en appelant VideoPortGetDeviceData, VideoPortGetBusData ou VideoPortGetAccessRanges, un pilote miniport peut utiliser un ensemble de valeurs de plage d’accès par défaut fournies par le pilote pour rechercher son adaptateur. Dans ces circonstances, le pilote miniport doit appeler VideoPortVerifyAccessRanges avec les plages d’accès fournies par le pilote miniport, puis appeler VideoPortGetDeviceBase uniquement si VideoPortVerifyAccessRanges a retourné NO_ERROR. Si un appel à VideoPortVerifyAccessRanges échoue, une plage relative de bus donnée est déjà utilisée par le pilote d’un autre appareil.

HwVidQueryDeviceCallback doit être rendu paginable.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête video.h (incluez Video.h)

Voir aussi

VideoPortGetAccessRanges

VideoPortGetBusData

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortVerifyAccessRanges