DXGKDDI_QUERY_DEVICE_DESCRIPTOR função de retorno de chamada (dispmprt.h)
A função DxgkDdiQueryDeviceDescriptor retorna um descritor para um dispositivo filho de um adaptador de vídeo ou para um dispositivo externo (normalmente um monitor) conectado a um dispositivo filho de um adaptador de vídeo.
Sintaxe
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
Um identificador para um bloco de contexto associado a um adaptador de exibição. A função DxgkDdiAddDevice do driver de miniporta de exibição forneceu anteriormente esse identificador para o subsistema de kernel de elementos gráficos DirectX.
[in] ChildUid
Um inteiro que identifica exclusivamente o dispositivo filho. A função DxgkDdiQueryChildRelations do driver de miniporta de exibição forneceu anteriormente esse identificador para o driver de porta de exibição.
[in, out] DeviceDescriptor
Um ponteiro para uma estrutura DXGK_DEVICE_DESCRIPTOR . O chamador inicializa os membros DescriptorLength e DescriptorBuffer . Se o dispositivo filho tiver um tipo de TypeVideoOutput, o chamador também inicializará o membro DescriptorOffset . No retorno, o buffer alocado pelo chamador apontado pelo membro DescriptorBuffer recebe o descritor.
Retornar valor
DxgkDdiQueryDeviceDescriptor retorna um dos seguintes valores:
Código de retorno | Descrição |
---|---|
STATUS_SUCCESS | A função retornou com êxito o descritor do dispositivo. |
STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED | O dispositivo filho (integrado) identificado por ChildUid não dá suporte a um descritor. |
STATUS_MONITOR_NO_DESCRIPTOR | O dispositivo filho identificado por ChildUid está conectado a um monitor que não dá suporte a um descritor EDID. |
STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA | O dispositivo filho identificado por ChildUid está conectado a um monitor que dá suporte a um descritor EDID, mas o descritor não tem o bloco de extensão EDID especificado pelos descritoresOffset e DescriptorLengthmembers de DeviceDescriptor. |
Comentários
DxgkDdiQueryDeviceDescriptor nunca deve gravar mais do que o número de bytes especificado por DeviceDescriptor-DescriptorLength.>
Se o dispositivo filho identificado por ChildUid tiver um tipo de TypeVideoOutput, DxgkDdiQueryDeviceDescriptor retornará uma parte dos DADOS de Identificação de Exibição Estendida (EDID) para o monitor conectado à saída. DeviceDescriptor-DescriptorOffset> especifica o deslocamento de bytes no EDID do início dos dados a serem retornados.
Se o dispositivo filho identificado por ChildUid não for uma saída de vídeo, DxgkDdiQueryDeviceDescriptor retornará um descritor de dispositivo genérico; ou seja, preenche os membros de uma estrutura DXGK_GENERIC_DESCRIPTOR .
A função DxgkDdiQueryDeviceDescriptor pode ser chamada várias vezes para um dispositivo filho. Para um dispositivo filho que tem um monitor conectado, o driver de porta de exibição chama DxgkDdiQueryDeviceDescriptor durante a inicialização para obter o primeiro bloco de 128 bytes do EDID de um monitor. Posteriormente, o driver de função de classe do monitor (Monitor.sys) chama DxgkDdiQueryDeviceDescriptor para obter partes selecionadas (incluindo o primeiro bloco de 128 bytes) do EDID do mesmo monitor.
DxgkDdiQueryDeviceDescriptor deve ser tornado paginável.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | dispmprt.h |
IRQL | PASSIVE_LEVEL |