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 |