Inicializando a comunicação com a DDI do Direct3D versão 10
Para inicializar a comunicação com o DDI da versão 10 da DLL do driver de exibição do modo de usuário, o runtime do Direct3D versão 10 primeiro carregará a DLL se a DLL ainda não estiver carregada. O runtime do Direct3D chama a função OpenAdapter10 do driver de exibição do modo de usuário por meio da tabela de exportação da DLL para abrir uma instância do adaptador gráfico. A função OpenAdapter10 é a única função do Direct3D versão 10 exportada da DLL.
Na chamada para a função OpenAdapter10 do driver, o runtime fornece a função de retorno de chamada do adaptador pfnQueryAdapterInfoCb no membro pAdapterCallbacks da estrutura D3D10DDIARG_OPENADAPTER . O runtime também fornece sua versão nos membros interface e versão do D3D10DDIARG_OPENADAPTER. O driver de exibição do modo de usuário deve verificar se ele pode usar essa versão do runtime. O driver de exibição do modo de usuário não deve falhar nas versões mais recentes do runtime porque as versões de runtime mais recentes podem usar versões DDI anteriores e, portanto, podem se comunicar corretamente com drivers que implementam essas versões DDI anteriores. O driver de exibição do modo de usuário retorna uma tabela de suas funções específicas do adaptador no membro pAdapterFuncs do D3D10DDIARG_OPENADAPTER.
O driver de exibição do modo de usuário deve chamar a função de retorno de chamada do adaptador pfnQueryAdapterInfoCb para consultar os recursos de hardware gráfico do driver de miniporto de exibição.
O runtime chama a função CreateDevice(D3D10) do driver de exibição do modo de usuário (uma das funções específicas do adaptador do driver) para criar um dispositivo de exibição para lidar com uma coleção de estado de renderização e concluir a inicialização. Quando a inicialização for concluída, o runtime do Direct3D versão 10 poderá chamar as funções do Direct3D versão 10 fornecidas pelo driver de exibição e o driver de exibição do modo de usuário poderá chamar as funções fornecidas pelo runtime.
A função CreateDevice(D3D10) do driver de exibição do modo de usuário é chamada com uma estrutura D3D10DDIARG_CREATEDEVICE cujos membros estão configurados da seguinte maneira para inicializar a DDI do driver de exibição do modo de usuário versão 10:
O runtime define Interface para a versão da interface que o runtime requer do driver de exibição do modo de usuário.
O runtime define Versão como um número que o driver pode usar para identificar quando o runtime foi criado. Por exemplo, o driver pode usar o número de versão para diferenciar entre um runtime lançado com o Windows Vista e um runtime lançado com um service pack subsequente, que pode conter uma correção que o driver requer.
O runtime define hRTDevice para especificar o identificador que o driver deve usar quando o driver chama de volta para o runtime.
O runtime define hDrvDevice para especificar o identificador que o runtime usa em chamadas de driver subsequentes.
O runtime fornece uma tabela de suas funções de retorno de chamada específicas do dispositivo na estrutura D3DDDI_DEVICECALLBACKS para a qual pKTCallbacks aponta. O driver de exibição no modo de usuário chama as funções de retorno de chamada fornecidas por runtime para acessar serviços no modo kernel no driver de miniporte de exibição.
O driver de exibição do modo de usuário retorna uma tabela de suas funções específicas do dispositivo na estrutura D3D10DDI_DEVICEFUNCS à qual pDeviceFuncs aponta.
O runtime fornece uma estrutura DXGI_DDI_BASE_ARGS à qual DXGIBaseDDI aponta. O runtime e o driver de exibição do modo de usuário fornecem sua DDI de infraestrutura de elementos gráficos DirectX para essa estrutura.
O runtime define hRTCoreLayer para especificar o identificador que o driver deve usar quando o driver chama de volta para o runtime para acessar a funcionalidade principal do Direct3D 10 (ou seja, em chamadas para as funções especificadas pelo membro pUMCallbacks ).
O runtime fornece uma tabela de suas principais funções de retorno de chamada na estrutura D3D10DDI_CORELAYER_DEVICECALLBACKS para a qual pUMCallbacks aponta. O driver de exibição do modo de usuário chama as funções de retorno de chamada principais fornecidas pelo runtime para atualizar o estado.
Nota O número de dispositivos de exibição (contextos gráficos) que podem existir simultaneamente é limitado apenas pela memória do sistema disponível.