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’un adaptateur 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 vers un bloc de contexte associé à un adaptateur d’affichage. La fonction d’affichage du pilote miniport DxgkDdiAddDevice précédemment fourni ce handle au sous-système du noyau graphique DirectX.
[in] ChildUid
Entier qui identifie de façon unique l’appareil enfant. Le du pilote miniport d’affichage DxgkDdiQueryChildRelations fonction 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 de TypeVideoOutput, l’appelant initialise également le membre DescriptorOffset. Lors du retour, la mémoire tampon allouée par l’appelant pointé par l'DescriptorBuffer membre reçoit le descripteur.
Valeur de retour
DxgkDdiQueryDeviceDescriptor retourne l’une des valeurs suivantes :
code de retour | Description |
---|---|
STATUS_SUCCESS | La fonction a correctement retourné le descripteur de l’appareil. |
STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED | L’appareil enfant (intégré) identifié par ChildUid ne prend pas en charge un 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 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 de 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 à renvoyer.
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 DXGK_GENERIC_DESCRIPTOR.
La fonction DxgkDdiQueryDeviceDescriptor peut être appelée plusieurs fois pour un appareil enfant. Pour un appareil enfant doté d’un moniteur connecté, le pilote de port d’affichage appelle DxgkDdiQueryDeviceDescriptor lors de l’initialisation pour obtenir le premier bloc de 128 octets d’un moniteur EDID. Plus tard, le pilote de fonction de classe monitor (Monitor.sys) appelle DxgkDdiQueryDeviceDescriptor pour obtenir des parties sélectionnées (y compris le premier bloc de 128 octets) de ce même moniteur EDID.
DxgkDdiQueryDeviceDescriptor doit être rendu paginable.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Vista |
plateforme cible | Bureau |
d’en-tête | dispmprt.h |
IRQL | PASSIVE_LEVEL |