Compartilhar 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 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

Confira também

DXGK_CHILD_DESCRIPTOR

DXGK_DEVICE_DESCRIPTOR

DxgkDdiQueryChildRelations

DxgkDdiQueryChildStatus