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 miniporto de exibição pode retornar NULL neste parâmetro para indicar que ele não dará suporte ao adaptador de exibição identificado por PhysicalDeviceObject.
Valor de retorno
DxgkDdiAddDevice retornará STATUS_SUCCESS se tiver êxito; caso contrário, ele retorna um dos códigos de erro definidos em Ntstatus.h.
Observações
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 miniporto 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 deDxgkDdiIsSupportedVidPn.
O núcleo gráfico do DirectX fornece o identificador no parâmetro hAdapter da funçãoDxgkDdiQueryAdapterInfo.
Não se confunda com o fato de que, às vezes, o identificador é nomeado miniportDeviceContext e, às vezes, é nomeado hAdapter. Além disso, não confunda esse identificador com o parâmetro hDevice que é passado para determinadas funções de driver de miniporto 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.
Alguns cartões 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, quando o driver de miniporto de exibição pode indicar que ele dá suporte à função PCI (definindo MiniportDeviceContext para 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 o bloco de contexto e todos os outros recursos que você alocar durante DxgkDdiAddDevice.
A função DxgkDdiAddDevice 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 |