Функция NtGdiDdQueryDirectDrawObject
[Эта функция может изменяться с каждой редакцией операционной системы. Вместо этого используйте DirectDraw и Microsoft Direct3DAPis; эти API изолируют приложения от таких изменений операционной системы и скрывают многие другие трудности, связанные с взаимодействием непосредственно с драйверами дисплея.]
Запрашивает ранее созданное представление объекта Microsoft DirectDraw в режиме ядра для его возможностей.
Синтаксис
BOOL APIENTRY NtGdiDdQueryDirectDrawObject(
_In_ HANDLE hDirectDrawLocal,
_Out_ DD_HALINFO *pHalInfo,
DWORD *pCallBackFlags,
_Out_ LPD3DNTHAL_CALLBACKS puD3dCallbacks,
_Out_ LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData,
_Out_ PDD_D3DBUFCALLBACKS puD3dBufferCallbacks,
_Out_ LPDDSURFACEDESC puD3dTextureFormats,
_Out_ DWORD *puNumHeaps,
_Out_ VIDEOMEMORY *puvmList,
_Out_ DWORD *puNumFourCC,
_Out_ DWORD *puFourCC
);
Параметры
-
hDirectDrawLocal [in]
-
Дескриптор ранее созданного устройства DirectDraw в режиме ядра.
-
pHalInfo [out]
-
Указатель на DD_HALINFO структуру, которая будет заполнена возможностями устройства. Дополнительные сведения см. в документации по DDK.
-
pCallBackFlags
-
Указатель на предоставленный вызывающим объектом буфер, в котором хранятся флаги обратного вызова, сообщаемые драйвером. Буфер должен иметь размер 3*sizeof(DWORD) и хранить флаги обратного вызова в следующем порядке: pCallBackFlags[0] для флагов в DD_CALLBACKS, pCallBackFlags[1] для флагов в DD_SURFACECALLBACKS и pCallBackFlags[2] для флагов в DD_PALETTECALLBACKS. Дополнительные сведения см. в документации по DDK.
-
puD3dCallbacks [out]
-
Указатель на таблицу указателей обратного вызова Direct3D. Таблица заполнена указателями на функции в Gdi32.dll, имитирующие драйвер дисплея Direct3D. Эта таблица обратных вызовов идентична структуре D3DHAL_D3DCALLBACKS, описанной в документации по DDK.
-
puD3dDriverData [out]
-
Указатель на D3DHAL_GLOBALDRIVERDATA данные, как описано в документации по DDK.
-
puD3dBufferCallbacks [out]
-
Указатель на таблицу указателей обратного вызова. Таблица заполнена указателями на функции в Gdi32.dll, имитирующие драйвер дисплея Direct3D. Эта таблица обратных вызовов идентична структуре DDHAL_DDEXEBUFCALLBACKS, которая соответствует структуре DD_D3DBUFCALLBACKS , описанной в документации по DDK, за исключением того, что элементы XxxD3DBuffer в DD_D3DBUFCALLBACKS заменяются xxxExecuteBuffer в DDHAL_DDEXEBUFCALLBACKS.
-
puD3dTextureFormats [out]
-
Указатель на массив структур DDSURFACEDESC , определяющих набор допустимых форматов текстур.
-
puNumHeaps [out]
-
Указатель на член dwNumHeapsDD_HALINFO. vmiData. Член dwNumHeaps указывает количество кучи памяти в puvmList. Дополнительные сведения см. в документации по DDK.
-
puvmList [out]
-
Указатель на список дескрипторов кучи видеопамять. Может иметь значение NULL. Этот параметр не используется, так как управление видеопамяти полностью обрабатывается в режиме ядра.
-
puNumFourCC [out]
-
Указатель на элемент puNumFourCCCodesDD_HALINFO. ddCaps. Член puNumFourCCCodes указывает количество кодов FOURCC , поддерживаемых драйвером. Дополнительные сведения см. в документации по DDK.
-
puFourCC [out]
-
Указатель на список поддерживаемых форматов поверхностей четырехсимвого кода (FOURCC). Может иметь значение NULL.
Возвращаемое значение
В случае успешного выполнения эта функция возвращает значение TRUE; В противном случае возвращается значение FALSE.
Комментарии
Вызов этой функции предназначен для выполнения в двухэтапном процессе. На первом шаге puFourCC, puvmList и puD3dTextureFormats должны иметь значение NULL, а DdQueryDirectDrawObject заполнит DD_HALINFO. ddCaps. dwNumFourCCCodes, DD_HALINFO. vmiData. dwNumHeaps и D3DHAL_GLOBALDRIVERDATA. dwNumTextureFormats с количеством возвращаемых записей. Во втором вызове вызывающий объект должен выделить массивы указанного размера и передать эти указатели вместо значений NULL в параметрах puFourCC, puvmList и puD3dTextureFormats . Затем массивы будут заполнены соответствующими данными.
Приложениям рекомендуется использовать API DirectDraw и Direct3D для создания объектов графических устройств и управления ими. Эти конструкции абстрагируют процесс создания устройства упрощенным и независимым от операционной системы способом.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Заголовок |
|
См. также раздел