Condividi tramite


PDD_GETDRIVERINFO funzione di callback (ddrawint.h)

La funzione DdGetDriverInfo esegue una query sul driver per funzionalità DirectDraw e Direct3D aggiuntive supportate dal driver.

Sintassi

PDD_GETDRIVERINFO PddGetdriverinfo;

DWORD PddGetdriverinfo(
  PDD_GETDRIVERINFODATA unnamedParam1
)
{...}

Parametri

unnamedParam1

Punta a una struttura DD_GETDRIVERINFODATA che contiene le informazioni necessarie per eseguire la query.

Valore restituito

DdGetDriverInfo deve restituire DDHAL_DRIVER_HANDLED.

Commenti

I driver devono implementare DdGetDriverInfo per esporre la funzionalità DirectDraw supportata dal driver che non è restituita tramite DrvEnableDirectDraw.

La funzione DrvGetDirectDrawInfo del driver restituisce un puntatore a DdGetDriverInfo nel membro GetDriverInfo della struttura DD_HALINFO .

Per informare DirectDraw che il membro GetDriverInfo è stato impostato correttamente, il driver deve anche impostare il DDHALINFO_GETDRIVERINFOSET bit del membro dwFlags nella struttura DD_HALINFO.

DdGetDriverInfo deve determinare se il driver e il relativo hardware supportano i callback o le funzionalità richieste dal GUID specificato. Per tutti i GUID tranne GUID_D3DParseUnknownCommandCallback, se il driver fornisce il supporto richiesto, deve impostare i membri seguenti della struttura DD_GETDRIVERINFODATA :

  • Impostare dwActualSize sulle dimensioni in byte della struttura di callback o funzionalità restituita dal driver.
  • Nella memoria a cui punta lpvData inizializzare i membri della struttura di callback o funzionalità che corrisponde alla funzionalità richiesta come indicato di seguito:
    • Impostare il membro dwSize sulle dimensioni in byte della struttura.
    • Per i callback, impostare i puntatori alle funzioni per puntare a tali callback implementati dal driver e impostare i bit nel membro dwFlags per indicare le funzioni supportate dal driver.
    • Per le funzionalità, impostare i membri appropriati della struttura di funzionalità con valori supportati dal driver/dispositivo.
  • Restituire DD_OK in ddRVal.
Se il driver non supporta la funzionalità, deve impostare ddRVal su DDERR_CURRENTLYNOTAVAIL e restituire.

DirectDraw informa il driver della quantità prevista di dati nel membro dwExpectedSize della struttura DD_GETDRIVERINFODATA . Il driver non deve compilare più dati di dwExpectedSize byte .

Per evitare problemi con DdGetDriverInfo:

  • Non implementare le dipendenze in base all'ordine in cui viene chiamato DdGetDriverInfo . Ad esempio, evitare di associare i passaggi di inizializzazione del driver in DdGetDriverInfo.
  • Non provare a verificare la versione DirectDraw in base alle chiamate a DdGetDriverInfo.
  • Non presupporre nulla sul numero di volte in cui DirectDraw chiamerà il driver o il numero di volte in cui DirectDraw eseguirà una query su un GUID specificato. È possibile che DirectDraw eseguirà ripetutamente il probe del driver con lo stesso GUID. L'implementazione di presupposti relativi a questo problema nel driver impedisce la compatibilità con i runtime futuri.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione ddrawint.h (include Winddi.h)

Vedi anche

DD_GETDRIVERINFODATA

DrvEnableDirectDraw

DrvGetDirectDrawInfo