функция обратного вызова DUMP_WRITE (ntdddump.h)
Подпрограмма обратного вызова Dump_Write вызывается перед записью в драйвер порта дампа. Драйвер фильтра может получить доступ к данным дампа в настоящее время.
Синтаксис
DUMP_WRITE DumpWrite;
NTSTATUS DumpWrite(
[in] PFILTER_EXTENSION FilterExtension,
[in, out] PLARGE_INTEGER DiskByteOffset,
[in, out] PMDL Mdl
)
{...}
Параметры
[in] FilterExtension
Указатель на структуру FILTER_EXTENSION .
[in, out] DiskByteOffset
Значение в байтах относительно целевой секции для аварийного дампа или гибернации. Драйверы фильтров не должны изменять это поле.
[in, out] Mdl
Указатель на структуру MDL , описывающую буфер данных. Если MDL изменен, размер операции записи не может измениться.
Возвращаемое значение
Если подпрограмма завершается успешно, она должна вернуть STATUS_SUCCESS. В противном случае он должен вернуть одно из значений состояния ошибки, определенных в Ntstatus.h.
Комментарии
Драйверы фильтров могут считывать данные, которые необходимо записать. Однако драйверы фильтров не могут записывать данные в буфер, так как это может изменить содержимое кода или данных, используемых процессом аварийного дампа. Кроме того, драйверам фильтров не разрешено изменять размер данных.
Чтобы безопасно изменить данные для записи дампа, драйвер фильтра должен выделить дополнительный буфер. Размер буфера будет значением элемента MaxPagesPerWriteFILTER_INITIALIZATION_DATA умножено на PAGE_SIZE. Данные для текущего буфера, описанного mdl , копируются во вторичный буфер и обрабатываются. После того как фильтр завершит обработку данных дампа во вторичном буфере, MDL , на который указывает Mdl , обновляется адресом вторичного буфера. Начальный адрес дополнительного буферного набора в MDL должен быть выровнен по страницам.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows Vista и Windows Server 2008. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ntdddump.h (включая Ntdddump.h) |