Author: cgutman
Date: Thu Aug 12 04:22:52 2010
New Revision: 48520
URL: http://svn.reactos.org/svn/reactos?rev=48520&view=rev
Log:
[MSWSOCK]
- Check for STATUS_SUCCESS explicitly instead of using the NT_SUCCESS macro because somebody at MS thought it was a great idea to make STATUS_TIMEOUT a success status thus causing endless hours of bug hunting for the poor developers that make this same mistake
- STATUS_TIMEOUT isn't an error status so checking for it with NT_ERROR won't work either instead just add a special case in the if for STATUS_TIMEOUT
Modified:
branches/aicom-network-branch/dll/win32/mswsock/msafd/async.c
Modified: branches/aicom-network-branch/dll/win32/mswsock/msafd/async.c
URL: http://svn.reactos.org/svn/reactos/branches/aicom-network-branch/dll/win32/…
==============================================================================
--- branches/aicom-network-branch/dll/win32/mswsock/msafd/async.c [iso-8859-1] (original)
+++ branches/aicom-network-branch/dll/win32/mswsock/msafd/async.c [iso-8859-1] Thu Aug 12 04:22:52 2010
@@ -163,7 +163,7 @@
&IoStatusBlock,
&Timeout);
/* Check for success */
- if (NT_SUCCESS(Status))
+ if (Status == STATUS_SUCCESS)
{
/* Check if this isn't the termination command */
if (AsyncCompletionRoutine != (PVOID)-1)
@@ -180,7 +180,7 @@
InterlockedDecrement(&SockAsyncThreadReferenceCount);
}
}
- else if ((SockAsyncThreadReferenceCount > 1) && (NT_ERROR(Status)))
+ else if ((SockAsyncThreadReferenceCount > 1) && (NT_ERROR(Status) || Status == STATUS_TIMEOUT))
{
/* It Failed, sleep for a second */
Sleep(1000);
Author: tkreuzer
Date: Wed Aug 11 01:22:06 2010
New Revision: 48517
URL: http://svn.reactos.org/svn/reactos?rev=48517&view=rev
Log:
[NTOSKRNL]
Stop using the new paged pool code, before ExpLoadInitialProcess is called. For so far unknown reasons, it causes evil things to happen. Fixes "Assertion NewSize < pool->UserSize failed"
See issue #5551 for more details.
Modified:
trunk/reactos/ntoskrnl/ex/init.c
Modified: trunk/reactos/ntoskrnl/ex/init.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/init.c?rev=485…
==============================================================================
--- trunk/reactos/ntoskrnl/ex/init.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ex/init.c [iso-8859-1] Wed Aug 11 01:22:06 2010
@@ -1851,6 +1851,9 @@
/* Update progress bar */
InbvUpdateProgressBar(90);
+ /* Enough fun for now */
+ AllowPagedPool = FALSE;
+
/* Launch initial process */
ProcessInfo = &InitBuffer->ProcessInfo;
ExpLoadInitialProcess(InitBuffer, &ProcessParameters, &Environment);
@@ -1860,9 +1863,6 @@
/* Allow strings to be displayed */
InbvEnableDisplayString(TRUE);
-
- /* Enough fun for now */
- AllowPagedPool = FALSE;
/* Wait 5 seconds for it to initialize */
Timeout.QuadPart = Int32x32To64(5, -10000000);
Author: fireball
Date: Tue Aug 10 20:08:31 2010
New Revision: 48513
URL: http://svn.reactos.org/svn/reactos?rev=48513&view=rev
Log:
[FASTFAT]
Pierre Schweitzer
- Fix volume opening on FAT volume. Commented out a directory check as it doesn't match realized tests, in spite of what's in WDK.
Modified:
trunk/reactos/drivers/filesystems/fastfat/create.c
Modified: trunk/reactos/drivers/filesystems/fastfat/create.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/fastfa…
==============================================================================
--- trunk/reactos/drivers/filesystems/fastfat/create.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/filesystems/fastfat/create.c [iso-8859-1] Tue Aug 10 20:08:31 2010
@@ -466,7 +466,7 @@
/* This a open operation for the volume itself */
if (FileObject->FileName.Length == 0 &&
- FileObject->RelatedFileObject == NULL)
+ (FileObject->RelatedFileObject == NULL || FileObject->RelatedFileObject->FsContext2 != NULL))
{
if (RequestedDisposition == FILE_CREATE ||
RequestedDisposition == FILE_OVERWRITE_IF ||
@@ -474,10 +474,13 @@
{
return(STATUS_ACCESS_DENIED);
}
+#if 0
+ /* In spite of what is shown in WDK, it seems that Windows FAT driver doesn't perform that test */
if (RequestedOptions & FILE_DIRECTORY_FILE)
{
return(STATUS_NOT_A_DIRECTORY);
}
+#endif
pFcb = DeviceExt->VolumeFcb;
pCcb = ExAllocateFromNPagedLookasideList(&VfatGlobalData->CcbLookasideList);
if (pCcb == NULL)
Author: cgutman
Date: Tue Aug 10 15:59:33 2010
New Revision: 48512
URL: http://svn.reactos.org/svn/reactos?rev=48512&view=rev
Log:
[MSWSOCK]
- Fix completion port initialization
Modified:
branches/aicom-network-branch/dll/win32/mswsock/msafd/select.c
Modified: branches/aicom-network-branch/dll/win32/mswsock/msafd/select.c
URL: http://svn.reactos.org/svn/reactos/branches/aicom-network-branch/dll/win32/…
==============================================================================
--- branches/aicom-network-branch/dll/win32/mswsock/msafd/select.c [iso-8859-1] (original)
+++ branches/aicom-network-branch/dll/win32/mswsock/msafd/select.c [iso-8859-1] Tue Aug 10 15:59:33 2010
@@ -75,7 +75,7 @@
}
/* Check if the port exists, and if not, create it */
- if (SockAsyncQueuePort) SockCreateAsyncQueuePort();
+ if (!SockAsyncQueuePort) SockCreateAsyncQueuePort();
/*
* Now Set up the Completion Port Information