共用方式為


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。
如果驅動程式不支援此功能,它應該將 ddRVal 設定為 DDERR_CURRENTLYNOTAVAIL並傳回。

DirectDraw 會通知驅動程式DD_GETDRIVERINFODATA結構之 dwExpectedSize 成員中預期的數據量。 驅動程式不能填入超過 dwExpectedSize 位元組的數據。

若要避免使用 DdGetDriverInfo 的問題:

  • 請勿根據 呼叫 DdGetDriverInfo 的順序實作相依性。 例如,請避免將驅動程式初始化步驟連結至 DdGetDriverInfo
  • 請勿嘗試根據 對 DdGetDriverInfo 的呼叫來確認 DirectDraw 版本。
  • 請勿假設 DirectDraw 會呼叫驅動程式的次數,或 DirectDraw 查詢指定 GUID 的次數。 DirectDraw 可能會以相同的 GUID 重複探查驅動程式。 在驅動程式中實作這一點的假設,使其與未來的運行時間相容。

規格需求

需求
目標平台 桌面
標頭 ddrawint.h (包括 Winddi.h)

另請參閱

DD_GETDRIVERINFODATA

DrvEnableDirectDraw

DrvGetDirectDrawInfo