Condividi tramite


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

Vedi anche

DXGK_CHILD_DESCRIPTOR

DXGK_DEVICE_DESCRIPTOR

DxgkDdiQueryChildRelations

DxgkDdiQueryChildStatus