DirectDraw and Direct3D Callback Support Using DdGetDriverInfo

The display driver can implement the DdGetDriverInfo function to indicate various DirectDraw and Direct3D callback support. Callback support is contingent on the following GUIDs that the driver receives in the guidInfo member of the DD_GETDRIVERINFODATA structure, to which the lpGetDriverInfo parameter points. The driver returns a pointer to a structure in the lpvData member that specifies DirectDraw or Direct3D callback support.

  • If the driver receives the GUID_ColorControlCallbacks GUID, it returns a pointer to the DD_COLORCONTROLCALLBACKS structure. If it supports color control, the driver fills the ColorControl member of DD_COLORCONTROLCALLBACKS to specify its DdControlColor callback function.

  • If the driver receives the GUID_D3DCallbacks, GUID_D3DCallbacks3, or GUID_Miscellaneous2Callbacks GUID, it returns a pointer to the D3DHAL_CALLBACKS, D3DHAL_CALLBACKS3, or DD_MISCELLANEOUS2CALLBACKS structure. The driver uses these structures to indicate its Direct3D callback support. For more information, see Direct3D DDI.

  • If the driver receives the GUID_KernelCallbacks GUID, it returns a pointer to the DD_KERNELCALLBACKS structure. The driver fills members of DD_KERNELCALLBACKS to indicate that it supports the following callback functions.

    Callback Function Description

    DdSyncSurfaceData

    Sets and modifies surface data.

    DdSyncVideoPortData

    Sets and modifies video port extensions (VPE) object data.

  • If the driver receives the GUID_MiscellaneousCallbacks GUID, it returns a pointer to the DD_MISCELLANEOUSCALLBACKS structure. If it supports a DdGetAvailDriverMemory callback function, the driver fills the DdGetAvailDriverMemory member of DD_MISCELLANEOUSCALLBACKS to specify DdGetAvailDriverMemory.

  • If the driver receives the GUID_MotionCompCallbacks GUID, it returns a pointer to the DD_MOTIONCOMPCALLBACKS structure to indicate its support of motion compensation callbacks. For more information, see Compressed Video Decoding.

  • If the driver receives the GUID_NTCallbacks GUID, it returns a pointer to the DD_NTCALLBACKS structure. The driver fills members of DD_NTCALLBACKS to indicate that it supports the following callback functions.

    Callback Function Description

    DdFlipToGDISurface

    Notifies the driver when DirectDraw is flipping to or from a GDI surface.

    DdFreeDriverMemory

    Frees offscreen or nonlocal display memory to satisfy a new allocation request.

    DdSetExclusiveMode

    Notifies the driver when a DirectDraw application is switching to or from exclusive mode.