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@relsoft.net) * David Welch (welch@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]