Função D3DKMTOpenAdapterFromHdc (d3dkmthk.h)
A função D3DKMTOpenAdapterFromHdc mapeia um HDC (identificador de contexto do dispositivo) para um identificador de adaptador gráfico e, se o adaptador contiver várias saídas de monitor, para uma dessas saídas.
Sintaxe
NTSTATUS D3DKMTOpenAdapterFromHdc(
D3DKMT_OPENADAPTERFROMHDC *unnamedParam1
);
Parâmetros
unnamedParam1
pData [in, out]
Um ponteiro para uma estrutura D3DKMT_OPENADAPTERFROMHDC que descreve os parâmetros necessários para executar o mapeamento.
Retornar valor
D3DKMTOpenAdapterFromHdc retorna um dos seguintes valores:
Código de retorno | Descrição |
---|---|
STATUS_SUCCESS | O mapeamento foi executado com êxito. |
STATUS_NO_MEMORY | O kernel ficou sem os recursos que o permitiriam abrir outro identificador. |
STATUS_INVALID_PARAMETER | Os parâmetros foram validados e determinados como incorretos ou o modelo de driver de exibição do Windows Vista não foi usado. |
Essa função também pode retornar outros valores NTSTATUS .
Comentários
Um adaptador gráfico corresponde a um cartão de vídeo. Uma saída de monitor corresponde a uma cabeça em um cartão de vídeo. Um sistema com um único cartão de vídeo contém apenas um adaptador. No entanto, se o cartão de vídeo der suporte a vários cabeçalhos, ele oferecerá suporte à saída para vários monitores. Use a função D3DKMTCloseAdapter para evitar vazamentos de recursos.
Exemplos
O exemplo de código a seguir demonstra como um OpenGL ICD pode usar D3DKMTOpenAdapterFromHdc para recuperar o identificador do adaptador gráfico e a saída para o monitor primário do HDC.
HRESULT GetPrimaryAdapterHandle(HANDLE* phAdapter, UINT* pOutput)
{
D3DKMT_OPENADAPTERFROMHDC OpenAdapterData;
DISPLAY_DEVICE dd;
HDC hdc;
int i;
*phAdapter = NULL;
*pOutput = 0;
memset(&dd, 0, sizeof (dd));
dd.cb = sizeof dd;
for (i = 0; EnumDisplayDevicesA(NULL, i, &dd, 0); ++i) {
if (dd.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE) {
break;
}
}
hdc = CreateDC (NULL, dd.DeviceName, NULL, NULL);
if (hdc == NULL) {
return E_FAIL;
}
OpenAdapterData.hDc = hdc;
if (NT_SUCCESS((*pfnKTOpenAdapterFromHdc)(&OpenAdapterData))) {
DeleteDC(hdc);
*phAdapter = OpenAdapterData.hAdapter;
*pOutput = OpenAdapterData.VidPnSourceId;
return S_OK;
}
DeleteDC(hdc);
return E_FAIL;
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Plataforma de Destino | Universal |
Cabeçalho | d3dkmthk.h (inclua D3dkmthk.h) |
Biblioteca | Gdi32.lib |
DLL | Gdi32.dll |