Partilhar via


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 exibição ou para um dispositivo externo (normalmente um monitor) conectado a um dispositivo filho de um adaptador de exibição.

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 miniporto de exibição anteriormente forneceu 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 miniporto 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.

Valor de retorno

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 pelo ChildUid não dá suporte a um descritor.
STATUS_MONITOR_NO_DESCRIPTOR O dispositivo filho identificado pelo 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 pelo 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 pelo DescriptorOffset e DescriptorLengthmembers do DeviceDescriptor.

Observações

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 para o 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 da classe monitor (Monitor.sys) chama DxgkDdiQueryDeviceDescriptor para obter partes selecionadas (incluindo o primeiro bloco de 128 bytes) do EDID do mesmo monitor.

DxgkDdiQueryDeviceDescriptor deve ser tornada paginável.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Vista
da Plataforma de Destino Área de trabalho
cabeçalho dispmprt.h
IRQL PASSIVE_LEVEL

Consulte também

DXGK_CHILD_DESCRIPTOR

DXGK_DEVICE_DESCRIPTOR

DxgkDdiQueryChildRelations

DxgkDdiQueryChildStatus