DXGKDDI_QUERY_DEVICE_DESCRIPTOR Rückruffunktion (dispmprt.h)

Die DxgkDdiQueryDeviceDescriptor-Funktion gibt einen Deskriptor für ein untergeordnetes Gerät eines Grafikkartes oder für ein externes Gerät (in der Regel einen Monitor) zurück, das mit einem untergeordneten Gerät einer Grafikkarte verbunden ist.

Syntax

DXGKDDI_QUERY_DEVICE_DESCRIPTOR DxgkddiQueryDeviceDescriptor;

NTSTATUS DxgkddiQueryDeviceDescriptor(
  [in]      IN_CONST_PVOID MiniportDeviceContext,
  [in]      IN_ULONG ChildUid,
  [in, out] INOUT_PDXGK_DEVICE_DESCRIPTOR DeviceDescriptor
)
{...}

Parameter

[in] MiniportDeviceContext

Ein Handle für einen Kontextblock, der einer Grafikkarte zugeordnet ist. Die DxgkDdiAddDevice-Funktion des Display-Miniporttreibers hat dieses Handle zuvor für das DirectX-Grafikkernsubsystem bereitgestellt.

[in] ChildUid

Eine ganze Zahl, die das untergeordnete Gerät eindeutig identifiziert. Die DxgkDdiQueryChildRelations-Funktion des Anzeigeminiporttreibers hat diesen Bezeichner zuvor für den Anzeigeporttreiber bereitgestellt.

[in, out] DeviceDescriptor

Ein Zeiger auf eine DXGK_DEVICE_DESCRIPTOR-Struktur . Der Aufrufer initialisiert die Member DescriptorLength und DescriptorBuffer . Wenn das untergeordnete Gerät über den Typ TypeVideoOutput verfügt, initialisiert der Aufrufer auch das DescriptorOffset-Element . Bei der Rückgabe empfängt der vom Aufrufer zugeordnete Puffer, auf den der DescriptorBuffer-Member verweist, den Deskriptor.

Rückgabewert

DxgkDdiQueryDeviceDescriptor gibt einen der folgenden Werte zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS Die Funktion hat den Gerätedeskriptor erfolgreich zurückgegeben.
STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED Das (integrierte) untergeordnete Gerät, das von ChildUid identifiziert wird, unterstützt keinen Deskriptor.
STATUS_MONITOR_NO_DESCRIPTOR Das von ChildUid identifizierte untergeordnete Gerät ist mit einem Monitor verbunden, der keinen EDID-Deskriptor unterstützt.
STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA Das von ChildUid identifizierte untergeordnete Gerät ist mit einem Monitor verbunden, der einen EDID-Deskriptor unterstützt, aber der Deskriptor verfügt nicht über den EDID-Erweiterungsblock, der von DescriptorOffset und DescriptorLengthmembers von DeviceDescriptor angegeben wird.

Hinweise

DxgkDdiQueryDeviceDescriptor darf niemals mehr als die Anzahl von Bytes schreiben, die von DeviceDescriptor-DescriptorLength > angegeben werden.

Wenn das von ChildUid identifizierte untergeordnete Gerät über den Typ TypeVideoOutput verfügt, gibt DxgkDdiQueryDeviceDescriptor einen Teil der EDID (Extended Display Identification Data) für den monitor zurück, der mit der Ausgabe verbunden ist. DeviceDescriptor-DescriptorOffset> gibt den Byteoffset in die EDID des Starts der zurückzugebenden Daten an.

Wenn das von ChildUid identifizierte untergeordnete Gerät keine Videoausgabe ist, gibt DxgkDdiQueryDeviceDescriptor einen generischen Gerätedeskriptor zurück. Das heißt, es füllt die Member einer DXGK_GENERIC_DESCRIPTOR-Struktur aus.

Die DxgkDdiQueryDeviceDescriptor-Funktion kann für ein untergeordnetes Gerät mehrmals aufgerufen werden. Für ein untergeordnetes Gerät, das über einen verbundenen Monitor verfügt, ruft der Anzeigeporttreiber während der Initialisierung DxgkDdiQueryDeviceDescriptor auf, um den ersten 128-Byte-Block der EDID eines Monitors abzurufen. Später ruft der Monitor class function driver (Monitor.sys) DxgkDdiQueryDeviceDescriptor auf, um ausgewählte Teile (einschließlich des ersten 128-Byte-Blocks) der EDID desselben Monitors abzurufen.

DxgkDdiQueryDeviceDescriptor sollte als ausgelagert werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Zielplattform Desktop
Kopfzeile dispmprt.h
IRQL PASSIVE_LEVEL

Weitere Informationen

DXGK_CHILD_DESCRIPTOR

DXGK_DEVICE_DESCRIPTOR

DxgkDdiQueryChildRelations

DxgkDdiQueryChildStatus