Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La funzione D3DKMTOpenAdapterFromHdc esegue il mapping di un handle hdc (Device Context Handle) a un handle di scheda grafica e, se la scheda contiene più output di monitoraggio, a uno di questi output.
Sintassi
NTSTATUS D3DKMTOpenAdapterFromHdc(
D3DKMT_OPENADAPTERFROMHDC *unnamedParam1
);
Parametri
unnamedParam1
pData [in, out]
Puntatore a una struttura D3DKMT_OPENADAPTERFROMHDC che descrive i parametri necessari per eseguire il mapping.
Valore restituito
D3DKMTOpenAdapterFromHdc restituisce uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
STATUS_SUCCESS | Il mapping è stato eseguito correttamente. |
STATUS_NO_MEMORY | Il kernel ha esaurito le risorse che lo avrebbero abilitato per aprire un altro handle. |
STATUS_INVALID_PARAMETER | I parametri sono stati convalidati e sono stati determinati in modo errato o il modello di driver di visualizzazione di Windows Vista non è stato usato. |
Questa funzione potrebbe restituire anche altri valori NTSTATUS.
Osservazioni
Una scheda grafica corrisponde a una scheda video. Un output di monitoraggio corrisponde a una testa su una scheda video. Un sistema con una singola scheda video contiene una sola scheda. Tuttavia, se la scheda video supporta più teste, supporta l'output su più monitor. Usare la funzione D3DKMTCloseAdapter per evitare perdite di risorse.
Esempi
L'esempio di codice seguente illustra come una progettazione immagine e configurazione OpenGL può usare D3DKMTOpenAdapterFromHdc per recuperare l'handle della scheda grafica e l'output per il monitoraggio primario da 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;
}
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows Vista |
piattaforma di destinazione | Universale |
intestazione | d3dkmthk.h (include D3dkmthk.h) |
libreria | Gdi32.lib |
dll | Gdi32.dll |