Функция DdQueryDirectDrawObject (ddrawgdi.h)
[Эта функция может изменяться с каждой редакцией операционной системы. Вместо этого используйте Microsoft DirectDraw и Microsoft Direct3DAPIs; эти API изолируют приложения от таких изменений операционной системы и скрывают многие другие трудности, связанные с взаимодействием непосредственно с драйверами дисплея.]
Оболочка для функции NtGdiDdQueryDirectDrawObject и запрашивает ранее созданное представление режима ядра для получения возможностей.
GdiEntry2 определяется как псевдоним для этой функции.
Синтаксис
BOOL DdQueryDirectDrawObject(
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
LPDDHALINFO pHalInfo,
LPDDHAL_DDCALLBACKS pDDCallbacks,
LPDDHAL_DDSURFACECALLBACKS pDDSurfaceCallbacks,
LPDDHAL_DDPALETTECALLBACKS pDDPaletteCallbacks,
LPD3DHAL_CALLBACKS pD3dCallbacks,
LPD3DHAL_GLOBALDRIVERDATA pD3dDriverData,
LPDDHAL_DDEXEBUFCALLBACKS pD3dBufferCallbacks,
LPDDSURFACEDESC pD3dTextureFormats,
LPDWORD pdwFourCC,
LPVIDMEM pvmList
);
Параметры
pDirectDrawGlobal
Указатель на объект DirectDraw в пользовательском режиме, для которого ранее был создан объект на стороне ядра с помощью DdCreateDirectDrawObject.
pHalInfo
Указатель на структуру DDHALINFO , которая будет заполнена возможностями устройства. Дополнительные сведения см. в документации по DDK.
pDDCallbacks
Указатель на таблицу указателей обратного вызова. Таблица заполнена указателями на функции в Gdi32.dll, имитирующие драйвер дисплея DirectDraw. Эта таблица обратного вызова идентична структуре DDHAL_DDCALLBACKS, которая сопоставляется со структурой DD_CALLBACKS , описанной в документации по DDK.
pDDSurfaceCallbacks
Указатель на таблицу указателей обратного вызова surface. Таблица заполнена указателями на функции в Gdi32.dll, имитирующие драйвер дисплея DirectDraw. Эта таблица обратных вызовов идентична структуре DDHAL_DDSURFACECALLBACKS, которая сопоставляется со структурой DD_SURFACECALLBACKS , описанной в документации по DDK.
pDDPaletteCallbacks
Указатель на таблицу указателей обратного вызова палитры. Таблица заполнена указателями на функции в Gdi32.dll, имитирующие драйвер дисплея DirectDraw. Эта таблица обратных вызовов идентична структуре DDHAL_DDPALETTECALLBACKS, которая сопоставляется со структурой DD_PALETTECALLBACKS , описанной в документации по DDK.
pD3dCallbacks
Указатель на таблицу указателей обратного вызова Direct3D. Таблица заполнена указателями на функции в Gdi32.dll, имитирующие драйвер дисплея Direct3D. Эта таблица обратных вызовов идентична структуре D3DHAL_CALLBACKS , описанной в документации по DDK.
pD3dDriverData
Указатель на D3DHAL_GLOBALDRIVERDATA данные, как описано в документации по DDK.
pD3dBufferCallbacks
Указатель на таблицу указателей обратного вызова. Таблица заполнена указателями на функции в Gdi32.dll, имитирующие драйвер дисплея Direct3D. Эта таблица обратных вызовов идентична структуре DDHAL_DDEXEBUFCALLBACKS, которая соответствует структуре DD_D3DBUFCALLBACKS , описанной в документации по DDK, за исключением того, что элементы XxxD3DBuffer в DD_D3DBUFCALLBACKS заменяются xxxExecuteBuffer в DDHAL_DDEXEBUFCALLBACKS.
pD3dTextureFormats
Указатель на массив структур DDSURFACEDESC , определяющих набор допустимых форматов текстур.
pdwFourCC
Указатель на список поддерживаемых форматов поверхностей четырехсимвого кода (FOURCC). Может иметь значение NULL.
pvmList
Указатель на список дескрипторов кучи видеопамять. Может иметь значение NULL. Этот параметр не используется, так как управление видеопамяти полностью обрабатывается в режиме ядра.
Возвращаемое значение
В случае успешного выполнения эта функция возвращает значение TRUE; В противном случае возвращается значение FALSE.
Комментарии
Вызов этой функции предназначен для выполнения в двухэтапном процессе. На первом шаге pdwFourCC, pvmList и pD3dTextureFormats должны иметь значение NULL, а DdQueryDirectDrawObject заполнит DDHALINFO. ddCaps. dwNumFourCCCodes, DDHALINFO. vmiData. dwNumHeaps и D3DHAL_GLOBALDRIVERDATA. dwNumTextureFormats с количеством возвращаемых записей. Во втором вызове вызывающий объект должен выделить массивы указанного размера и передать эти указатели вместо значений NULL в параметрах pdwFourCC, pvmList и pD3dTextureFormats . Затем массивы будут заполнены соответствующими данными.
Приложениям рекомендуется использовать API DirectDraw и Direct3D для создания объектов графических устройств и управления ими. Эти конструкции абстрагируют процесс создания устройства упрощенным и независимым от операционной системы способом.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | ddrawgdi.h |