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 | Windows Vista |
Plataforma de destino | Escritorio |
Encabezado | dispmprt.h |
IRQL | PASSIVE_LEVEL |