Funzione NtGdiDdQueryDirectDrawObject
[Questa funzione è soggetta a modifiche con ogni revisione del sistema operativo. Usare invece DirectDraw e Microsoft Direct3DAPIs; queste API isolano le applicazioni da tali modifiche al sistema operativo e nascondono molte altre difficoltà nell'interagire direttamente con i driver di visualizzazione.
Esegue una query su una rappresentazione in modalità kernel creata in precedenza di un oggetto Microsoft DirectDraw per le relative funzionalità.
Sintassi
BOOL APIENTRY NtGdiDdQueryDirectDrawObject(
_In_ HANDLE hDirectDrawLocal,
_Out_ DD_HALINFO *pHalInfo,
DWORD *pCallBackFlags,
_Out_ LPD3DNTHAL_CALLBACKS puD3dCallbacks,
_Out_ LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData,
_Out_ PDD_D3DBUFCALLBACKS puD3dBufferCallbacks,
_Out_ LPDDSURFACEDESC puD3dTextureFormats,
_Out_ DWORD *puNumHeaps,
_Out_ VIDEOMEMORY *puvmList,
_Out_ DWORD *puNumFourCC,
_Out_ DWORD *puFourCC
);
Parametri
-
hDirectDrawLocal [in]
-
Gestire il dispositivo DirectDraw in modalità kernel creato in precedenza.
-
pHalInfo [out]
-
Puntatore a una struttura DD_HALINFO che verrà riempita con le funzionalità del dispositivo. Per informazioni dettagliate, vedere la documentazione di DDK.
-
pCallBackFlags
-
Puntatore a un buffer fornito dal chiamante che archivia i flag di callback segnalati dal driver. Il buffer deve avere dimensioni 3*sizeof(DWORD) e archivia i flag di callback nell'ordine seguente: pCallBackFlags[0] per i flag in DD_CALLBACKS, pCallBackFlags[1] per i flag in DD_SURFACECALLBACKS e pCallBackFlags[2] per i flag in DD_PALETTECALLBACKS. Per informazioni dettagliate, vedere la documentazione di DDK.
-
puD3dCallbacks [out]
-
Puntatore a una tabella di puntatori di callback Direct3D. La tabella viene riempita con puntatori alle funzioni all'interno di Gdi32.dll che imitano un driver di visualizzazione Direct3D. Questa tabella di callback è identica alla struttura di D3DHAL_D3DCALLBACKS descritta nella documentazione di DDK.
-
puD3dDriverData [out]
-
Puntatore a D3DHAL_GLOBALDRIVERDATA dati, come descritto nella documentazione di DDK.
-
puD3dBufferCallbacks [out]
-
Puntatore a una tabella di puntatori di callback. La tabella viene riempita con puntatori alle funzioni all'interno di Gdi32.dll che imitano un driver di visualizzazione Direct3D. Questa tabella di callback è identica alla struttura DDHAL_DDEXEBUFCALLBACKS, che esegue il mapping alla struttura DD_D3DBUFCALLBACKS descritta nella documentazione DDK, ad eccezione del fatto che i membri XxxD3DBuffer in DD_D3DBUFCALLBACKS vengono sostituiti con XxxExecuteBuffer in DDHAL_DDEXEBUFCALLBACKS.
-
puD3dTextureFormats [out]
-
Puntatore a una matrice di strutture DDSURFACEDESC che definiscono il set di formati di trama consentiti.
-
puNumHeaps [out]
-
Puntatore al membro dwNumHeaps di DD_HALINFO. vmiData. Il membro dwNumHeaps specifica il numero di heap di memoria in puvmList. Per informazioni dettagliate, vedere la documentazione di DDK.
-
puvmList [out]
-
Puntatore a un elenco di descrittori dell'heap di memoria video. Può essere NULL. Questo parametro non viene usato perché la gestione della memoria video viene gestita interamente all'interno della modalità kernel.
-
puNumFourCC [out]
-
Puntatore al membro puNumFourCCCodes di DD_HALINFO. ddCaps. Il membro puNumFourCCCodes specifica il numero di codici FOURCC (Four-Character Codes) supportati dal driver. Per informazioni dettagliate, vedere la documentazione di DDK.
-
puFourCC [out]
-
Puntatore a un elenco dei formati di superficie FOURCC (Four-Character Codes) supportati. Può essere NULL.
Valore restituito
In caso di esito positivo, questa funzione restituisce TRUE; in caso contrario restituisce FALSE.
Commenti
Una chiamata a questa funzione è progettata per essere eseguita in un processo in due passaggi. Nel primo passaggio , puFourCC, puvmList e puD3dTextureFormats devono essere NULL e DdQueryDirectDrawObject compilerà DD_HALINFO. ddCaps. dwNumFourCCCodes, DD_HALINFO. vmiData. dwNumHeaps e D3DHAL_GLOBALDRIVERDATA. dwNumTextureFormats con il numero di voci da restituire. Nella seconda chiamata, il chiamante deve allocare matrici delle dimensioni indicate e passare tali puntatori anziché valori NULL nei parametri puFourCC, puvmList e puD3dTextureFormats . Le matrici verranno quindi popolate con i dati appropriati.
Le applicazioni sono consigliate di usare le API DirectDraw e Direct3D per creare e gestire oggetti dispositivo grafico. Questi costrutti astraggono il processo di creazione del dispositivo in modo semplificato e indipendente dal sistema operativo.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows 2000 Professional [solo app desktop] |
Server minimo supportato |
Windows 2000 Server [solo app desktop] |
Intestazione |
|
Vedi anche