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) |