функция обратного вызова 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.

Замечания

Драйверы фильтров могут считывать данные, которые необходимо записать. Однако драйверы фильтров не могут записывать данные в буфер, так как это может изменить содержимое кода или данных, используемых процессом аварийного дампа. Кроме того, драйверы фильтров не могут изменять размер данных.

Чтобы безопасно изменить данные для записи дампа, драйвер фильтра должен выделить дополнительный буфер. Размер буфера будет значением элемента MaxPagesPerWrite элемента FILTER_INITIALIZATION_DATA, умноженного на PAGE_SIZE. Данные для текущего буфера, описанного Mdl, копируются в дополнительный буфер и обрабатываются. После завершения обработки данных дампа в дополнительном буфере MDL, на которые указывает Mdl обновляется адрес вторичного буфера. Начальный адрес дополнительного буфера в MDL должен выровнять страницу.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows Vista и Windows Server 2008.
целевая платформа Настольный
заголовка ntdddump.h (include Ntdddump.h)

См. также

Dump_Read

FILTER_EXTENSION

FILTER_INITIALIZATION_DATA