sys: FspSendSetInformationIrp: add DeviceObject parameter to bypass filter devices

This commit is contained in:
Bill Zissimopoulos 2016-03-15 23:59:01 -07:00
parent 12463043e4
commit a5765defd3
3 changed files with 7 additions and 7 deletions

View File

@ -389,7 +389,7 @@ PVOID FspAllocateIrpMustSucceed(CCHAR StackSize);
BOOLEAN FspUnicodePathIsValid(PUNICODE_STRING Path, BOOLEAN AllowStreams);
VOID FspUnicodePathSuffix(PUNICODE_STRING Path, PUNICODE_STRING Remain, PUNICODE_STRING Suffix);
NTSTATUS FspCreateGuid(GUID *Guid);
NTSTATUS FspSendSetInformationIrp(PFILE_OBJECT FileObject,
NTSTATUS FspSendSetInformationIrp(PDEVICE_OBJECT DeviceObject, PFILE_OBJECT FileObject,
FILE_INFORMATION_CLASS FileInformationClass, PVOID FileInformation, ULONG Length);
NTSTATUS FspLockUserBuffer(PVOID UserBuffer, ULONG Length,
KPROCESSOR_MODE RequestorMode, LOCK_OPERATION Operation, PMDL *PMdl);

View File

@ -9,7 +9,7 @@
BOOLEAN FspUnicodePathIsValid(PUNICODE_STRING Path, BOOLEAN AllowStreams);
VOID FspUnicodePathSuffix(PUNICODE_STRING Path, PUNICODE_STRING Remain, PUNICODE_STRING Suffix);
NTSTATUS FspCreateGuid(GUID *Guid);
NTSTATUS FspSendSetInformationIrp(PFILE_OBJECT FileObject,
NTSTATUS FspSendSetInformationIrp(PDEVICE_OBJECT DeviceObject, PFILE_OBJECT FileObject,
FILE_INFORMATION_CLASS FileInformationClass, PVOID FileInformation, ULONG Length);
static NTSTATUS FspSendSetInformationIrpCompletion(
PDEVICE_OBJECT DeviceObject, PIRP Irp, PVOID Context0);
@ -196,7 +196,7 @@ typedef struct
KEVENT Event;
} FSP_SEND_SET_INFORMATION_IRP_CONTEXT;
NTSTATUS FspSendSetInformationIrp(PFILE_OBJECT FileObject,
NTSTATUS FspSendSetInformationIrp(PDEVICE_OBJECT DeviceObject, PFILE_OBJECT FileObject,
FILE_INFORMATION_CLASS FileInformationClass, PVOID FileInformation, ULONG Length)
{
PAGED_CODE();
@ -206,12 +206,12 @@ NTSTATUS FspSendSetInformationIrp(PFILE_OBJECT FileObject,
FileEndOfFileInformation == FileInformationClass);
NTSTATUS Result;
PDEVICE_OBJECT DeviceObject;
PIRP Irp;
PIO_STACK_LOCATION IrpSp;
FSP_SEND_SET_INFORMATION_IRP_CONTEXT Context;
DeviceObject = IoGetRelatedDeviceObject(FileObject);
if (0 == DeviceObject)
DeviceObject = IoGetRelatedDeviceObject(FileObject);
Irp = IoAllocateIrp(DeviceObject->StackSize, FALSE);
if (0 == Irp)

View File

@ -169,8 +169,8 @@ static NTSTATUS FspFsvolWriteCached(
ASSERT(CanWait);
EndOfFileInformation.EndOfFile.QuadPart = WriteEndOffset;
Result = FspSendSetInformationIrp(FileObject, FileEndOfFileInformation,
&EndOfFileInformation, sizeof EndOfFileInformation);
Result = FspSendSetInformationIrp(FsvolDeviceObject/* bypass filters */, FileObject,
FileEndOfFileInformation, &EndOfFileInformation, sizeof EndOfFileInformation);
if (!NT_SUCCESS(Result))
{
FspFileNodeRelease(FileNode, Main);