Share via


DXGKDDI_QUERY_DEVICE_DESCRIPTOR función de devolución de llamada (dispmprt.h)

La función DxgkDdiQueryDeviceDescriptor devuelve un descriptor para un dispositivo secundario de un adaptador de pantalla o para un dispositivo externo (normalmente un monitor) conectado a un dispositivo secundario de un adaptador de pantalla.

Sintaxis

DXGKDDI_QUERY_DEVICE_DESCRIPTOR DxgkddiQueryDeviceDescriptor;

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

Parámetros

[in] MiniportDeviceContext

Identificador de un bloque de contexto asociado a un adaptador de pantalla. La función DxgkDdiAddDevice del controlador de minipuerto de pantalla proporcionó anteriormente este identificador al subsistema del kernel de gráficos de DirectX.

[in] ChildUid

Entero que identifica de forma única el dispositivo secundario. La función DxgkDdiQueryChildRelations del controlador de minipuerto de pantalla proporcionó anteriormente este identificador al controlador de puerto de visualización.

[in, out] DeviceDescriptor

Puntero a una estructura DXGK_DEVICE_DESCRIPTOR . El autor de la llamada inicializa los miembros DescriptorLength y DescriptorBuffer . Si el dispositivo secundario tiene un tipo de TypeVideoOutput, el autor de la llamada también inicializa el miembro DescriptorOffset . A cambio, el búfer asignado por el llamador al que apunta el miembro DescriptorBuffer recibe el descriptor.

Valor devuelto

DxgkDdiQueryDeviceDescriptor devuelve uno de los siguientes valores:

Código devuelto Descripción
STATUS_SUCCESS La función devolvió correctamente el descriptor del dispositivo.
STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED El dispositivo secundario (incorporado) identificado por ChildUid no admite un descriptor.
STATUS_MONITOR_NO_DESCRIPTOR El dispositivo secundario identificado por ChildUid está conectado a un monitor que no admite un descriptor EDID.
STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA El dispositivo secundario identificado por ChildUid está conectado a un monitor que admite un descriptor EDID, pero el descriptor no tiene el bloque de extensión EDID especificado por los miembros DescriptorOffset y DescriptorLength de DeviceDescriptor.

Comentarios

DxgkDdiQueryDeviceDescriptor nunca debe escribir más que el número de bytes especificado por DeviceDescriptor-DescriptorLength>.

Si el dispositivo secundario identificado por ChildUid tiene un tipo type de TypeVideoOutput, DxgkDdiQueryDeviceDescriptor devuelve una parte de los datos de identificación de pantalla extendida (EDID) del monitor conectado a la salida. DeviceDescriptor-DescriptorOffset> especifica el desplazamiento de bytes en el EDID del inicio de los datos que se van a devolver.

Si el dispositivo secundario identificado por ChildUid no es una salida de vídeo, DxgkDdiQueryDeviceDescriptor devuelve un descriptor de dispositivo genérico; es decir, rellena los miembros de una estructura de DXGK_GENERIC_DESCRIPTOR .

La función DxgkDdiQueryDeviceDescriptor se puede llamar varias veces para un dispositivo secundario. Para un dispositivo secundario que tiene un monitor conectado, el controlador de puerto de visualización llama a DxgkDdiQueryDeviceDescriptor durante la inicialización para obtener el primer bloque de 128 bytes de EDID de un monitor. Más adelante, el controlador de función de clase de supervisión (Monitor.sys) llama a DxgkDdiQueryDeviceDescriptor para obtener partes seleccionadas (incluido el primer bloque de 128 bytes) del EDID del mismo monitor.

DxgkDdiQueryDeviceDescriptor debe ser paginable.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Escritorio
Encabezado dispmprt.h
IRQL PASSIVE_LEVEL

Consulte también

DXGK_CHILD_DESCRIPTOR

DXGK_DEVICE_DESCRIPTOR

DxgkDdiQueryChildRelations

DxgkDdiQueryChildStatus