FLT_PARAMETERS для объединения IRP_MJ_RELEASE_FOR_MOD_WRITE
Следующий компонент объединения используется, когда поле MajorFunctionструктуры FLT_IO_PARAMETER_BLOCK для операции IRP_MJ_RELEASE_FOR_MOD_WRITE.
Синтаксис
typedef union _FLT_PARAMETERS {
... ;
struct {
PERESOURCE ResourceToRelease;
} ReleaseForModifiedPageWriter;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
Члены
ReleaseForModifiedPageWriter: структура, содержащая следующие элементы.
ResourceToRelease: указатель на ресурс, который требуется освободить.
Комментарии
Структура FLT_PARAMETERS для IRP_MJ_RELEASE_FOR_MOD_WRITE операций содержит параметры операции ReleaseForModifiedPageWriter , представленные структурой данных обратного вызова (FLT_CALLBACK_DATA). Он содержится в FLT_IO_PARAMETER_BLOCK структуре.
IRP_MJ_RELEASE_FOR_MOD_WRITE — это операция обратного вызова файловой системы (FSFilter).
IRP_MJ_RELEASE_FOR_MOD_WRITE обычно вызывается из измененного модуля записи страницы в составе специального ядра APC. Он всегда выполняется в irQL = APC_LEVEL. Так как он может вызываться в контексте специального ядра APC, он может вытеснять код в режиме ядра, который выполняется в IRQL = PASSIVE_LEVEL, включая как пользовательские APC, так и обычные APC ядра. Поэтому будьте внимательны при ожидании ресурсов, которые могут находиться в потоке, который IRP_MJ_RELEASE_FOR_MODE_WRITE операция могла вытеснеть. Попытка ожидания таких ресурсов может привести к взаимоблокировке.
Дополнительные сведения об операциях обратного вызова FSFilter см. в справочной записи для FsRtlRegisterFileSystemFilterCallbacks.
Требования
Тип требования | Требование |
---|---|
Заголовок | Fltkernel.h (включая Fltkernel.h) |