sys: FspOplockBreakH

This commit is contained in:
Bill Zissimopoulos 2016-11-10 12:29:11 -08:00
parent 2267eadbca
commit bc8962d2b6
2 changed files with 48 additions and 3 deletions

View File

@ -514,11 +514,13 @@ NTSTATUS FspNotifyFullReportChange(
ULONG FilterMatch, ULONG FilterMatch,
ULONG Action, ULONG Action,
PVOID TargetContext); PVOID TargetContext);
NTSTATUS FspOplockFsctrlF( NTSTATUS FspOplockBreakH(
POPLOCK Oplock, POPLOCK Oplock,
PIRP Irp, PIRP Irp,
ULONG OpenCount, ULONG Flags,
BOOLEAN Create); PVOID Context,
POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
POPLOCK_FS_PREPOST_IRP PostIrpRoutine);
NTSTATUS FspCheckOplock( NTSTATUS FspCheckOplock(
POPLOCK Oplock, POPLOCK Oplock,
PIRP Irp, PIRP Irp,
@ -532,6 +534,11 @@ NTSTATUS FspCheckOplockEx(
PVOID Context, PVOID Context,
POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine, POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
POPLOCK_FS_PREPOST_IRP PostIrpRoutine); POPLOCK_FS_PREPOST_IRP PostIrpRoutine);
NTSTATUS FspOplockFsctrlF(
POPLOCK Oplock,
PIRP Irp,
ULONG OpenCount,
BOOLEAN Create);
#define FspNotifyUninitializeSync(NS)\ #define FspNotifyUninitializeSync(NS)\
FsRtlNotifyUninitializeSync(NS) FsRtlNotifyUninitializeSync(NS)
#define FspNotifyCleanupAll(NS, NL)\ #define FspNotifyCleanupAll(NS, NL)\

View File

@ -67,6 +67,13 @@ NTSTATUS FspNotifyFullReportChange(
ULONG FilterMatch, ULONG FilterMatch,
ULONG Action, ULONG Action,
PVOID TargetContext); PVOID TargetContext);
NTSTATUS FspOplockBreakH(
POPLOCK Oplock,
PIRP Irp,
ULONG Flags,
PVOID Context,
POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
POPLOCK_FS_PREPOST_IRP PostIrpRoutine);
NTSTATUS FspCheckOplock( NTSTATUS FspCheckOplock(
POPLOCK Oplock, POPLOCK Oplock,
PIRP Irp, PIRP Irp,
@ -122,6 +129,7 @@ NTSTATUS FspIrpHookNext(PDEVICE_OBJECT DeviceObject, PIRP Irp, PVOID Context);
#pragma alloc_text(PAGE, FspNotifyInitializeSync) #pragma alloc_text(PAGE, FspNotifyInitializeSync)
#pragma alloc_text(PAGE, FspNotifyFullChangeDirectory) #pragma alloc_text(PAGE, FspNotifyFullChangeDirectory)
#pragma alloc_text(PAGE, FspNotifyFullReportChange) #pragma alloc_text(PAGE, FspNotifyFullReportChange)
#pragma alloc_text(PAGE, FspOplockBreakH)
#pragma alloc_text(PAGE, FspCheckOplock) #pragma alloc_text(PAGE, FspCheckOplock)
#pragma alloc_text(PAGE, FspCheckOplockEx) #pragma alloc_text(PAGE, FspCheckOplockEx)
#pragma alloc_text(PAGE, FspOplockFsctrlF) #pragma alloc_text(PAGE, FspOplockFsctrlF)
@ -661,6 +669,36 @@ NTSTATUS FspNotifyFullReportChange(
return Result; return Result;
} }
NTSTATUS FspOplockBreakH(
POPLOCK Oplock,
PIRP Irp,
ULONG Flags,
PVOID Context,
POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
POPLOCK_FS_PREPOST_IRP PostIrpRoutine)
{
PAGED_CODE();
NTSTATUS Result;
try
{
Result = FspOplockBreakH(
Oplock,
Irp,
Flags,
Context,
CompletionRoutine,
PostIrpRoutine);
}
except (EXCEPTION_EXECUTE_HANDLER)
{
Result = GetExceptionCode();
}
return Result;
}
NTSTATUS FspCheckOplock( NTSTATUS FspCheckOplock(
POPLOCK Oplock, POPLOCK Oplock,
PIRP Irp, PIRP Irp,