PDD_GETDRIVERINFO回呼函式 (ddrawint.h)
DdGetDriverInfo 函式會查詢驅動程序支援的其他 DirectDraw 和 Direct3D 功能。
語法
PDD_GETDRIVERINFO PddGetdriverinfo;
DWORD PddGetdriverinfo(
PDD_GETDRIVERINFODATA unnamedParam1
)
{...}
參數
unnamedParam1
指向包含執行查詢所需資訊的 DD_GETDRIVERINFODATA 結構。
傳回值
DdGetDriverInfo 必須傳回DDHAL_DRIVER_HANDLED。
備註
驅動程式必須實作 DdGetDriverInfo ,才能公開無法透過 DrvEnableDirectDraw傳回的驅動程式支援的 DirectDraw 功能。
驅動程式的DrvGetDirectDrawInfo函式會在 DD_HALINFO結構的 GetDriverInfo 成員中傳回 DdGetDriverInfo 的指標。
若要通知 DirectDraw GetDriverInfo 成員已正確設定,驅動程式也必須在 DD_HALINFO 結構中設定 dwFlags 成員的DDHALINFO_GETDRIVERINFOSET位。
DdGetDriverInfo 應該判斷驅動程式及其硬體是否支援指定 GUID 所要求的回呼或功能。 對於除了GUID_D3DParseUnknownCommandCallback以外的所有 GUID,如果驅動程式提供所要求的支援,它應該設定 下列DD_GETDRIVERINFODATA 結構的成員:
- 將 dwActualSize 設定為驅動程式所傳回之回呼或功能結構位元組的大小。
- 在 lpvData 指向的記憶體中,初始化與要求功能對應的回呼或功能結構成員,如下所示:
- 將 dwSize 成員設定為 結構位元組的大小。
- 針對回呼,請將函式指標設定為指向驅動程式所實作的回呼,並設定 dwFlags 成員中的位,以指出驅動程式支援的函式。
- 針對功能,請使用驅動程式/裝置所支援的值,設定功能結構的適當成員。
- 在 ddRVal 中傳回DD_OK。
DirectDraw 會通知驅動程式DD_GETDRIVERINFODATA結構之 dwExpectedSize 成員中預期的數據量。 驅動程式不能填入超過 dwExpectedSize 位元組的數據。
若要避免使用 DdGetDriverInfo 的問題:
- 請勿根據 呼叫 DdGetDriverInfo 的順序實作相依性。 例如,請避免將驅動程式初始化步驟連結至 DdGetDriverInfo。
- 請勿嘗試根據 對 DdGetDriverInfo 的呼叫來確認 DirectDraw 版本。
- 請勿假設 DirectDraw 會呼叫驅動程式的次數,或 DirectDraw 查詢指定 GUID 的次數。 DirectDraw 可能會以相同的 GUID 重複探查驅動程式。 在驅動程式中實作這一點的假設,使其與未來的運行時間相容。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | ddrawint.h (包括 Winddi.h) |