strip the whitespace one more time
Modified: trunk/reactos/ntoskrnl/io/file.c
_____
Modified: trunk/reactos/ntoskrnl/io/file.c
--- trunk/reactos/ntoskrnl/io/file.c 2005-05-09 11:02:48 UTC (rev
15184)
+++ trunk/reactos/ntoskrnl/io/file.c 2005-05-09 11:03:44 UTC (rev
15185)
@@ -3,7 +3,7 @@
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/io/file.c
* PURPOSE: I/O File Object & NT File Handle Access/Managment
of Files.
- *
+ *
* PROGRAMMERS: Alex Ionescu (alex(a)relsoft.net)
* David Welch (welch(a)mcmail.com)
*/
@@ -30,8 +30,8 @@
/* INTERNAL FUNCTIONS
********************************************************/
-static
-NTSTATUS
+static
+NTSTATUS
STDCALL
IopLockFileCompletionRoutine(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@@ -45,16 +45,16 @@
/*
* NAME INTERNAL
* IopCreateFile
- *
+ *
* DESCRIPTION
- *
+ *
* ARGUMENTS
- *
+ *
* RETURN VALUE
*
* REVISIONS
*/
-NTSTATUS
+NTSTATUS
STDCALL
IopCreateFile(PVOID ObjectBody,
PVOID Parent,
@@ -180,7 +180,7 @@
return(STATUS_SUCCESS);
}
-VOID
+VOID
STDCALL
IopDeleteFile(PVOID ObjectBody)
{
@@ -190,11 +190,11 @@
NTSTATUS Status;
KEVENT Event;
PDEVICE_OBJECT DeviceObject;
-
+
DPRINT("IopDeleteFile()\n");
if (FileObject->DeviceObject)
- {
+ {
/* Check if this is a direct open or not */
if (FileObject->Flags & FO_DIRECT_DEVICE_OPEN)
{
@@ -204,46 +204,46 @@
{
DeviceObject = IoGetRelatedDeviceObject(FileObject);
}
-
+
/* Clear and set up Events */
KeClearEvent(&FileObject->Event);
KeInitializeEvent(&Event, SynchronizationEvent, FALSE);
-
+
/* Allocate an IRP */
Irp = IoAllocateIrp(DeviceObject->StackSize, TRUE);
-
+
/* Set it up */
Irp->UserEvent = &Event;
Irp->UserIosb = &Irp->IoStatus;
Irp->Tail.Overlay.Thread = PsGetCurrentThread();
Irp->Tail.Overlay.OriginalFileObject = FileObject;
Irp->Flags = IRP_CLOSE_OPERATION | IRP_SYNCHRONOUS_API;
-
+
/* Set up Stack Pointer Data */
StackPtr = IoGetNextIrpStackLocation(Irp);
StackPtr->MajorFunction = IRP_MJ_CLOSE;
StackPtr->DeviceObject = DeviceObject;
StackPtr->FileObject = FileObject;
-
+
/* Call the FS Driver */
Status = IoCallDriver(DeviceObject, Irp);
-
+
/* Wait for completion */
if (Status == STATUS_PENDING)
{
KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE,
NULL);
}
IoFreeIrp(Irp);
-
+
}
- /* Clear the file name */
+ /* Clear the file name */
if (FileObject->FileName.Buffer)
{
ExFreePool(FileObject->FileName.Buffer);
FileObject->FileName.Buffer = NULL;
}
-
+
/* Free the completion context */
if (FileObject->CompletionContext)
{
@@ -292,7 +292,7 @@
/* Get the Device Object */
DPRINT1("here\n");
DeviceObject =
IoGetAttachedDevice(FileObject->DeviceObject);
-
+
/* Assign the Security Descriptor */
DeviceObject->SecurityDescriptor = SecurityDescriptor;
}
@@ -302,7 +302,7 @@
{
MajorFunction = IRP_MJ_SET_SECURITY;
DPRINT("Set security descriptor\n");
-
+
/* If this is a direct open, we can set it */
if (FileObject->Flags & FO_DIRECT_DEVICE_OPEN)
{
@@ -310,11 +310,11 @@
return STATUS_SUCCESS;
}
}
-
+
/* Get the Device Object */
DPRINT1("FileObject: %p\n", FileObject);
DeviceObject = IoGetRelatedDeviceObject(FileObject);
-
+
/* Check if we should use Sync IO or not */
if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
@@ -327,10 +327,10 @@
KeInitializeEvent(&Event, SynchronizationEvent, FALSE);
LocalEvent = TRUE;
}
-
+
/* Allocate the IRP */
Irp = IoAllocateIrp(DeviceObject->StackSize, TRUE);
-
+
/* Set the IRP */
Irp->Tail.Overlay.OriginalFileObject = FileObject;
Irp->RequestorMode = ExGetPreviousMode();
@@ -338,7 +338,7 @@
Irp->UserEvent = (LocalEvent) ? &Event : NULL;
Irp->Flags = (LocalEvent) ? IRP_SYNCHRONOUS_API : 0;
Irp->Tail.Overlay.Thread = PsGetCurrentThread();
-
+
/* Set Stack Parameters */
StackPtr = IoGetNextIrpStackLocation(Irp);
StackPtr->FileObject = FileObject;
@@ -355,32 +355,32 @@
StackPtr->Parameters.SetSecurity.SecurityInformation =
SecurityInformation;
StackPtr->Parameters.SetSecurity.SecurityDescriptor =
SecurityDescriptor;
}
-
+
/* Call the Driver */
Status = IoCallDriver(FileObject->DeviceObject, Irp);
-
+
if (Status == STATUS_PENDING)
{
if (LocalEvent)
{
- KeWaitForSingleObject(&Event,
- Executive,
- KernelMode,
- FileObject->Flags & FO_ALERTABLE_IO,
+ KeWaitForSingleObject(&Event,
+ Executive,
+ KernelMode,
+ FileObject->Flags & FO_ALERTABLE_IO,
NULL);
Status = IoStatusBlock.Status;
}
else
{
KeWaitForSingleObject(&FileObject->Event,
- Executive,
- KernelMode,
- FileObject->Flags & FO_ALERTABLE_IO,
+ Executive,
+ KernelMode,
+ FileObject->Flags & FO_ALERTABLE_IO,
NULL);
Status = FileObject->FinalStatus;
}
}
-
+
/* This Driver doesn't implement Security, so try to give it a
default */
if (Status == STATUS_INVALID_DEVICE_REQUEST)
{
@@ -472,7 +472,7 @@
return Status;
}
-VOID
+VOID
STDCALL
IopCloseFile(PVOID ObjectBody,
ULONG HandleCount)
@@ -483,9 +483,9 @@
PIO_STACK_LOCATION StackPtr;
NTSTATUS Status;
PDEVICE_OBJECT DeviceObject;
-
+
DPRINT("IopCloseFile()\n");
-
+
if (HandleCount > 1 || FileObject->DeviceObject == NULL) return;
/* Check if this is a direct open or not */
@@ -497,29 +497,29 @@
{
DeviceObject = IoGetRelatedDeviceObject(FileObject);
}
-
+
/* Clear and set up Events */
KeClearEvent(&FileObject->Event);
KeInitializeEvent(&Event, SynchronizationEvent, FALSE);
-
+
/* Allocate an IRP */
Irp = IoAllocateIrp(DeviceObject->StackSize, TRUE);
-
+
/* Set it up */
Irp->UserEvent = &Event;
Irp->UserIosb = &Irp->IoStatus;
Irp->Tail.Overlay.Thread = PsGetCurrentThread();
Irp->Tail.Overlay.OriginalFileObject = FileObject;
Irp->Flags = IRP_CLOSE_OPERATION | IRP_SYNCHRONOUS_API;
-
+
/* Set up Stack Pointer Data */
StackPtr = IoGetNextIrpStackLocation(Irp);
StackPtr->MajorFunction = IRP_MJ_CLEANUP;
StackPtr->FileObject = FileObject;
-
+
/* Call the FS Driver */
Status = IoCallDriver(DeviceObject, Irp);
-
+
/* Wait for completion */
if (Status == STATUS_PENDING)
{
@@ -559,60 +559,60 @@
/*
* NAME EXPORTED
* IoCreateFile@56
- *
+ *
* DESCRIPTION
* Either causes a new file or directory to be created, or it
* opens an existing file, device, directory or volume, giving
* the caller a handle for the file object. This handle can be
* used by subsequent calls to manipulate data within the file
* or the file object's state of attributes.
- *
+ *
* ARGUMENTS
* FileHandle (OUT)
* Points to a variable which receives the file handle
* on return;
- *
+ *
* DesiredAccess
* Desired access to the file;
- *
+ *
* ObjectAttributes
* Structure describing the file;
- *
+ *
* IoStatusBlock (OUT)
* Receives information about the operation on return;
- *
+ *
* AllocationSize [OPTIONAL]
* Initial size of the file in bytes;
- *
+ *
* FileAttributes
* Attributes to create the file with;
- *
+ *
* ShareAccess
* Type of shared access the caller would like to the
* file;
- *
+ *
* CreateDisposition
* Specifies what to do, depending on whether the
* file already exists;
- *
+ *
* CreateOptions
* Options for creating a new file;
- *
+ *
* EaBuffer [OPTIONAL]
* Undocumented;
- *
+ *
* EaLength
* Undocumented;
- *
+ *
* CreateFileType
* Type of file (normal, named pipe, mailslot) to create;
- *
+ *
* ExtraCreateParameters [OPTIONAL]
* Additional creation data for named pipe and mailsots;
- *
+ *
* Options
* Undocumented.
- *
+ *
* RETURN VALUE
* Status
*
@@ -620,12 +620,12 @@
* Prototype taken from Bo Branten's ntifs.h v15.
* Description taken from old NtCreateFile's which is
* now a wrapper of this call.
- *
+ *
* REVISIONS
- *
+ *
* @implemented
*/
-NTSTATUS
+NTSTATUS
STDCALL
IoCreateFile(OUT PHANDLE FileHandle,
IN ACCESS_MASK DesiredAccess,
@@ -653,12 +653,12 @@
LARGE_INTEGER SafeAllocationSize;
PVOID SystemEaBuffer = NULL;
NTSTATUS Status = STATUS_SUCCESS;
-
+
DPRINT("IoCreateFile(FileHandle %x, DesiredAccess %x, "
"ObjectAttributes %x ObjectAttributes->ObjectName->Buffer %S)\n",
FileHandle,DesiredAccess,ObjectAttributes,
ObjectAttributes->ObjectName->Buffer);
-
+
ASSERT_IRQL(PASSIVE_LEVEL);
if (IoStatusBlock == NULL || FileHandle == NULL)
@@ -670,7 +670,7 @@
AccessMode = KernelMode;
else
AccessMode = ExGetPreviousMode();
-
+
if(AccessMode != KernelMode)
{
_SEH_TRY
@@ -716,7 +716,7 @@
Status = _SEH_GetExceptionCode();
}
_SEH_END;
-
+
if(!NT_SUCCESS(Status))
{
return Status;
@@ -758,7 +758,7 @@
AccessMode,
(PVOID*)&DeviceObject,
NULL);
- ZwClose(LocalHandle);
+ ZwClose(LocalHandle);
if (!NT_SUCCESS(Status))
{
return Status;
@@ -792,9 +792,9 @@
return Status;
}
}
- RtlMapGenericMask(&DesiredAccess,
+ RtlMapGenericMask(&DesiredAccess,
BODY_TO_HEADER(FileObject)->ObjectType->Mapping);
-
+
Status = ObInsertObject ((PVOID)FileObject,
NULL,
DesiredAccess,
@@ -824,10 +824,10 @@
SecurityContext.AccessState = NULL; /* ?? */
SecurityContext.DesiredAccess = DesiredAccess;
SecurityContext.FullCreateOptions = 0; /* ?? */
-
+
KeInitializeEvent(&FileObject->Lock, SynchronizationEvent, TRUE);
KeInitializeEvent(&FileObject->Event, NotificationEvent, FALSE);
-
+
DPRINT("FileObject %x\n", FileObject);
DPRINT("FileObject->DeviceObject %x\n", FileObject->DeviceObject);
/*
@@ -851,7 +851,7 @@
Irp->Tail.Overlay.Thread = PsGetCurrentThread();
Irp->UserEvent = &FileObject->Event;
Irp->Overlay.AllocationSize = SafeAllocationSize;
-
+
/*
* Get the stack location for the new
* IRP and prepare it.
@@ -875,7 +875,7 @@
StackLoc->Parameters.Create.ShareAccess = (USHORT)ShareAccess;
StackLoc->Parameters.Create.EaLength = SystemEaBuffer != NULL ?
EaLength : 0;
break;
-
+
case CreateFileTypeNamedPipe:
StackLoc->MajorFunction = IRP_MJ_CREATE_NAMED_PIPE;
StackLoc->Parameters.CreatePipe.SecurityContext = &SecurityContext;
@@ -903,7 +903,7 @@
*/
Status = IofCallDriver(FileObject->DeviceObject, Irp );
DPRINT("Status :%x\n", Status);
-
+
if (Status == STATUS_PENDING)
{
KeWaitForSingleObject(&FileObject->Event,
@@ -976,34 +976,34 @@
/*
* NAME EXPORTED
* IoCreateStreamFileObject@8
- *
+ *
* DESCRIPTION
- *
+ *
* ARGUMENTS
* FileObject
* ?
- *
+ *
* DeviceObject
* ?
- *
+ *
* RETURN VALUE
*
* NOTE
- *
+ *
* REVISIONS
- *
+ *
* @implemented
*/
-PFILE_OBJECT
+PFILE_OBJECT
STDCALL
IoCreateStreamFileObject(PFILE_OBJECT FileObject,
PDEVICE_OBJECT DeviceObject)
{
PFILE_OBJECT CreatedFileObject;
NTSTATUS Status;
-
- /* FIXME: This function should call ObInsertObject. The "Lite"
version
- doesnt. This function is also called from IoCreateFile for some
+
+ /* FIXME: This function should call ObInsertObject. The "Lite"
version
+ doesnt. This function is also called from IoCreateFile for some
reason. These hacks need to be removed.
*/
@@ -1030,9 +1030,9 @@
/* Choose Device Object */
if (FileObject) DeviceObject = FileObject->DeviceObject;
DPRINT("DeviceObject %x\n", DeviceObject);
-
+
/* Set File Object Data */
- CreatedFileObject->DeviceObject = DeviceObject;
+ CreatedFileObject->DeviceObject = DeviceObject;
CreatedFileObject->Vpb = DeviceObject->Vpb;
CreatedFileObject->Type = IO_TYPE_FILE;
CreatedFileObject->Flags = FO_STREAM_FILE;
@@ -1072,7 +1072,7 @@
/*
* @implemented
*/
-PGENERIC_MAPPING
+PGENERIC_MAPPING
STDCALL
IoGetFileObjectGenericMapping(VOID)
{
@@ -1105,7 +1105,7 @@
/*
* @implemented
*/
-NTSTATUS
+NTSTATUS
STDCALL
IoQueryFileInformation(IN PFILE_OBJECT FileObject,
IN FILE_INFORMATION_CLASS FileInformationClass,
@@ -1120,20 +1120,20 @@
BOOLEAN LocalEvent = FALSE;
KEVENT Event;
NTSTATUS Status;
-
+
ASSERT(FileInformation != NULL);
-
+
Status = ObReferenceObjectByPointer(FileObject,
FILE_READ_ATTRIBUTES,
IoFileObjectType,
KernelMode);
if (!NT_SUCCESS(Status)) return(Status);
-
+
DPRINT("FileObject %x\n", FileObject);
-
+
/* Get the Device Object */
DeviceObject = IoGetRelatedDeviceObject(FileObject);
-
+
/* Check if we should use Sync IO or not */
if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
@@ -1146,10 +1146,10 @@
KeInitializeEvent(&Event, SynchronizationEvent, FALSE);
LocalEvent = TRUE;
}
-
+
/* Allocate the IRP */
Irp = IoAllocateIrp(DeviceObject->StackSize, TRUE);
-
+
/* Set the IRP */
Irp->Tail.Overlay.OriginalFileObject = FileObject;
Irp->RequestorMode = KernelMode;
@@ -1158,42 +1158,42 @@
Irp->UserEvent = (LocalEvent) ? &Event : NULL;
Irp->Flags = (LocalEvent) ? IRP_SYNCHRONOUS_API : 0;
Irp->Tail.Overlay.Thread = PsGetCurrentThread();
-
+
/* Set the Stack Data */
StackPtr = IoGetNextIrpStackLocation(Irp);
- StackPtr->MajorFunction = IRP_MJ_QUERY_INFORMATION;
+ StackPtr->MajorFunction = IRP_MJ_QUERY_INFORMATION;
StackPtr->FileObject = FileObject;
-
+
/* Set Parameters */
StackPtr->Parameters.QueryFile.FileInformationClass =
FileInformationClass;
StackPtr->Parameters.QueryFile.Length = Length;
-
+
/* Call the Driver */
Status = IoCallDriver(FileObject->DeviceObject, Irp);
-
+
if (Status == STATUS_PENDING)
{
if (LocalEvent)
{
- KeWaitForSingleObject(&Event,
- Executive,
- KernelMode,
- FileObject->Flags & FO_ALERTABLE_IO,
+ KeWaitForSingleObject(&Event,
+ Executive,
+ KernelMode,
+ FileObject->Flags & FO_ALERTABLE_IO,
NULL);
Status = IoStatusBlock.Status;
}
else
{
KeWaitForSingleObject(&FileObject->Event,
- Executive,
- KernelMode,
- FileObject->Flags & FO_ALERTABLE_IO,
+ Executive,
+ KernelMode,
+ FileObject->Flags & FO_ALERTABLE_IO,
NULL);
Status = FileObject->FinalStatus;
}
}
-
-
+
+
/* Return the Length and Status. ReturnedLength is NOT optional */
*ReturnedLength = IoStatusBlock.Information;
return Status;
@@ -1214,7 +1214,7 @@
/**
* @name NtCancelIoFile
*
- * Cancel all pending I/O operations in the current thread for
specified
+ * Cancel all pending I/O operations in the current thread for
specified
* file object.
*
* @param FileHandle
@@ -1228,7 +1228,7 @@
*
* @implemented
*/
-NTSTATUS
+NTSTATUS
STDCALL
NtCancelIoFile(IN HANDLE FileHandle,
OUT PIO_STATUS_BLOCK IoStatusBlock)
@@ -1272,7 +1272,7 @@
/* Don't break here, we want to cancel all IRPs for the file
object. */
OurIrpsInList = TRUE;
}
- }
+ }
KfLowerIrql(OldIrql);
@@ -1328,14 +1328,14 @@
/*
* NAME EXPORTED
* NtCreateFile@44
- *
+ *
* DESCRIPTION
* Entry point to call IoCreateFile with
* default parameters.
*
* ARGUMENTS
* See IoCreateFile.
- *
+ *
* RETURN VALUE
* See IoCreateFile.
*
@@ -1345,7 +1345,7 @@
*
* @implemented
*/
-NTSTATUS
+NTSTATUS
STDCALL
NtCreateFile(PHANDLE FileHandle,
ACCESS_MASK DesiredAccess,
@@ -1388,19 +1388,19 @@
IN PLARGE_INTEGER TimeOut)
{
MAILSLOT_CREATE_PARAMETERS Buffer;
-
+
DPRINT("NtCreateMailslotFile(FileHandle %x, DesiredAccess %x, "
"ObjectAttributes %x ObjectAttributes->ObjectName->Buffer
%S)\n",
FileHandle,DesiredAccess,ObjectAttributes,
ObjectAttributes->ObjectName->Buffer);
PAGED_CODE();
-
+
/* Check for Timeout */
if (TimeOut)
{
/* Enable it */
Buffer.TimeoutSpecified = TRUE;
-
+
/* FIXME: Add SEH */
Buffer.ReadTimeout = *TimeOut;
}
@@ -1409,7 +1409,7 @@
/* No timeout */
Buffer.TimeoutSpecified = FALSE;
}
-
+
/* Set Settings */
Buffer.MailslotQuota = MailslotQuota;
Buffer.MaximumMessageSize = MaxMessageSize;
@@ -1461,7 +1461,7 @@
{
/* Enable it */
Buffer.TimeoutSpecified = TRUE;
-
+
/* FIXME: Add SEH */
Buffer.DefaultTimeout = *DefaultTimeout;
}
@@ -1470,7 +1470,7 @@
/* No timeout */
Buffer.TimeoutSpecified = FALSE;
}
-
+
/* Set Settings */
Buffer.NamedPipeType = NamedPipeType;
Buffer.ReadMode = ReadMode;
@@ -1499,9 +1499,9 @@
/*
* NAME EXPORTED
* NtDeleteFile@4
- *
+ *
* DESCRIPTION
- *
+ *
* ARGUMENTS
* ObjectAttributes
* ?
@@ -1509,10 +1509,10 @@
* RETURN VALUE
*
* REVISIONS
- *
+ *
* @unimplemented
*/
-NTSTATUS
+NTSTATUS
STDCALL
NtDeleteFile(IN POBJECT_ATTRIBUTES ObjectAttributes)
{
@@ -1532,10 +1532,10 @@
* FUNCTION: Flushes cached file data to disk
* ARGUMENTS:
* FileHandle = Points to the file
- * IoStatusBlock = Caller must supply storage to receive the result of
+ * IoStatusBlock = Caller must supply storage to receive the result of
* the flush buffers operation. The information
field is
* set to number of bytes flushed to disk.
- * RETURNS: Status
+ * RETURNS: Status
* REMARKS: This function maps to the win32 FlushFileBuffers
*/
NTSTATUS
@@ -1570,7 +1570,7 @@
{
DeviceObject = IoGetRelatedDeviceObject(FileObject);
}
-
+
/* Check if we should use Sync IO or not */
if (FileObject->Flags & FO_SYNCHRONOUS_IO)
{
@@ -1590,7 +1590,7 @@
ObDereferenceObject(FileObject);
return STATUS_INSUFFICIENT_RESOURCES;
}
-
+
/* Set up the IRP */
Irp->Flags = (LocalEvent) ? IRP_SYNCHRONOUS_API : 0;
Irp->RequestorMode = PreviousMode;
@@ -1603,26 +1603,26 @@
StackPtr = IoGetNextIrpStackLocation(Irp);
StackPtr->MajorFunction = IRP_MJ_FLUSH_BUFFERS;
StackPtr->FileObject = FileObject;
-
+
/* Call the Driver */
Status = IoCallDriver(DeviceObject, Irp);
if (Status == STATUS_PENDING)
{
if (LocalEvent)
{
- KeWaitForSingleObject(&Event,
- Executive,
- PreviousMode,
- FileObject->Flags & FO_ALERTABLE_IO,
+ KeWaitForSingleObject(&Event,
+ Executive,
+ PreviousMode,
+ FileObject->Flags & FO_ALERTABLE_IO,
NULL);
Status = IoStatusBlock->Status;
}
else
{
KeWaitForSingleObject(&FileObject->Event,
- Executive,
- PreviousMode,
- FileObject->Flags & FO_ALERTABLE_IO,
+ Executive,
+ PreviousMode,
+ FileObject->Flags & FO_ALERTABLE_IO,
NULL);
Status = FileObject->FinalStatus;
}
@@ -1638,9 +1638,9 @@
NTSTATUS
STDCALL
NtNotifyChangeDirectoryFile(IN HANDLE FileHandle,
- IN HANDLE Event OPTIONAL,
- IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
- IN PVOID ApcContext OPTIONAL,
+ IN HANDLE Event OPTIONAL,
+ IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
+ IN PVOID ApcContext OPTIONAL,
OUT PIO_STATUS_BLOCK IoStatusBlock,
OUT PVOID Buffer,
IN ULONG BufferSize,
@@ -1653,13 +1653,13 @@
PIO_STACK_LOCATION IoStack;
KPROCESSOR_MODE PreviousMode;
NTSTATUS Status = STATUS_SUCCESS;
-
+
DPRINT("NtNotifyChangeDirectoryFile()\n");
-
+
PAGED_CODE();
PreviousMode = ExGetPreviousMode();
-
+
if(PreviousMode != KernelMode)
{
_SEH_TRY
@@ -1679,7 +1679,7 @@
Status = _SEH_GetExceptionCode();
}
_SEH_END;
-
+
if(!NT_SUCCESS(Status))
{
return Status;
@@ -1693,18 +1693,18 @@
(PVOID *)&FileObject,
NULL);
if (Status != STATUS_SUCCESS) return(Status);
-
-
+
+
DeviceObject = FileObject->DeviceObject;
-
-
+
+
Irp = IoAllocateIrp(DeviceObject->StackSize, TRUE);
if (Irp==NULL)
{
ObDereferenceObject(FileObject);
return STATUS_UNSUCCESSFUL;
}
-
+
if (Event == NULL)
{
Event = &FileObject->Event;
@@ -1720,16 +1720,16 @@
Irp->UserBuffer = Buffer;
Irp->Overlay.AsynchronousParameters.UserApcRoutine = ApcRoutine;
Irp->Overlay.AsynchronousParameters.UserApcContext = ApcContext;
-
+
IoStack = IoGetNextIrpStackLocation(Irp);
-
+
IoStack->MajorFunction = IRP_MJ_DIRECTORY_CONTROL;
IoStack->MinorFunction = IRP_MN_NOTIFY_CHANGE_DIRECTORY;
IoStack->Flags = 0;
IoStack->Control = 0;
IoStack->DeviceObject = DeviceObject;
IoStack->FileObject = FileObject;
-
+
if (WatchTree)
{
IoStack->Flags = SL_WATCH_TREE;
@@ -1737,7 +1737,7 @@
IoStack->Parameters.NotifyDirectory.CompletionFilter =
CompletionFilter;
IoStack->Parameters.NotifyDirectory.Length = BufferSize;
-
+
Status = IoCallDriver(FileObject->DeviceObject,Irp);
/* FIXME: Should we wait here or not for synchronously opened files?
*/
@@ -1908,39 +1908,39 @@
/*
* NAME EXPORTED
* NtOpenFile@24
- *
+ *
* DESCRIPTION
* Opens an existing file (simpler than NtCreateFile).
*
* ARGUMENTS
* FileHandle (OUT)
* Variable that receives the file handle on return;
- *
+ *
* DesiredAccess
* Access desired by the caller to the file;
- *
+ *
* ObjectAttributes
* Structue describing the file to be opened;
- *
+ *
* IoStatusBlock (OUT)
* Receives details about the result of the
* operation;
- *
+ *
* ShareAccess
* Type of shared access the caller requires;
- *
+ *
* OpenOptions
* Options for the file open.
*
* RETURN VALUE
* Status.
- *
+ *
* NOTE
* Undocumented.
*
* @implemented
*/
-NTSTATUS
+NTSTATUS
STDCALL
NtOpenFile(PHANDLE FileHandle,
ACCESS_MASK DesiredAccess,
@@ -1966,7 +1966,7 @@
0);
}
-NTSTATUS
+NTSTATUS
STDCALL
NtQueryAttributesFile(IN POBJECT_ATTRIBUTES ObjectAttributes,
OUT PFILE_BASIC_INFORMATION FileInformation)
@@ -2021,10 +2021,10 @@
* FileBothDirectoryInformation FILE_BOTH_DIR_INFORMATION
*
* Length = Size of the storage supplied
- * FileInformationClass = Indicates the type of information
requested.
- * ReturnSingleEntry = Specify true if caller only requests the first
+ * FileInformationClass = Indicates the type of information
requested.
+ * ReturnSingleEntry = Specify true if caller only requests the first
* directory found.
- * FileName = Initial directory name to query, that may contain wild
+ * FileName = Initial directory name to query, that may contain wild
* cards.
* RestartScan = Number of times the action should be repeated
* RETURNS: Status [ STATUS_SUCCESS, STATUS_ACCESS_DENIED,
STATUS_INSUFFICIENT_RESOURCES,
@@ -2032,7 +2032,7 @@
* STATUS_INVALID_INFO_CLASS, STATUS_NO_SUCH_FILE,
STATUS_NO_MORE_FILES ]
*/
NTSTATUS
-STDCALL
+STDCALL
NtQueryDirectoryFile(IN HANDLE FileHandle,
[truncated at 1000 lines; 431 more skipped]