Fungsi D3DKMTOpenAdapterFromHdc (d3dkmthk.h)
Fungsi D3DKMTOpenAdapterFromHdc memetakan handel konteks perangkat (HDC) ke handel adaptor grafis dan, jika adaptor berisi beberapa output monitor, ke salah satu output tersebut.
Sintaks
NTSTATUS D3DKMTOpenAdapterFromHdc(
D3DKMT_OPENADAPTERFROMHDC *unnamedParam1
);
Parameter
unnamedParam1
pData [masuk, keluar]
Penunjuk ke struktur D3DKMT_OPENADAPTERFROMHDC yang menjelaskan parameter yang diperlukan untuk melakukan pemetaan.
Nilai kembali
D3DKMTOpenAdapterFromHdc mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
STATUS_SUCCESS | Pemetaan berhasil dilakukan. |
STATUS_NO_MEMORY | Kernel kehabisan sumber daya yang akan memungkinkannya membuka handel lain. |
STATUS_INVALID_PARAMETER | Parameter divalidasi dan ditentukan salah atau model driver tampilan Windows Vista tidak digunakan. |
Fungsi ini mungkin juga mengembalikan nilai NTSTATUS lainnya.
Keterangan
Adaptor grafis sesuai dengan kartu video. Output monitor sesuai dengan kepala pada kartu video. Sistem dengan satu kartu video hanya berisi satu adaptor. Namun, jika kartu video mendukung beberapa kepala, kartu video mendukung output ke beberapa monitor. Gunakan fungsi D3DKMTCloseAdapter untuk menghindari kebocoran sumber daya.
Contoh
Contoh kode berikut menunjukkan bagaimana OpenGL ICD dapat menggunakan D3DKMTOpenAdapterFromHdc untuk mengambil handel adaptor grafis dan output untuk monitor utama dari 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;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista |
Target Platform | Universal |
Header | d3dkmthk.h (termasuk D3dkmthk.h) |
Pustaka | Gdi32.lib |
DLL | Gdi32.dll |