Inicializando a comunicação com o driver de exibição User-Mode Direct3D
Para inicializar a comunicação com o DDI da versão 11 da DLL do driver de exibição do microsoft Direct3D, o runtime do Direct3D primeiro carrega a DLL. O runtime do Direct3D chama a função OpenAdapter 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 OpenAdapter é a única função exportada da DLL.
Na chamada para a função OpenAdapter do driver, o runtime fornece a função de retorno de chamada do adaptador pfnQueryAdapterInfoCb no membro pAdapterCallbacks da estrutura D3DDDIARG_OPENADAPTER . O runtime também fornece sua versão nos membros interface e versão do D3DDDIARG_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 retorna uma tabela de suas funções específicas do adaptador no membro pAdapterFuncs do D3DDDIARG_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 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 poderá chamar as funções fornecidas pelo driver de exibição e o driver de exibição do modo de usuário poderá chamar as funções fornecidas por runtime.
A função CreateDevice do driver de exibição do modo de usuário é chamada com uma estrutura D3DDDIARG_CREATEDEVICE cujos membros estão configurados da seguinte maneira para inicializar a interface do driver de exibição do modo de usuário:
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 hDevice para especificar o identificador que o driver deve usar quando o driver chama de volta para o runtime. O driver gera um identificador exclusivo e o passa de volta para o runtime no hDevice. O runtime deve usar o identificador hDevice retornado 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 pCallbacks 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 D3DDDI_DEVICEFUNCS à qual pDeviceFuncs aponta.
Observação
O número de dispositivos de exibição (contextos gráficos) que podem existir simultaneamente é limitado apenas pela memória do sistema disponível.