Fixed synchronous file access.

svn path=/trunk/; revision=6575
This commit is contained in:
Eric Kohl 2003-11-08 09:13:46 +00:00
parent 5533bbd42a
commit c2c2d6cb46
5 changed files with 41 additions and 65 deletions

View file

@ -481,7 +481,7 @@ SaveCurrentBootSector(PWSTR RootPath,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
0, 0,
FILE_SYNCHRONOUS_IO_ALERT); FILE_SYNCHRONOUS_IO_NONALERT);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
RtlFreeHeap(ProcessHeap, 0, BootSector); RtlFreeHeap(ProcessHeap, 0, BootSector);
@ -522,7 +522,7 @@ SaveCurrentBootSector(PWSTR RootPath,
FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_NORMAL,
0, 0,
FILE_SUPERSEDE, FILE_SUPERSEDE,
FILE_SYNCHRONOUS_IO_ALERT | FILE_SEQUENTIAL_ONLY, FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY,
NULL, NULL,
0); 0);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
@ -584,7 +584,7 @@ InstallFat16BootCodeToFile(PWSTR SrcPath,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
0, 0,
FILE_SYNCHRONOUS_IO_ALERT); FILE_SYNCHRONOUS_IO_NONALERT);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
RtlFreeHeap(ProcessHeap, 0, OrigBootSector); RtlFreeHeap(ProcessHeap, 0, OrigBootSector);
@ -633,7 +633,7 @@ InstallFat16BootCodeToFile(PWSTR SrcPath,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
0, 0,
FILE_SYNCHRONOUS_IO_ALERT); FILE_SYNCHRONOUS_IO_NONALERT);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
RtlFreeHeap(ProcessHeap, 0, OrigBootSector); RtlFreeHeap(ProcessHeap, 0, OrigBootSector);
@ -682,7 +682,7 @@ InstallFat16BootCodeToFile(PWSTR SrcPath,
FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_NORMAL,
0, 0,
FILE_OVERWRITE_IF, FILE_OVERWRITE_IF,
FILE_SYNCHRONOUS_IO_ALERT | FILE_SEQUENTIAL_ONLY, FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY,
NULL, NULL,
0); 0);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
@ -748,7 +748,7 @@ InstallFat32BootCodeToFile(PWSTR SrcPath,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
0, 0,
FILE_SYNCHRONOUS_IO_ALERT); FILE_SYNCHRONOUS_IO_NONALERT);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
RtlFreeHeap(ProcessHeap, 0, OrigBootSector); RtlFreeHeap(ProcessHeap, 0, OrigBootSector);
@ -797,7 +797,7 @@ CHECKPOINT1;
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
0, 0,
FILE_SYNCHRONOUS_IO_ALERT); FILE_SYNCHRONOUS_IO_NONALERT);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
RtlFreeHeap(ProcessHeap, 0, OrigBootSector); RtlFreeHeap(ProcessHeap, 0, OrigBootSector);
@ -852,7 +852,7 @@ CHECKPOINT1;
FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_NORMAL,
0, 0,
FILE_SUPERSEDE, FILE_SUPERSEDE,
FILE_SYNCHRONOUS_IO_ALERT | FILE_SEQUENTIAL_ONLY, FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY,
NULL, NULL,
0); 0);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
@ -892,7 +892,7 @@ CHECKPOINT1;
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
0, 0,
FILE_SYNCHRONOUS_IO_ALERT); FILE_SYNCHRONOUS_IO_NONALERT);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
RtlFreeHeap(ProcessHeap, 0, NewBootSector); RtlFreeHeap(ProcessHeap, 0, NewBootSector);
@ -955,7 +955,7 @@ InstallMbrBootCodeToDisk (PWSTR SrcPath,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
0, 0,
FILE_SYNCHRONOUS_IO_ALERT); FILE_SYNCHRONOUS_IO_NONALERT);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
RtlFreeHeap(ProcessHeap, 0, OrigBootSector); RtlFreeHeap(ProcessHeap, 0, OrigBootSector);
@ -1004,7 +1004,7 @@ InstallMbrBootCodeToDisk (PWSTR SrcPath,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
0, 0,
FILE_SYNCHRONOUS_IO_ALERT); FILE_SYNCHRONOUS_IO_NONALERT);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
RtlFreeHeap(ProcessHeap, 0, OrigBootSector); RtlFreeHeap(ProcessHeap, 0, OrigBootSector);
@ -1055,7 +1055,7 @@ InstallMbrBootCodeToDisk (PWSTR SrcPath,
FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_NORMAL,
0, 0,
FILE_OVERWRITE_IF, FILE_OVERWRITE_IF,
FILE_SYNCHRONOUS_IO_ALERT | FILE_SEQUENTIAL_ONLY, FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY,
NULL, NULL,
0); 0);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
@ -1116,7 +1116,7 @@ InstallFat16BootCodeToDisk(PWSTR SrcPath,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
0, 0,
FILE_SYNCHRONOUS_IO_ALERT); FILE_SYNCHRONOUS_IO_NONALERT);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
RtlFreeHeap(ProcessHeap, 0, OrigBootSector); RtlFreeHeap(ProcessHeap, 0, OrigBootSector);
@ -1165,7 +1165,7 @@ InstallFat16BootCodeToDisk(PWSTR SrcPath,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
0, 0,
FILE_SYNCHRONOUS_IO_ALERT); FILE_SYNCHRONOUS_IO_NONALERT);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
RtlFreeHeap(ProcessHeap, 0, OrigBootSector); RtlFreeHeap(ProcessHeap, 0, OrigBootSector);
@ -1216,7 +1216,7 @@ InstallFat16BootCodeToDisk(PWSTR SrcPath,
FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_NORMAL,
0, 0,
FILE_OVERWRITE_IF, FILE_OVERWRITE_IF,
FILE_SYNCHRONOUS_IO_ALERT | FILE_SEQUENTIAL_ONLY, FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY,
NULL, NULL,
0); 0);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
@ -1282,7 +1282,7 @@ InstallFat32BootCodeToDisk(PWSTR SrcPath,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
0, 0,
FILE_SYNCHRONOUS_IO_ALERT); FILE_SYNCHRONOUS_IO_NONALERT);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
RtlFreeHeap(ProcessHeap, 0, OrigBootSector); RtlFreeHeap(ProcessHeap, 0, OrigBootSector);
@ -1331,7 +1331,7 @@ InstallFat32BootCodeToDisk(PWSTR SrcPath,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
0, 0,
FILE_SYNCHRONOUS_IO_ALERT); FILE_SYNCHRONOUS_IO_NONALERT);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
RtlFreeHeap(ProcessHeap, 0, OrigBootSector); RtlFreeHeap(ProcessHeap, 0, OrigBootSector);
@ -1382,7 +1382,7 @@ InstallFat32BootCodeToDisk(PWSTR SrcPath,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
0, 0,
FILE_SYNCHRONOUS_IO_ALERT | FILE_SEQUENTIAL_ONLY); FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
DPRINT1("NtOpenFile() failed (Status %lx)\n", Status); DPRINT1("NtOpenFile() failed (Status %lx)\n", Status);
@ -1480,7 +1480,7 @@ UnprotectBootIni(PWSTR FileName,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
0, 0,
FILE_SYNCHRONOUS_IO_ALERT); FILE_SYNCHRONOUS_IO_NONALERT);
if (Status == STATUS_NO_SUCH_FILE) if (Status == STATUS_NO_SUCH_FILE)
{ {
DPRINT1("NtOpenFile() failed (Status %lx)\n", Status); DPRINT1("NtOpenFile() failed (Status %lx)\n", Status);
@ -1551,7 +1551,7 @@ ProtectBootIni(PWSTR FileName,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
0, 0,
FILE_SYNCHRONOUS_IO_ALERT); FILE_SYNCHRONOUS_IO_NONALERT);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
DPRINT1("NtOpenFile() failed (Status %lx)\n", Status); DPRINT1("NtOpenFile() failed (Status %lx)\n", Status);

View file

@ -935,7 +935,7 @@ ReadString(PWCHAR String, ULONG MaxLength)
static ULONG static ULONG
ReadFileTable() ReadFileTable(VOID)
/* /*
* FUNCTION: Reads the file table from the cabinet file * FUNCTION: Reads the file table from the cabinet file
* RETURNS: * RETURNS:
@ -1125,7 +1125,7 @@ ComputeChecksum(PVOID Buffer,
static ULONG static ULONG
CloseCabinet() CloseCabinet(VOID)
/* /*
* FUNCTION: Closes the current cabinet * FUNCTION: Closes the current cabinet
* RETURNS: * RETURNS:
@ -1157,7 +1157,7 @@ CloseCabinet()
VOID VOID
CabinetInitialize() CabinetInitialize(VOID)
/* /*
* FUNCTION: Initialize archiver * FUNCTION: Initialize archiver
*/ */
@ -1199,7 +1199,7 @@ CabinetInitialize()
VOID VOID
CabinetCleanup() CabinetCleanup(VOID)
/* /*
* FUNCTION: Cleanup archiver * FUNCTION: Cleanup archiver
*/ */
@ -1285,7 +1285,7 @@ CabinetGetDestinationPath()
ULONG ULONG
CabinetOpen() CabinetOpen(VOID)
/* /*
* FUNCTION: Opens a cabinet file * FUNCTION: Opens a cabinet file
* RETURNS: * RETURNS:
@ -1324,7 +1324,7 @@ CabinetOpen()
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
FILE_SHARE_READ, FILE_SHARE_READ,
FILE_SYNCHRONOUS_IO_ALERT); FILE_SYNCHRONOUS_IO_NONALERT);
if (!NT_SUCCESS(NtStatus)) if (!NT_SUCCESS(NtStatus))
{ {
DPRINT("Cannot open file (%S) (%x).\n", CabinetName, NtStatus); DPRINT("Cannot open file (%S) (%x).\n", CabinetName, NtStatus);
@ -1487,7 +1487,7 @@ CabinetOpen()
VOID VOID
CabinetClose() CabinetClose(VOID)
/* /*
* FUNCTION: Closes the cabinet file * FUNCTION: Closes the cabinet file
*/ */
@ -1674,7 +1674,7 @@ CabinetExtractFile(PWCHAR FileName)
FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_NORMAL,
0, 0,
FILE_CREATE, FILE_CREATE,
FILE_SYNCHRONOUS_IO_ALERT, FILE_SYNCHRONOUS_IO_NONALERT,
NULL, NULL,
0); 0);
if (!NT_SUCCESS(NtStatus)) if (!NT_SUCCESS(NtStatus))

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
/* $Id: filesup.c,v 1.7 2003/08/24 10:36:06 chorns Exp $ /* $Id: filesup.c,v 1.8 2003/11/08 09:13:46 ekohl Exp $
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS text-mode setup * PROJECT: ReactOS text-mode setup
* FILE: subsys/system/usetup/filesup.c * FILE: subsys/system/usetup/filesup.c
@ -67,7 +67,7 @@ CreateDirectory(PWCHAR DirectoryName)
FILE_ATTRIBUTE_DIRECTORY, FILE_ATTRIBUTE_DIRECTORY,
0, 0,
FILE_CREATE, FILE_CREATE,
FILE_DIRECTORY_FILE, FILE_SYNCHRONOUS_IO_NONALERT | FILE_DIRECTORY_FILE,
NULL, NULL,
0); 0);
if (NT_SUCCESS(Status)) if (NT_SUCCESS(Status))
@ -113,7 +113,7 @@ SetupCopyFile(PWCHAR SourceFileName,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
FILE_SHARE_READ, FILE_SHARE_READ,
FILE_SYNCHRONOUS_IO_ALERT | FILE_SEQUENTIAL_ONLY); FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
return(Status); return(Status);
@ -157,7 +157,7 @@ SetupCopyFile(PWCHAR SourceFileName,
FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_NORMAL,
0, 0,
FILE_OVERWRITE_IF, FILE_OVERWRITE_IF,
FILE_SYNCHRONOUS_IO_ALERT | FILE_SEQUENTIAL_ONLY, FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY,
NULL, NULL,
0); 0);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
@ -307,7 +307,7 @@ SetupExtractFile(PWCHAR CabinetFileName,
CabinetCleanup(); CabinetCleanup();
} }
wcscpy(CurrentCabinetName, CabinetFileName); wcscpy(CurrentCabinetName, CabinetFileName);
CabinetInitialize(); CabinetInitialize();
CabinetSetEventHandlers(NULL, NULL, NULL); CabinetSetEventHandlers(NULL, NULL, NULL);
@ -371,7 +371,7 @@ DoesFileExist(PWSTR PathName,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
0, 0,
FILE_SYNCHRONOUS_IO_ALERT); FILE_SYNCHRONOUS_IO_NONALERT);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
return(FALSE); return(FALSE);

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
/* $Id: infcache.c,v 1.7 2003/10/16 08:39:28 robd Exp $ /* $Id: infcache.c,v 1.8 2003/11/08 09:13:46 ekohl Exp $
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS text-mode setup * PROJECT: ReactOS text-mode setup
* FILE: subsys/system/usetup/infcache.c * FILE: subsys/system/usetup/infcache.c
@ -993,7 +993,7 @@ InfOpenFile(PHINF InfHandle,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
FILE_SHARE_READ, FILE_SHARE_READ,
FILE_NON_DIRECTORY_FILE); FILE_SYNCHRONOUS_IO_NONALERT | FILE_NON_DIRECTORY_FILE);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
DPRINT("NtOpenFile() failed (Status %lx)\n", Status); DPRINT("NtOpenFile() failed (Status %lx)\n", Status);
@ -1008,12 +1008,7 @@ InfOpenFile(PHINF InfHandle,
&FileInfo, &FileInfo,
sizeof(FILE_STANDARD_INFORMATION), sizeof(FILE_STANDARD_INFORMATION),
FileStandardInformation); FileStandardInformation);
if (Status == STATUS_PENDING) if (!NT_SUCCESS(Status))
{
DPRINT("NtQueryInformationFile() returns STATUS_PENDING\n");
}
else if (!NT_SUCCESS(Status))
{ {
DPRINT("NtQueryInformationFile() failed (Status %lx)\n", Status); DPRINT("NtQueryInformationFile() failed (Status %lx)\n", Status);
NtClose(FileHandle); NtClose(FileHandle);
@ -1047,13 +1042,6 @@ InfOpenFile(PHINF InfHandle,
&FileOffset, &FileOffset,
NULL); NULL);
if (Status == STATUS_PENDING)
{
DPRINT("NtReadFile() returns STATUS_PENDING\n");
Status = IoStatusBlock.Status;
}
/* Append string terminator */ /* Append string terminator */
FileBuffer[FileLength] = 0; FileBuffer[FileLength] = 0;

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
/* $Id: inicache.c,v 1.5 2003/07/24 13:52:27 ekohl Exp $ /* $Id: inicache.c,v 1.6 2003/11/08 09:13:46 ekohl Exp $
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS text-mode setup * PROJECT: ReactOS text-mode setup
* FILE: subsys/system/usetup/inicache.c * FILE: subsys/system/usetup/inicache.c
@ -550,7 +550,7 @@ IniCacheLoad(PINICACHE *Cache,
&ObjectAttributes, &ObjectAttributes,
&IoStatusBlock, &IoStatusBlock,
FILE_SHARE_READ, FILE_SHARE_READ,
FILE_NON_DIRECTORY_FILE); FILE_SYNCHRONOUS_IO_NONALERT | FILE_NON_DIRECTORY_FILE);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
DPRINT("NtOpenFile() failed (Status %lx)\n", Status); DPRINT("NtOpenFile() failed (Status %lx)\n", Status);
@ -565,12 +565,7 @@ IniCacheLoad(PINICACHE *Cache,
&FileInfo, &FileInfo,
sizeof(FILE_STANDARD_INFORMATION), sizeof(FILE_STANDARD_INFORMATION),
FileStandardInformation); FileStandardInformation);
if (Status == STATUS_PENDING) if (!NT_SUCCESS(Status))
{
DPRINT("NtQueryInformationFile() returns STATUS_PENDING\n");
}
else if (!NT_SUCCESS(Status))
{ {
DPRINT("NtQueryInformationFile() failed (Status %lx)\n", Status); DPRINT("NtQueryInformationFile() failed (Status %lx)\n", Status);
NtClose(FileHandle); NtClose(FileHandle);
@ -604,13 +599,6 @@ IniCacheLoad(PINICACHE *Cache,
&FileOffset, &FileOffset,
NULL); NULL);
if (Status == STATUS_PENDING)
{
DPRINT("NtReadFile() returns STATUS_PENDING\n");
Status = IoStatusBlock.Status;
}
/* Append string terminator */ /* Append string terminator */
FileBuffer[FileLength] = 0; FileBuffer[FileLength] = 0;
@ -1101,7 +1089,7 @@ IniCacheSave(PINICACHE Cache,
FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_NORMAL,
0, 0,
FILE_SUPERSEDE, FILE_SUPERSEDE,
FILE_SYNCHRONOUS_IO_ALERT | FILE_SEQUENTIAL_ONLY, FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY,
NULL, NULL,
0); 0);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))