функция обратного вызова DXGKCB_SAVEMEMORYFORHOTUPDATE (d3dkmddi.h)
Драйвер мини-порта в режиме ядра может вызывать DXGKCB_SAVEMEMORYFORHOTUPDATE для сохранения памяти адаптера для поддержки горячего обновления драйвера.
Синтаксис
DXGKCB_SAVEMEMORYFORHOTUPDATE DxgkcbSavememoryforhotupdate;
NTSTATUS DxgkcbSavememoryforhotupdate(
[in] IN_CONST_HANDLE hAdapter,
[in] IN_CONST_PDXGKARGCB_SAVEMEMORYFORHOTUPDATE pArgs
)
{...}
Параметры
[in] hAdapter
Дескриптор адаптера DXGK, который передается в DxgkDdiStartDevice.
[in] pArgs
Указатель на структуру DXGKARGCB_SAVEMEMORYFORHOTUPDATE, содержащую аргументы для этого обратного вызова.
Возвращаемое значение
DXGKCB_SAVEMEMORYFORHOTUPDATE возвращает STATUS_SUCCESS, если операция выполнена успешно; в противном случае возвращается код ошибки из Ntstatus.h.
Замечания
Каждый вызов DXGKCB_SAVEMEMORYFORHOTUPDATE сохраняет блок страниц физической памяти, а также необязательные метаданные, которые драйвер хочет связать с блоком памяти. После восстановления страниц драйвер получит отдельный вызов для каждого сохраненного блока памяти вместе с метаданными.
Для удобства обратный вызов предоставляет 3 варианта сохранения физической памяти:
- Как массив смежных диапазонов физической памяти (pDataMemoryRanges)
- Как MDL (pDataMdl)
- Как буфер виртуальной памяти (pData)
Один (и только один) указателей на данные (pDataMemoryRanges, pDataMdl или pData) не должен иметь значение NULL.
DXGKCB_XXX функции реализуются Dxgkrnl. Чтобы использовать эту функцию обратного вызова, задайте соответствующие члены DXGKARGCB_SAVEMEMORYFORHOTUPDATE и вызовите DxgkCbSaveMemoryForHotUpdate через DXGKRNL_INTERFACE.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 10 версии 1903 (WDDM 2.6) |
заголовка | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |