mirror of
https://github.com/reactos/reactos.git
synced 2024-12-29 10:35:28 +00:00
[NTFS]
Handle the file query information IRP major with the dispatch routine svn path=/trunk/; revision=67540
This commit is contained in:
parent
7a305fc01f
commit
0a02a6e9b7
5 changed files with 16 additions and 12 deletions
|
@ -68,6 +68,10 @@ NtfsFsdDispatch(PDEVICE_OBJECT DeviceObject,
|
||||||
case IRP_MJ_SET_VOLUME_INFORMATION:
|
case IRP_MJ_SET_VOLUME_INFORMATION:
|
||||||
Status = NtfsSetVolumeInformation(IrpContext);
|
Status = NtfsSetVolumeInformation(IrpContext);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case IRP_MJ_QUERY_INFORMATION:
|
||||||
|
Status = NtfsQueryInformation(IrpContext);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -222,9 +222,7 @@ NtfsGetNetworkOpenInformation(PNTFS_FCB Fcb,
|
||||||
* FUNCTION: Retrieve the specified file information
|
* FUNCTION: Retrieve the specified file information
|
||||||
*/
|
*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NtfsQueryInformation(PNTFS_IRP_CONTEXT IrpContext)
|
||||||
NtfsFsdQueryInformation(PDEVICE_OBJECT DeviceObject,
|
|
||||||
PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FILE_INFORMATION_CLASS FileInformationClass;
|
FILE_INFORMATION_CLASS FileInformationClass;
|
||||||
PIO_STACK_LOCATION Stack;
|
PIO_STACK_LOCATION Stack;
|
||||||
|
@ -232,13 +230,17 @@ NtfsFsdQueryInformation(PDEVICE_OBJECT DeviceObject,
|
||||||
PNTFS_FCB Fcb;
|
PNTFS_FCB Fcb;
|
||||||
PVOID SystemBuffer;
|
PVOID SystemBuffer;
|
||||||
ULONG BufferLength;
|
ULONG BufferLength;
|
||||||
|
PIRP Irp;
|
||||||
|
PDEVICE_OBJECT DeviceObject;
|
||||||
NTSTATUS Status = STATUS_SUCCESS;
|
NTSTATUS Status = STATUS_SUCCESS;
|
||||||
|
|
||||||
DPRINT1("NtfsQueryInformation(%p, %p)\n", DeviceObject, Irp);
|
DPRINT1("NtfsQueryInformation(%p)\n", IrpContext);
|
||||||
|
|
||||||
Stack = IoGetCurrentIrpStackLocation(Irp);
|
Irp = IrpContext->Irp;
|
||||||
|
Stack = IrpContext->Stack;
|
||||||
|
DeviceObject = IrpContext->DeviceObject;
|
||||||
FileInformationClass = Stack->Parameters.QueryFile.FileInformationClass;
|
FileInformationClass = Stack->Parameters.QueryFile.FileInformationClass;
|
||||||
FileObject = Stack->FileObject;
|
FileObject = IrpContext->FileObject;
|
||||||
Fcb = FileObject->FsContext;
|
Fcb = FileObject->FsContext;
|
||||||
|
|
||||||
SystemBuffer = Irp->AssociatedIrp.SystemBuffer;
|
SystemBuffer = Irp->AssociatedIrp.SystemBuffer;
|
||||||
|
|
|
@ -123,7 +123,7 @@ NtfsInitializeFunctionPointers(PDRIVER_OBJECT DriverObject)
|
||||||
DriverObject->MajorFunction[IRP_MJ_CLOSE] = NtfsFsdClose;
|
DriverObject->MajorFunction[IRP_MJ_CLOSE] = NtfsFsdClose;
|
||||||
DriverObject->MajorFunction[IRP_MJ_READ] = NtfsFsdRead;
|
DriverObject->MajorFunction[IRP_MJ_READ] = NtfsFsdRead;
|
||||||
DriverObject->MajorFunction[IRP_MJ_WRITE] = NtfsFsdWrite;
|
DriverObject->MajorFunction[IRP_MJ_WRITE] = NtfsFsdWrite;
|
||||||
DriverObject->MajorFunction[IRP_MJ_QUERY_INFORMATION] = NtfsFsdQueryInformation;
|
DriverObject->MajorFunction[IRP_MJ_QUERY_INFORMATION] = NtfsFsdDispatch;
|
||||||
DriverObject->MajorFunction[IRP_MJ_QUERY_VOLUME_INFORMATION] = NtfsFsdDispatch;
|
DriverObject->MajorFunction[IRP_MJ_QUERY_VOLUME_INFORMATION] = NtfsFsdDispatch;
|
||||||
DriverObject->MajorFunction[IRP_MJ_SET_VOLUME_INFORMATION] = NtfsFsdDispatch;
|
DriverObject->MajorFunction[IRP_MJ_SET_VOLUME_INFORMATION] = NtfsFsdDispatch;
|
||||||
DriverObject->MajorFunction[IRP_MJ_DIRECTORY_CONTROL] = NtfsFsdDirectoryControl;
|
DriverObject->MajorFunction[IRP_MJ_DIRECTORY_CONTROL] = NtfsFsdDirectoryControl;
|
||||||
|
|
|
@ -642,10 +642,8 @@ NtfsReadFCBAttribute(PNTFS_VCB Vcb,
|
||||||
|
|
||||||
/* finfo.c */
|
/* finfo.c */
|
||||||
|
|
||||||
DRIVER_DISPATCH NtfsFsdQueryInformation;
|
NTSTATUS
|
||||||
NTSTATUS NTAPI
|
NtfsQueryInformation(PNTFS_IRP_CONTEXT IrpContext);
|
||||||
NtfsFsdQueryInformation(PDEVICE_OBJECT DeviceObject,
|
|
||||||
PIRP Irp);
|
|
||||||
|
|
||||||
|
|
||||||
/* fsctl.c */
|
/* fsctl.c */
|
||||||
|
|
|
@ -253,7 +253,7 @@ NtfsQueryVolumeInformation(PNTFS_IRP_CONTEXT IrpContext)
|
||||||
|
|
||||||
Irp = IrpContext->Irp;
|
Irp = IrpContext->Irp;
|
||||||
DeviceObject = IrpContext->DeviceObject;
|
DeviceObject = IrpContext->DeviceObject;
|
||||||
Stack = IoGetCurrentIrpStackLocation(Irp);
|
Stack = IrpContext->Stack;
|
||||||
FsInformationClass = Stack->Parameters.QueryVolume.FsInformationClass;
|
FsInformationClass = Stack->Parameters.QueryVolume.FsInformationClass;
|
||||||
BufferLength = Stack->Parameters.QueryVolume.Length;
|
BufferLength = Stack->Parameters.QueryVolume.Length;
|
||||||
SystemBuffer = Irp->AssociatedIrp.SystemBuffer;
|
SystemBuffer = Irp->AssociatedIrp.SystemBuffer;
|
||||||
|
|
Loading…
Reference in a new issue