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 [dentro, fora]
Um ponteiro para uma estrutura D3DKMT_OPENADAPTERFROMHDC que descreve os parâmetros necessários para executar o mapeamento.
Valor de retorno
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 de NTSTATUS.
Observações
Um adaptador gráfico corresponde a uma placa de vídeo. Uma saída de monitor corresponde a uma cabeça em uma placa de vídeo. Um sistema com uma única placa de vídeo contém apenas um adaptador. No entanto, se a placa de vídeo der suporte a várias cabeças, ela 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 ICD OpenGL pode usar D3DKMTOpenAdapterFromHdc para recuperar o identificador do adaptador gráfico e a saída do 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 |
---|---|
de cliente com suporte mínimo | Windows Vista |
da Plataforma de Destino | Universal |
cabeçalho | d3dkmthk.h (inclua D3dkmthk.h) |
biblioteca | Gdi32.lib |
de DLL | Gdi32.dll |