Compartilhar via


DXGKDDI_ADD_DEVICE função de retorno de chamada (dispmprt.h)

A função DxgkDdiAddDevice cria um bloco de contexto para um adaptador de exibição e retorna um identificador que representa o adaptador de exibição.

Sintaxe

DXGKDDI_ADD_DEVICE DxgkddiAddDevice;

NTSTATUS DxgkddiAddDevice(
  [in]  IN_CONST_PDEVICE_OBJECT PhysicalDeviceObject,
  [out] OUT_PPVOID MiniportDeviceContext
)
{...}

Parâmetros

[in] PhysicalDeviceObject

Um ponteiro para um PDO (objeto de dispositivo físico) que identifica um adaptador de exibição.

[out] MiniportDeviceContext

Um ponteiro para uma variável que recebe um identificador, criado pelo driver de miniporto de exibição, que representará o adaptador de exibição identificado por PhysicalDeviceObject. O driver de miniporta de exibição pode retornar NULL nesse parâmetro para indicar que ele não dará suporte ao adaptador de exibição identificado por PhysicalDeviceObject.

Retornar valor

DxgkDdiAddDevice retornará STATUS_SUCCESS se tiver êxito; caso contrário, ele retornará um dos códigos de erro definidos em Ntstatus.h.

Comentários

A função DxgkDdiAddDevice aloca um bloco de contexto privado associado ao adaptador de exibição identificado por PhysicalDeviceObject. Você pode pensar no identificador retornado em MiniportDeviceContext como um identificador para o adaptador de exibição ou como um identificador para o bloco de contexto associado ao adaptador de exibição. O subsistema de kernel de elementos gráficos DirectX (Dxgkrnl.sys) fornecerá o identificador em chamadas subsequentes para o driver de miniporto de exibição. A lista a seguir fornece exemplos de vários componentes de Dxgkrnl.sys passando o identificador para funções implementadas pelo driver de miniporta de exibição.

  • O driver de porta de exibição fornece o identificador no parâmetro MiniportDeviceContext da função DxgkDdiStartDevice .

  • O gerenciador VidPN fornece o identificador no parâmetro hAdapter da função DxgkDdiIsSupportedVidPn .

  • O núcleo gráfico DirectX fornece o identificador no parâmetro hAdapter da função DxgkDdiQueryAdapterInfo .

Não se confunda com o fato de que, às vezes, o identificador é chamado miniportDeviceContext e, às vezes, é chamado de hAdapter. Além disso, não confunda esse identificador com o parâmetro hDevice que é passado para determinadas funções de driver de miniporta de exibição.

DxgkDdiAddDevice é invocado para um dispositivo por vez em série. Seu comportamento é o mesmo que o retorno de chamada de DRIVER_ADD_DEVICE padrão para drivers do modo kernel do WDM.

Algumas placas de adaptador de exibição têm duas ou mais funções PCI que desempenham a função de adaptador de exibição. Por exemplo, determinados cartões mais antigos implementam várias exibições com uma função PCI separada para cada exibição. O driver de porta de exibição chama DxgkDdiAddDevice uma vez para cada uma dessas funções PCI, momento em que o driver de miniporta de exibição pode indicar que ele dá suporte à função PCI (definindo MiniportDeviceContext como um valor diferente de zero) ou que ele não dá suporte à função PCI (definindo MiniportDeviceContext como NULL). Para obter informações sobre uma função PCI específica, o driver de miniporto de exibição pode passar PhysicalDeviceObject para IoGetDeviceProperty.

Em DxgkDdiRemoveDevice, libere seu bloco de contexto e todos os outros recursos alocados durante DxgkDdiAddDevice.

A função DxgkDdiAddDevice deve ser tornada 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

DxgkDdiRemoveDevice

DxgkDdiStartDevice