DXGKDDI_QUERY_DEVICE_DESCRIPTOR funzione di callback (dispmprt.h)
La funzione DxgkDdiQueryDeviceDescriptor restituisce un descrittore per un dispositivo figlio di una scheda di visualizzazione o per un dispositivo esterno (in genere un monitor) connesso a un dispositivo figlio di una scheda di visualizzazione.
Sintassi
DXGKDDI_QUERY_DEVICE_DESCRIPTOR DxgkddiQueryDeviceDescriptor;
NTSTATUS DxgkddiQueryDeviceDescriptor(
[in] IN_CONST_PVOID MiniportDeviceContext,
[in] IN_ULONG ChildUid,
[in, out] INOUT_PDXGK_DEVICE_DESCRIPTOR DeviceDescriptor
)
{...}
Parametri
[in] MiniportDeviceContext
Handle a un blocco di contesto associato a una scheda di visualizzazione. La funzione DxgkDdiAddDevice del driver di visualizzazione ha fornito in precedenza questo handle al sottosistema del kernel della grafica DirectX.
[in] ChildUid
Intero che identifica in modo univoco il dispositivo figlio. La funzione DxgkDdiQueryChildRelations del driver dxgkDdiQueryRelations visualizzato in precedenza ha fornito questo identificatore al driver della porta di visualizzazione.
[in, out] DeviceDescriptor
Puntatore a una struttura DXGK_DEVICE_DESCRIPTOR . Il chiamante inizializza i membri DescriptorLength e DescriptorBuffer . Se il dispositivo figlio ha un tipo di TypeVideoOutput, il chiamante inizializza anche il membro DescriptorOffset . Al ritorno, il buffer allocato dal chiamante puntato dal membro DescriptorBuffer riceve il descrittore .
Valore restituito
DxgkDdiQueryDeviceDescriptor restituisce uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
STATUS_SUCCESS | La funzione ha restituito correttamente il descrittore del dispositivo. |
STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED | Il dispositivo figlio (onboard) identificato da ChildUid non supporta un descrittore. |
STATUS_MONITOR_NO_DESCRIPTOR | Il dispositivo figlio identificato da ChildUid è connesso a un monitor che non supporta un descrittore EDID. |
STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA | Il dispositivo figlio identificato da ChildUid è connesso a un monitor che supporta un descrittore EDID, ma il descrittore non ha il blocco di estensione EDID specificato dal descrittoreOffset e DescriptorLengthmembers di DeviceDescriptor. |
Commenti
DxgkDdiQueryDeviceDescriptor non deve mai scrivere più del numero di byte specificati da DeviceDescriptor-DescriptorLength>.
Se il dispositivo figlio identificato da ChildUid ha un tipo di TypeVideoOutput, DxgkDdiQueryDeviceDescriptor restituisce una parte dei dati di identificazione schermo estesi (EDID) per il monitoraggio connesso all'output. DeviceDescriptor-DescriptorOffset> specifica l'offset di byte nell'EDID dell'inizio dei dati da restituire.
Se il dispositivo figlio identificato da ChildUid non è un output video, DxgkDdiQueryDeviceDescriptor restituisce un descrittore di dispositivo generico; ovvero, riempie i membri di una struttura DXGK_GENERIC_DESCRIPTOR .
La funzione DxgkDdiQueryDeviceDescriptor può essere chiamata più volte per un dispositivo figlio. Per un dispositivo figlio con un monitor connesso, il driver della porta di visualizzazione chiama DxgkDdiQueryDeviceDescriptor durante l'inizializzazione per ottenere il primo blocco di 128 byte dell'EDID di un monitor. Successivamente il driver della funzione di classe di monitoraggio (Monitor.sys) chiama DxgkDdiQueryDeviceDescriptor per ottenere parti selezionate (incluso il primo blocco di 128 byte) di tale EDID dello stesso monitor.
DxgkDdiQueryDeviceDescriptor deve essere reso paginabile.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista |
Piattaforma di destinazione | Desktop |
Intestazione | dispmprt.h |
IRQL | PASSIVE_LEVEL |