Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Следующий компонент объединения используется, когда поле MajorFunction структуры FLT_IO_PARAMETER_BLOCK для операции IRP_MJ_WRITE.
Синтаксис
typedef union _FLT_PARAMETERS {
... ;
struct {
ULONG Length;
ULONG Key;
LARGE_INTEGER ByteOffset;
PVOID WriteBuffer;
PMDL MdlAddress;
} Write;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
Члены
Запись: структура, содержащая следующие элементы.
Длина: длина( в байтах) записываемых данных.
Ключ: значение ключа, связанное с блокировкой диапазона байтов в целевом файле.
ByteOffset: начальная смещение байтов в файле записываемых данных.
WriteBuffer: указатель на буфер, содержащий данные для записи в файл. Этот элемент является необязательным и может иметь значение NULL, если MDL предоставляется в MdlAddress. См. примечания.
MdlAddress: адрес списка дескрипторов памяти (MDL), описывающий буфер, на который указывает член WriteBuffer . Этот элемент является необязательным и может иметь значение NULL , если буфер указан в WriteBuffer. См. примечания.
Замечания
Структура FLT_PARAMETERS для операций IRP_MJ_WRITE содержит параметры для операции записи, представленной структурой данных обратного вызова (FLT_CALLBACK_DATA). Он содержится в FLT_IO_PARAMETER_BLOCK структуре.
Если предоставляется буфер WriteBuffer и MdlAddress , рекомендуется использовать минифильтры MDL. Память, на которую указывает WriteBuffer , является допустимой, если он является адресом пользовательского режима, доступ к которому осуществляется в контексте вызывающего процесса, или если он является адресом режима ядра.
Если мини-фильтр изменяет значение MdlAddress, то после обратного вызова после операции диспетчер фильтров освобождает MDL, хранящийся в MdlAddress , и восстановит предыдущее значение MdlAddress.
Если бит IRP_MN_COMPLETE задан в Iopb-MinorFunction>, то MdlAddress — это адрес для отправки в CcMdlReadComplete.
Если IRP_MN_MDL бит (и не IRP_MN_COMPLETE бит) задан в Iopb-MinorFunction>, то MdlAddress — это адрес для отправки в CcPrepareMdlWrite.
IRP_MJ_WRITE может быть операцией на основе IRP или быстрой операцией ввода-вывода.
Требования
| Тип требования | Требование |
|---|---|
| Заголовок | Fltkernel.h (include Fltkernel.h) |