DXGKDDI_QUERY_DEVICE_DESCRIPTOR fonction de rappel (dispmprt.h)
La fonction DxgkDdiQueryDeviceDescriptor retourne un descripteur pour un appareil enfant d’une carte d’affichage ou pour un appareil externe (généralement un moniteur) connecté à un appareil enfant d’une carte d’affichage.
Syntaxe
DXGKDDI_QUERY_DEVICE_DESCRIPTOR DxgkddiQueryDeviceDescriptor;
NTSTATUS DxgkddiQueryDeviceDescriptor(
[in] IN_CONST_PVOID MiniportDeviceContext,
[in] IN_ULONG ChildUid,
[in, out] INOUT_PDXGK_DEVICE_DESCRIPTOR DeviceDescriptor
)
{...}
Paramètres
[in] MiniportDeviceContext
Handle d’un bloc de contexte associé à une carte d’affichage. La fonction DxgkDdiAddDevice du pilote miniport d’affichage fournissait précédemment cette poignée au sous-système du noyau graphique DirectX.
[in] ChildUid
Entier qui identifie de manière unique l’appareil enfant. La fonction DxgkDdiQueryChildRelations du pilote miniport d’affichage a précédemment fourni cet identificateur au pilote de port d’affichage.
[in, out] DeviceDescriptor
Pointeur vers une structure DXGK_DEVICE_DESCRIPTOR . L’appelant initialise les membres DescriptorLength et DescriptorBuffer . Si l’appareil enfant a un type TypeVideoOutput, l’appelant initialise également le membre DescriptorOffset . Au retour, la mémoire tampon allouée à l’appelant pointée par le membre DescriptorBuffer reçoit le descripteur.
Valeur retournée
DxgkDdiQueryDeviceDescriptor retourne l’une des valeurs suivantes :
Code de retour | Description |
---|---|
STATUS_SUCCESS | La fonction a correctement retourné le descripteur d’appareil. |
STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED | L’appareil enfant (intégré) identifié par ChildUid ne prend pas en charge de descripteur. |
STATUS_MONITOR_NO_DESCRIPTOR | L’appareil enfant identifié par ChildUid est connecté à un moniteur qui ne prend pas en charge un descripteur EDID. |
STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA | L’appareil enfant identifié par ChildUid est connecté à un moniteur qui prend en charge un descripteur EDID, mais le descripteur n’a pas le bloc d’extension EDID spécifié par les membres DescriptorOffset et DescriptorLengthmembers de DeviceDescriptor. |
Remarques
DxgkDdiQueryDeviceDescriptor ne doit jamais écrire plus que le nombre d’octets spécifié par DeviceDescriptor-DescriptorLength.>
Si l’appareil enfant identifié par ChildUid a un type TypeVideoOutput, DxgkDdiQueryDeviceDescriptor retourne une partie des données EDID (Extended Display Identification Data) pour le moniteur connecté à la sortie. DeviceDescriptor-DescriptorOffset> spécifie le décalage d’octet dans l’EDID du début des données à retourner.
Si l’appareil enfant identifié par ChildUid n’est pas une sortie vidéo, DxgkDdiQueryDeviceDescriptor retourne un descripteur d’appareil générique ; autrement dit, il remplit les membres d’une structure de DXGK_GENERIC_DESCRIPTOR .
La fonction DxgkDdiQueryDeviceDescriptor peut être appelée plusieurs fois pour un appareil enfant. Pour un appareil enfant disposant d’un moniteur connecté, le pilote de port d’affichage appelle DxgkDdiQueryDeviceDescriptor lors de l’initialisation pour obtenir le premier bloc de 128 octets de l’EDID d’un moniteur. Plus tard, le pilote de fonction de classe monitor (Monitor.sys) appelle DxgkDdiQueryDeviceDescriptor pour obtenir les parties sélectionnées (y compris le premier bloc de 128 octets) de l’EDID de ce même moniteur.
DxgkDdiQueryDeviceDescriptor doit être rendu paginable.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | dispmprt.h |
IRQL | PASSIVE_LEVEL |