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 per un blocco di contesto associato a una scheda di visualizzazione. La funzione DxgkDdiAddDevice del driver miniport di visualizzazione ha fornito in precedenza questo handle al sottosistema del kernel grafico DirectX.

[in] ChildUid

Intero che identifica in modo univoco il dispositivo figlio. Il driver miniport di visualizzazione DxgkDdiQueryChildRelations funzione precedentemente 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. In caso di restituzione, il buffer allocato dal chiamante a cui punta il DescrittoreBuffer membro 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 (onboarding) 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 dispone del blocco di estensione EDID specificato dal descrittoreOffset e DescriptorLengthmembers di DeviceDescriptor.

Osservazioni

DxgkDdiQueryDeviceDescriptor non deve mai scrivere più del numero di byte specificato da DeviceDescriptor ->DescriptorLength.

Se il dispositivo figlio identificato da ChildUid ha un tipo di TypeVideoOutput, DxgkDdiQueryDeviceDescriptor restituisce una parte dei dati EDID (Extended Display Identification Data) per il monitor connesso all'output. DeviceDescriptor->DescriptorOffset specifica l'offset dei 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 a 128 byte dell'EDID di un monitor. Successivamente, il driver della funzione di classe monitor (Monitor.sys) chiama DxgkDdiQueryDeviceDescriptor per ottenere parti selezionate (incluso il primo blocco a 128 byte) dell'EDID dello stesso monitor.

dxgkDdiQueryDeviceDescriptor deve essere reso pageable.

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista
piattaforma di destinazione Desktop
intestazione dispmprt.h
IRQL PASSIVE_LEVEL

Vedere anche

DXGK_CHILD_DESCRIPTOR

DXGK_DEVICE_DESCRIPTOR

DxgkDdiQueryChildRelations

DxgkDdiQueryChildStatus