Condividi tramite


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
Ntgdi.h

Vedi anche

Supporto client grafica di basso livello

DdQueryDirectDrawObject

NtGdiDdCreateDirectDrawObject