Commit in reactos on KJKHyperion-RtlUnwind
README+2-21.6 -> 1.6.22.1
drivers/dd/sndblst/dma.c+11-41.4 -> 1.4.8.1
                  /makefile+21.1 -> 1.1.10.1
                  /portio.c+51.2 -> 1.2.8.1
                  /sbdebug.h+1-11.1 -> 1.1.10.1
                  /sndblst.c+4-21.5 -> 1.5.8.1
                  /sndblst.h+3-31.3 -> 1.3.8.1
drivers/fs/vfat/create.c+36-451.67 -> 1.67.8.1
               /fsctl.c+51-121.31 -> 1.31.2.1
               /vfat.h+5-11.63 -> 1.63.6.1
include/ddk/exfuncs.h+156-11.37 -> 1.37.12.1
           /extypes.h+50-11.21 -> 1.21.16.1
           /fsfuncs.h+136-11.22 -> 1.22.12.1
           /fstypes.h+100-11.15 -> 1.15.8.1
           /iodef.h+111.28 -> 1.28.2.1
           /iofuncs.h+548-71.41 -> 1.41.16.1
           /iotypes.h+130-21.62 -> 1.62.12.1
           /kefuncs.h+263-161.41 -> 1.41.6.1
           /ketypes.h+88-121.47 -> 1.47.12.1
           /ldrfuncs.h+14-11.5 -> 1.5.22.1
include/ntos/bootvid.h+75-761.1 -> 1.1.22.1
include/win32k/ntuser.h+1-11.136 -> 1.136.6.1
lib/comctl32/imagelist.c+43-141.10 -> 1.10.6.1
lib/kernel32/misc/stubs.c+39-31.78 -> 1.78.2.1
lib/ntdll/ldr/utils.c+131-1841.90 -> 1.90.2.1
lib/syssetup/install.c+60-11.12 -> 1.12.6.1
lib/user32/windows/bitmap.c+46-331.29 -> 1.29.6.1
                  /draw.c-51.41 -> 1.41.6.1
lib/userenv/environment.c+63-161.3 -> 1.3.6.1
           /setup.c+4-21.4 -> 1.4.8.1
ntoskrnl/Makefile+9-31.125 -> 1.125.4.1
ntoskrnl/cm/cm.h+151.49 -> 1.49.8.1
           /ntfunc.c+251.64 -> 1.64.10.1
ntoskrnl/dbg/dbgctrl.c+431.11 -> 1.11.24.1
ntoskrnl/ex/interlck.c+20-21.12 -> 1.12.6.1
           /list.c+16-11.11 -> 1.11.24.1
           /sysinfo.c+41-11.36 -> 1.36.6.1
           /time.c+13-11.19 -> 1.19.20.1
ntoskrnl/fs/mcb.c+59-11.11 -> 1.11.14.1
           /mdl.c+40-11.5 -> 1.5.24.1
           /notify.c+62-11.9 -> 1.9.14.1
           /util.c+84-21.15 -> 1.15.24.1
ntoskrnl/include/internal/dbg.h+241.7 -> 1.7.14.1
                         /kd.h+25-11.24 -> 1.24.10.1
                         /ke.h+35-61.50 -> 1.50.8.1
                         /ps.h+16-21.58 -> 1.58.10.1
ntoskrnl/io/device.c+144-11.70 -> 1.70.8.1
           /driver.c+29-11.47 -> 1.47.4.1
           /errlog.c+12-11.16 -> 1.16.14.1
           /file.c+142-11.28 -> 1.28.14.1
           /fs.c+14-21.40 -> 1.40.14.1
           /iocomp.c+371.12 -> 1.12.24.1
           /irp.c+55-11.61 -> 1.61.6.1
           /pnpmgr.c+6-31.29 -> 1.29.6.1
           /pnpnotify.c+161.2 -> 1.2.20.1
           /process.c+13-11.16 -> 1.16.14.1
           /share.c+3-31.9 -> 1.9.24.1
           /xhaldisp.c+148-11.8 -> 1.8.24.1
ntoskrnl/kd/kdebug.c+64-21.51 -> 1.51.10.1
ntoskrnl/ke/apc.c+121.54 -> 1.54.12.1
           /catch.c+82-11.42.8.2 -> 1.42.8.3
           /dpc.c+39-11.30 -> 1.30.12.1
           /error.c+241.11 -> 1.11.14.1
           /event.c+131.17 -> 1.17.20.1
           /kthread.c+95-11.46 -> 1.46.14.1
           /process.c+26-11.19 -> 1.19.10.1
           /spinlock.c+52-11.20 -> 1.20.12.1
           /timer.c+69-11.73 -> 1.73.6.1
ntoskrnl/ke/i386/exp.c+8-61.85 -> 1.85.8.1
                /gdt.c+411.15 -> 1.15.14.1
                /thread.c+31.31 -> 1.31.14.1
                /usercall.c+31-11.25 -> 1.25.24.1
ntoskrnl/ldr/resource.c+36-11.6 -> 1.6.24.1
ntoskrnl/lpc/reply.c+15-11.19 -> 1.19.24.1
ntoskrnl/mm/pool.c+29-21.28 -> 1.28.8.1
subsys/system/cmd/console.c+16-41.6 -> 1.6.2.1
subsys/system/explorer/explorer-cn.rc[binary]added 1.1.2.1
                      /explorer_intres.rc+23-4331.74 -> 1.74.2.1
subsys/system/regedit/edit.c+43-31.13 -> 1.13.2.1
                     /hexedit.c+51.8 -> 1.8.2.1
subsys/system/usetup/bootsup.c+3861.12 -> 1.12.8.1
                    /bootsup.h+14-21.6 -> 1.6.22.1
                    /usetup.c+204-5221.56 -> 1.56.2.1
subsys/win32k/eng/misc.c+2-21.6 -> 1.6.6.1
                 /mouse.c+4-41.72 -> 1.72.2.1
                 /surface.c+52-421.40 -> 1.40.4.1
subsys/win32k/include/palette.h+21.8 -> 1.8.6.1
subsys/win32k/ntuser/focus.c+2-21.23 -> 1.23.2.1
                    /misc.c+2-81.79 -> 1.79.2.1
subsys/win32k/objects/color.c+2-21.42 -> 1.42.6.1
                     /dib.c+7-161.51 -> 1.51.2.1
                     /objconv.c+4-31.18 -> 1.18.6.1
                     /palette.c+43-11.19 -> 1.19.2.1
                     /text.c+3-31.97 -> 1.97.2.1
w32api/include/ddk/ntddscsi.h+43-431.2 -> 1.2.4.1
                  /ntddtape.h+7-71.2 -> 1.2.4.1
                  /ntifs.h+1-11.2 -> 1.2.6.1
w32api/include/winuser.h+191.6 -> 1.6.6.1
+4747-1601
1 added + 97 modified, total 98 files
Merge with HEAD

reactos
README 1.6 -> 1.6.22.1
diff -u -r1.6 -r1.6.22.1
--- README	20 Mar 2003 02:33:37 -0000	1.6
+++ README	27 Jun 2004 01:13:11 -0000	1.6.22.1
@@ -1,6 +1,6 @@
 ========================
-ReactOS Version 0.1.x
-Updated March 19th, 2003
+ReactOS Version 0.2.x
+Updated June 23rd, 2004
 ========================
 
 1. What is ReactOS?

reactos/drivers/dd/sndblst
dma.c 1.4 -> 1.4.8.1
diff -u -r1.4 -r1.4.8.1
--- dma.c	28 Mar 2004 20:44:09 -0000	1.4
+++ dma.c	27 Jun 2004 01:13:11 -0000	1.4.8.1
@@ -73,6 +73,7 @@
     NTSTATUS Status;
     PDEVICE_EXTENSION Device = DeviceObject->DeviceExtension;
     KEVENT DMAEvent;
+    KIRQL OldIrql;
 
     // Buffersize should already be set but it isn't yet !
     Device->BufferSize = SB_BUFSIZE;
@@ -138,7 +139,9 @@
                                                 &Device->Buffer, FALSE);
 
     // For some reason BufferSize == 0 here?!
-    DPRINT("Buffer == 0x%x Bufsize == %u\n", Device->Buffer, Device->BufferSize);
+//    DPRINT("Buffer == 0x%x Bufsize == %u\n", Device->Buffer, Device->BufferSize);
+    DPRINT("Bufsize == %u,", Device->BufferSize);
+    DPRINT("Buffer == 0x%x\n", Device->Buffer);
 
     if (! Device->VirtualBuffer)
     {
@@ -147,14 +150,16 @@
         return FALSE;
     }
 
-    DPRINT("Buffer == 0x%x Bufsize == %u\n", Device->Buffer, Device->BufferSize);
+//    DPRINT("Buffer == 0x%x Bufsize == %u\n", Device->Buffer, Device->BufferSize);
+    DPRINT("Bufsize == %u,", Device->BufferSize);
+    DPRINT("Buffer == 0x%x\n", Device->Buffer);
 
     DPRINT("Calling IoAllocateMdl()\n");
     Device->Mdl = IoAllocateMdl(Device->VirtualBuffer, Device->BufferSize, FALSE, FALSE, NULL);
     DPRINT("Bufsize == %u\n", Device->BufferSize);
 
     // IS THIS RIGHT:
-    if (! Device->VirtualBuffer)
+    if (! Device->Mdl)
     {
         DPRINT("IoAllocateMdl() FAILED\n");
         // Free the HAL buffer
@@ -171,11 +176,13 @@
     // part II:
     KeInitializeEvent(&DMAEvent, SynchronizationEvent, FALSE);
     // Raise IRQL
+    KeRaiseIrql(DISPATCH_LEVEL,&OldIrql);
     IoAllocateAdapterChannel(Device->Adapter, DeviceObject,
                             BYTES_TO_PAGES(Device->BufferSize),
                             SoundProgramDMA, &DMAEvent);
-    DPRINT("VBuffer == 0x%x Bufsize == %u\n", Device->VirtualBuffer, Device->BufferSize);
     // Lower IRQL
+    KeLowerIrql(OldIrql);
+    DPRINT("VBuffer == 0x%x Bufsize == %u\n", Device->VirtualBuffer, Device->BufferSize);
     KeWaitForSingleObject(&DMAEvent, Executive, KernelMode, FALSE, NULL);
 
 

reactos/drivers/dd/sndblst
makefile 1.1 -> 1.1.10.1
diff -u -r1.1 -r1.1.10.1
--- makefile	20 Jan 2004 19:35:59 -0000	1.1
+++ makefile	27 Jun 2004 01:13:11 -0000	1.1.10.1
@@ -2,6 +2,8 @@
 
 TARGET_BOOTSTRAP = yes
 
+TARGET_CFLAGS = -Wall #-Werror
+
 TARGET_TYPE = driver
 
 TARGET_NAME = sndblst

reactos/drivers/dd/sndblst
portio.c 1.2 -> 1.2.8.1
diff -u -r1.2 -r1.2.8.1
--- portio.c	28 Mar 2004 20:44:09 -0000	1.2
+++ portio.c	27 Jun 2004 01:13:11 -0000	1.2.8.1
@@ -101,6 +101,11 @@
 
     DPRINT("DSP v%d.%d\n", DSP_Major, DSP_Minor);
 
+    // if audio is disabled,
+    // version tests return 0xFF everywhere
+    if (DSP_Major == 0xFF && DSP_Minor == 0xFF)
+        return FALSE;
+
     DPRINT("Sound card initialized!\n");
     
     return (DSP_Major * 256) + DSP_Minor;

reactos/drivers/dd/sndblst
sbdebug.h 1.1 -> 1.1.10.1
diff -u -r1.1 -r1.1.10.1
--- sbdebug.h	20 Jan 2004 19:35:59 -0000	1.1
+++ sbdebug.h	27 Jun 2004 01:13:11 -0000	1.1.10.1
@@ -17,7 +17,7 @@
             else if (s == STATUS_ACCESS_DENIED) \
                 DPRINT("NTSTATUS == ACCESS_DENIED\n") \
             else \
-                DPRINT("NTSTATUS == FAILURE (???)\n"); \
+                DPRINT("NTSTATUS == FAILURE (Unknown)\n"); \
         }
 #else
 #define TEST_STATUS(s)

reactos/drivers/dd/sndblst
sndblst.c 1.5 -> 1.5.8.1
diff -u -r1.5 -r1.5.8.1
--- sndblst.c	28 Mar 2004 20:44:09 -0000	1.5
+++ sndblst.c	27 Jun 2004 01:13:11 -0000	1.5.8.1
@@ -107,10 +107,10 @@
     
     s = RtlQueryRegistryValues(RTL_REGISTRY_ABSOLUTE, RegistryPath, Table,
                                 &Parameters, NULL);
-*/
 
     if (! NT_SUCCESS(s))
         return s;
+*/
 
     DPRINT("Port 0x%x  IRQ %d  DMA %d\n", Parameters->Port, Parameters->IRQ, Parameters->DMA);
 
@@ -124,6 +124,7 @@
         // Set state indication somehow
         // Failure - what error code do we give?!
         // return STATUS_????
+        return STATUS_UNSUCCESSFUL;
     }
 
     DSP_Major = DSP_Version / 256;
@@ -453,7 +454,8 @@
 //  DeviceExtension = DeviceObject->DeviceExtension;
 //  DeviceExtension->BeepOn = FALSE;
 
-  return(STATUS_SUCCESS);
+//  return(STATUS_SUCCESS);
+    return(Status);
 }
 
 /* EOF */

reactos/drivers/dd/sndblst
sndblst.h 1.3 -> 1.3.8.1
diff -u -r1.3 -r1.3.8.1
--- sndblst.h	28 Mar 2004 20:44:09 -0000	1.3
+++ sndblst.h	27 Jun 2004 01:13:11 -0000	1.3.8.1
@@ -46,9 +46,9 @@
 #define IOCTL_SOUND_BASE FILE_DEVICE_SOUND
 #define IOCTL_WAVE_BASE  0x0000 // CORRECT?
 
-//#define IOCTL_MIDI_PLAY CTL_CODE(IOCTL_SOUND_BASE, IOCTL_MIDI_BASE + 0x0006, \
-//                                METHOD_BUFFERED, FILE_WRITE_ACCESS)
-
+/* #define IOCTL_MIDI_PLAY CTL_CODE(IOCTL_SOUND_BASE, IOCTL_MIDI_BASE + 0x0006, \
+ *                                METHOD_BUFFERED, FILE_WRITE_ACCESS)
+ */
 
 // Some constants
 

reactos/drivers/fs/vfat
create.c 1.67 -> 1.67.8.1
diff -u -r1.67 -r1.67.8.1
--- create.c	31 Mar 2004 03:30:36 -0000	1.67
+++ create.c	27 Jun 2004 01:13:11 -0000	1.67.8.1
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: create.c,v 1.67 2004/03/31 03:30:36 jimtabor Exp $
+/* $Id: create.c,v 1.67.8.1 2004/06/27 01:13:11 hyperion Exp $
  *
  * PROJECT:          ReactOS kernel
  * FILE:             drivers/fs/vfat/create.c
@@ -338,11 +338,11 @@
 {
   PVFATFCB ParentFcb;
   PVFATFCB Fcb;
-  DISK_GEOMETRY DiskGeometry;
   NTSTATUS Status;
   UNICODE_STRING NameU;
   WCHAR Name[MAX_PATH];
   ULONG Size;
+  ULONG MediaChangeCount;
 
 //  PDEVICE_OBJECT DeviceObject = DeviceExt->StorageDevice->Vpb->DeviceObject;
   
@@ -370,50 +370,41 @@
 
   DPRINT ("PathName to open: '%wZ'\n", FileNameU);
 
-   Size = sizeof(DISK_GEOMETRY);
-   Status = VfatBlockDeviceIoControl(DeviceExt->StorageDevice,
-				     IOCTL_DISK_GET_DRIVE_GEOMETRY,
-				     NULL,
-				     0,
-				     &DiskGeometry,
-				     &Size,
-				     FALSE);
-
-  if (DiskGeometry.MediaType != FixedMedia )
-     {
-
-  	Status = VfatBlockDeviceIoControl (DeviceExt->StorageDevice,
-					IOCTL_DISK_CHECK_VERIFY,
-					NULL,
-					0,
-					NULL,
-					0,
-					TRUE);
-
-      if (Status == STATUS_VERIFY_REQUIRED)
-    	    {
-      PDEVICE_OBJECT DeviceToVerify;
-
-      DPRINT ("Media change detected!\n");
-      DPRINT ("Device %p\n", DeviceObject);
-
-      DeviceToVerify = IoGetDeviceToVerify (PsGetCurrentThread ());
-      IoSetDeviceToVerify (PsGetCurrentThread (),
-			   NULL);
-
-      Status = IoVerifyVolume (DeviceToVerify,
-			       FALSE);
-      if (!NT_SUCCESS(Status))
-	{
-	  DPRINT ("Status %lx\n", Status);
-	  return Status;
-	}
-    }
-  else if (!NT_SUCCESS(Status))
+  if (!DeviceExt->FatInfo.FixedMedia)
     {
-      DPRINT ("Status %lx\n", Status);
-      return Status;
-    }
+      Size = sizeof(ULONG);
+      Status = VfatBlockDeviceIoControl (DeviceExt->StorageDevice,
+					 IOCTL_DISK_CHECK_VERIFY,
+					 NULL,
+					 0,
+					 &MediaChangeCount,
+					 &Size,
+					 FALSE);
+
+      if (Status == STATUS_VERIFY_REQUIRED || MediaChangeCount != DeviceExt->MediaChangeCount)
+        {
+          PDEVICE_OBJECT DeviceToVerify;
+
+          DPRINT ("Media change detected!\n");
+          DPRINT ("Device %p\n", DeviceExt->StorageDevice);
+
+          DeviceToVerify = IoGetDeviceToVerify (PsGetCurrentThread ());
+          IoSetDeviceToVerify (PsGetCurrentThread (),
+			       NULL);
+
+          Status = IoVerifyVolume (DeviceToVerify,
+			          FALSE);
+          if (!NT_SUCCESS(Status))
+	    {
+	      DPRINT ("Status %lx\n", Status);
+	      return Status;
+	    }
+        }
+      else if (!NT_SUCCESS(Status))
+        {
+          DPRINT ("Status %lx\n", Status);
+          return Status;
+        }
     }
 
 

reactos/drivers/fs/vfat
fsctl.c 1.31 -> 1.31.2.1
diff -u -r1.31 -r1.31.2.1
--- fsctl.c	20 Jun 2004 09:52:58 -0000	1.31
+++ fsctl.c	27 Jun 2004 01:13:11 -0000	1.31.2.1
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: fsctl.c,v 1.31 2004/06/20 09:52:58 navaraf Exp $
+/* $Id: fsctl.c,v 1.31.2.1 2004/06/27 01:13:11 hyperion Exp $
  *
  * COPYRIGHT:        See COPYING in the top level directory
  * PROJECT:          ReactOS kernel
@@ -31,7 +31,7 @@
 #include <rosrtl/string.h>
 #include <wchar.h>
 
-//#define NDEBUG
+#define NDEBUG
 #include <debug.h>
 
 #include "vfat.h"
@@ -74,6 +74,7 @@
       DPRINT("VfatBlockDeviceIoControl faild (%x)\n", Status);
       return Status;
    }
+   FatInfo.FixedMedia = DiskGeometry.MediaType == FixedMedia ? TRUE : FALSE;
    if (DiskGeometry.MediaType == FixedMedia || DiskGeometry.MediaType == RemovableMedia)
    {
       // We have found a hard disk
@@ -274,6 +275,7 @@
 {
    NTSTATUS Status;
    BOOLEAN RecognizedFS;
+   ULONG Size;
 
    DPRINT("Mounting VFAT device...\n");
 
@@ -284,6 +286,22 @@
    }
    DPRINT("MountVfatdev %d, PAGE_SIZE = %d\n", DeviceExt->FatInfo.BytesPerCluster, PAGE_SIZE);
 
+   if (!DeviceExt->FatInfo.FixedMedia)
+     {
+       Size = sizeof(ULONG);
+       Status = VfatBlockDeviceIoControl (DeviceToMount,
+					  IOCTL_DISK_CHECK_VERIFY,
+					  NULL,
+					  0,
+					  &DeviceExt->MediaChangeCount,
+					  &Size,
+					  FALSE);
+       if (!NT_SUCCESS(Status))
+         {
+	   return Status;
+	 }
+     }
+
    return(STATUS_SUCCESS);
 }
 
@@ -478,29 +496,50 @@
 {
   PDEVICE_OBJECT DeviceToVerify;
   NTSTATUS Status = STATUS_SUCCESS;
-
+  FATINFO FatInfo;
+  BOOLEAN RecognizedFS;
+  ULONG Size;
+  PDEVICE_EXTENSION DeviceExt = IrpContext->DeviceExt;
 
   DPRINT("VfatVerify(IrpContext %x)\n", IrpContext);
 
   DeviceToVerify = IrpContext->Stack->Parameters.VerifyVolume.DeviceObject;
+  Size = sizeof(ULONG);
   Status = VfatBlockDeviceIoControl(DeviceToVerify,
 				    IOCTL_DISK_CHECK_VERIFY,
 				    NULL,
 				    0,
-				    NULL,
-				    NULL,
+				    &DeviceExt->MediaChangeCount,
+				    &Size,
 				    FALSE);
-  if (!NT_SUCCESS(Status))
+  if (!NT_SUCCESS(Status) && Status != STATUS_VERIFY_REQUIRED)
     {
       DPRINT("VfatBlockDeviceIoControl() failed (Status %lx)\n", Status);
-
-      /* FIXME: Compare volume label */
-
-      DPRINT("  returning STATUS_WRONG_VOLUME\n");
-
       Status = STATUS_WRONG_VOLUME;
     }
-  DeviceToVerify->Flags &= ~DO_VERIFY_VOLUME;
+  else
+    {
+      Status = VfatHasFileSystem(DeviceToVerify, &RecognizedFS, &FatInfo);
+      if (!NT_SUCCESS(Status) || RecognizedFS == FALSE)
+        {
+          Status = STATUS_WRONG_VOLUME;
+        }
+      else if (sizeof(FATINFO) == RtlCompareMemory(&FatInfo, &DeviceExt->FatInfo, sizeof(FATINFO)))
+        {
+          /*
+           * FIXME:
+           *   Preformated floppy disks have very often a serial number of 0000:0000. 
+           *   We should calculate a crc sum over the sectors from the root directory as secondary volume number. 
+	   *   Each write to the root directory must update this crc sum.
+           */
+  
+          DeviceToVerify->Flags &= ~DO_VERIFY_VOLUME;
+        }
+      else
+      	{
+      	  Status = STATUS_WRONG_VOLUME;
+        }
+     }
     
   return Status;
 }

reactos/drivers/fs/vfat
vfat.h 1.63 -> 1.63.6.1
diff -u -r1.63 -r1.63.6.1
--- vfat.h	15 May 2004 23:00:02 -0000	1.63
+++ vfat.h	27 Jun 2004 01:13:11 -0000	1.63.6.1
@@ -1,4 +1,4 @@
-/* $Id: vfat.h,v 1.63 2004/05/15 23:00:02 hbirr Exp $ */
+/* $Id: vfat.h,v 1.63.6.1 2004/06/27 01:13:11 hyperion Exp $ */
 
 #include <ddk/ntifs.h>
 
@@ -129,6 +129,7 @@
   ULONG NumberOfClusters;
   ULONG FatType;
   ULONG Sectors;
+  BOOL FixedMedia;
 } FATINFO, *PFATINFO;
 
 struct _VFATFCB;
@@ -162,6 +163,9 @@
   struct _VFATFCB * VolumeFcb;
 
   LIST_ENTRY VolumeListEntry;
+
+  ULONG MediaChangeCount;
+
 } DEVICE_EXTENSION, *PDEVICE_EXTENSION, VCB, *PVCB;
 
 typedef struct

reactos/include/ddk
exfuncs.h 1.37 -> 1.37.12.1
diff -u -r1.37 -r1.37.12.1
--- exfuncs.h	30 Dec 2003 18:34:58 -0000	1.37
+++ exfuncs.h	27 Jun 2004 01:13:11 -0000	1.37.12.1
@@ -46,6 +46,32 @@
 	BOOLEAN		Wait
 	);
 BOOLEAN
+FASTCALL
+ExAcquireRundownProtection (
+	PVOID		ProcessRundownProtect
+	);
+BOOLEAN
+FASTCALL
+ExAcquireRundownProtectionEx (
+	IN PVOID	ProcessRundownProtect,
+	IN PVOID	Unknown
+	);
+PVOID
+FASTCALL
+ExfAcquirePushLockExclusive (
+	PVOID		Lock
+	);
+PVOID
+FASTCALL
+ExfAcquirePushLockShared (
+	PVOID		Lock
+	);
+PVOID
+FASTCALL
+ExfReleasePushLock (
+	PVOID		Lock
+	);
+BOOLEAN
 STDCALL
 ExAcquireSharedStarveExclusive (
 	PERESOURCE	Resource,
@@ -120,6 +146,15 @@
 	IN	ULONG		Tag
 	);
 
+PVOID
+NTAPI
+ExAllocatePoolWithTagPriority(
+    IN POOL_TYPE PoolType,
+    IN SIZE_T NumberOfBytes,
+    IN ULONG Tag,
+    IN EX_POOL_PRIORITY Priority
+    );
+
 VOID
 STDCALL
 ExConvertExclusiveToSharedLite (
@@ -152,6 +187,15 @@
 	PERESOURCE	Resource
 	);
 
+VOID
+STDCALL
+ExEnumHandleTable (
+	PULONG	HandleTable,
+	PVOID	Callback,
+	PVOID	Param,
+	PHANDLE	Handle OPTIONAL
+	);
+
 NTSTATUS
 STDCALL
 ExExtendZone (
@@ -199,6 +243,28 @@
 #define ExGetCurrentResourceThread() \
 	((ERESOURCE_THREAD)KeGetCurrentThread())
 
+LONGLONG
+FASTCALL
+ExfInterlockedCompareExchange64(
+    IN OUT LONGLONG volatile *Destination,
+    IN PLONGLONG ExChange,
+    IN PLONGLONG Comperand
+    );
+
+VOID
+STDCALL
+ExGetCurrentProcessorCounts (
+	PVOID	IdleThreadTime,
+	PVOID	SystemTime,
+	PVOID	Number
+	);
+
+VOID
+STDCALL
+ExGetCurrentProcessorCpuUsage (
+	PVOID	RetVal
+	);
+
 ULONG
 STDCALL
 ExGetExclusiveWaiterCount (
@@ -242,6 +308,12 @@
 	PERESOURCE	Resource
 	);
 
+VOID
+FASTCALL
+ExInitializeRundownProtection (
+	PVOID	ProcessRundown
+	);
+
 /*
  * VOID
  * ExInitializeSListHead (
@@ -333,6 +405,7 @@
 	PLONG		Addend,
 	PKSPIN_LOCK	Lock
 	);
+
 ULONG
 STDCALL
 ExInterlockedExchangeUlong (
@@ -340,6 +413,7 @@
 	ULONG		Value,
 	PKSPIN_LOCK	Lock
 	);
+
 NTSTATUS
 STDCALL
 ExInterlockedExtendZone (
@@ -349,6 +423,12 @@
 	PKSPIN_LOCK	Lock
 	);
 
+PSLIST_ENTRY
+FASTCALL
+ExInterlockedFlushSList (
+    IN PSLIST_HEADER ListHead
+    );
+
 /*
  * PVOID
  * ExInterlockedFreeToZone (
@@ -498,6 +578,14 @@
 	PWORK_QUEUE_ITEM	WorkItem,
 	WORK_QUEUE_TYPE		QueueType
 	);
+
+SIZE_T
+STDCALL
+ExQueryPoolBlockSize (                          
+    IN PVOID PoolBlock,                         
+    OUT PBOOLEAN QuotaCharged                   
+    );  
+
 VOID
 STDCALL
 ExRaiseAccessViolation (
@@ -513,6 +601,21 @@
 ExRaiseStatus (
 	NTSTATUS	Status
 	);
+VOID
+STDCALL
+ExRaiseException (
+	PEXCEPTION_RECORD pExcptRec
+	);
+VOID
+STDCALL
+ExRaiseHardError (
+	IN NTSTATUS ErrorStatus,
+	IN ULONG NumberOfParameters, 
+	IN PUNICODE_STRING UnicodeStringParameterMask OPTIONAL,
+	IN PVOID *Parameters, 
+	IN HARDERROR_RESPONSE_OPTION ResponseOption, 
+	OUT PHARDERROR_RESPONSE Response 
+	);
 
 PVOID
 STDCALL
@@ -527,6 +630,12 @@
 ExReinitializeResourceLite (
 	PERESOURCE	Resource
 	);
+VOID
+FASTCALL
+ExReInitializeRundownProtection (
+	PVOID	ProcessRundown
+	);
+
 /* ReactOS Specific: begin */
 VOID
 FASTCALL
@@ -566,7 +675,22 @@
 	PERESOURCE		Resource,
 	ERESOURCE_THREAD	ResourceThreadId
 	);
-
+BOOLEAN
+FASTCALL
+ExReleaseRundownProtection (
+	IN PVOID	ProcessRundownProtect
+	);
+BOOLEAN
+FASTCALL
+ExReleaseRundownProtectionEx (
+	IN PVOID	ProcessRundownProtect,
+	IN PVOID	Unknown
+	);
+VOID
+FASTCALL
+ExRundownCompleted (
+	PVOID	ProcessRundown
+	);
 VOID
 STDCALL
 ExSetResourceOwnerPointer (
@@ -576,6 +700,23 @@
 
 VOID
 STDCALL
+ExSetTimerResolution (
+    IN ULONG DesiredTime,
+    IN BOOLEAN SetResolution
+    );
+
+STDCALL
+BOOLEAN
+ExVerifySuite(
+    SUITE_TYPE SuiteType
+    );
+
+BOOLEAN
+STDCALL
+ExSystemExceptionFilter();
+
+VOID
+STDCALL
 ExSystemTimeToLocalTime (
 	PLARGE_INTEGER	SystemTime,
 	PLARGE_INTEGER	LocalTime
@@ -599,6 +740,20 @@
 	IN	PVOID	CallbackRegistration
 	);
 
+typedef GUID UUID;
+
+STDCALL
+NTSTATUS
+ExUuidCreate(
+    OUT UUID *Uuid
+    );
+
+PVOID
+FASTCALL
+ExWaitForRundownProtectionRelease (
+	PVOID		ProcessRundownProtect
+	);
+
 PSLIST_ENTRY
 FASTCALL
 InterlockedPopEntrySList (

reactos/include/ddk
extypes.h 1.21 -> 1.21.16.1
diff -u -r1.21 -r1.21.16.1
--- extypes.h	14 Nov 2003 15:19:35 -0000	1.21
+++ extypes.h	27 Jun 2004 01:13:11 -0000	1.21.16.1
@@ -1,4 +1,4 @@
-/* $Id: extypes.h,v 1.21 2003/11/14 15:19:35 ekohl Exp $ */
+/* $Id: extypes.h,v 1.21.16.1 2004/06/27 01:13:11 hyperion Exp $ */
 
 #ifndef __INCLUDE_DDK_EXTYPES_H
 #define __INCLUDE_DDK_EXTYPES_H
@@ -137,6 +137,55 @@
    FAST_MUTEX Obsoleted;
 } PAGED_LOOKASIDE_LIST, *PPAGED_LOOKASIDE_LIST;
 
+typedef enum _EX_POOL_PRIORITY {
+    LowPoolPriority,
+    LowPoolPrioritySpecialPoolOverrun = 8,
+    LowPoolPrioritySpecialPoolUnderrun = 9,
+    NormalPoolPriority = 16,
+    NormalPoolPrioritySpecialPoolOverrun = 24,
+    NormalPoolPrioritySpecialPoolUnderrun = 25,
+    HighPoolPriority = 32,
+    HighPoolPrioritySpecialPoolOverrun = 40,
+    HighPoolPrioritySpecialPoolUnderrun = 41
+
+    } EX_POOL_PRIORITY;
+
+typedef enum _SUITE_TYPE {
+    SmallBusiness,
+    Enterprise,
+    BackOffice,
+    CommunicationServer,
+    TerminalServer,
+    SmallBusinessRestricted,
+    EmbeddedNT,
+    DataCenter,
+    SingleUserTS,
+    Personal,
+    Blade,
+    MaxSuiteType
+} SUITE_TYPE;
+
+typedef enum _HARDERROR_RESPONSE_OPTION {
+	OptionAbortRetryIgnore,
+	OptionOk,
+	OptionOkCancel,
+	OptionRetryCancel,
+	OptionYesNo,
+	OptionYesNoCancel,
+	OptionShutdownSystem
+} HARDERROR_RESPONSE_OPTION, *PHARDERROR_RESPONSE_OPTION;
+
+typedef enum _HARDERROR_RESPONSE {
+	ResponseReturnToCaller,
+	ResponseNotHandled,
+	ResponseAbort,
+	ResponseCancel,
+	ResponseIgnore,
+	ResponseNo,
+	ResponseOk,
+	ResponseRetry,
+	ResponseYes
+} HARDERROR_RESPONSE, *PHARDERROR_RESPONSE;
 
 /* callback object (not functional in NT4)*/
 

reactos/include/ddk
fsfuncs.h 1.22 -> 1.22.12.1
diff -u -r1.22 -r1.22.12.1
--- fsfuncs.h	17 Dec 2003 20:27:06 -0000	1.22
+++ fsfuncs.h	27 Jun 2004 01:13:11 -0000	1.22.12.1
@@ -1,6 +1,6 @@
 #ifndef __INCLUDE_DDK_FSFUNCS_H
 #define __INCLUDE_DDK_FSFUNCS_H
-/* $Id: fsfuncs.h,v 1.22 2003/12/17 20:27:06 ekohl Exp $ */
+/* $Id: fsfuncs.h,v 1.22.12.1 2004/06/27 01:13:11 hyperion Exp $ */
 #define FlagOn(x,f) ((x) & (f))
 
 #include <ntos/fstypes.h>
@@ -12,6 +12,12 @@
 	IN PFILE_LOCK FileLock
 	);
 
+STDCALL
+VOID
+FsRtlAcquireFileExclusive (
+    IN PFILE_OBJECT FileObject
+    );
+
 PFILE_LOCK
 STDCALL
 FsRtlAllocateFileLock (
@@ -257,6 +263,19 @@
 		      OUT PULONG  SectorCount);
 #define FsRtlEnterFileSystem    KeEnterCriticalRegion
 #define FsRtlExitFileSystem     KeLeaveCriticalRegion
+
+VOID
+FsRtlIncrementCcFastReadNotPossible( VOID );
+
+VOID
+FsRtlIncrementCcFastReadWait( VOID );
+
+VOID
+FsRtlIncrementCcFastReadNoWait( VOID );
+
+VOID
+FsRtlIncrementCcFastReadResourceMiss( VOID );
+
 VOID
 STDCALL
 FsRtlInitializeFileLock (
@@ -276,11 +295,27 @@
 VOID STDCALL
 FsRtlInitializeOplock(IN OUT POPLOCK Oplock);
 
+
 VOID
 STDCALL
 FsRtlInitializeTunnelCache (
     IN PTUNNEL Cache
     );
+
+STDCALL
+NTSTATUS
+FsRtlInsertPerFileObjectContext (
+    IN PFSRTL_ADVANCED_FCB_HEADER PerFileObjectContext,
+    IN PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/ Ptr
+    );
+
+STDCALL
+NTSTATUS
+FsRtlInsertPerStreamContext (
+    IN PFSRTL_ADVANCED_FCB_HEADER PerStreamContext,
+    IN PFSRTL_PER_STREAM_CONTEXT Ptr
+    );
+
 BOOLEAN
 STDCALL
 FsRtlIsDbcsInExpression (
@@ -317,6 +352,11 @@
 BOOLEAN STDCALL
 FsRtlIsNtstatusExpected(IN NTSTATUS NtStatus);
 
+ULONG
+FsRtlIsPagingFile (
+    IN PFILE_OBJECT FileObject
+    );
+
 BOOLEAN STDCALL
 FsRtlIsTotalDeviceFailure(IN NTSTATUS NtStatus);
 
@@ -339,6 +379,14 @@
 FsRtlLookupLastLargeMcbEntry(IN PLARGE_MCB Mcb,
 			     OUT PLONGLONG Vbn,
 			     OUT PLONGLONG Lbn);
+STDCALL
+BOOLEAN
+FsRtlLookupLastLargeMcbEntryAndIndex (
+    IN PLARGE_MCB OpaqueMcb,
+    OUT PLONGLONG LargeVbn,
+    OUT PLONGLONG LargeLbn,
+    OUT PULONG Index
+    );
 
 BOOLEAN STDCALL
 FsRtlLookupLastMcbEntry (IN PMCB     Mcb,
@@ -350,6 +398,21 @@
 		     OUT PLBN    Lbn,
 		     OUT PULONG  SectorCount OPTIONAL,
 		     OUT PULONG  Index);
+STDCALL
+PFSRTL_PER_STREAM_CONTEXT
+FsRtlLookupPerStreamContextInternal (
+    IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
+    IN PVOID OwnerId OPTIONAL,
+    IN PVOID InstanceId OPTIONAL
+    );
+
+STDCALL
+PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/
+FsRtlLookupPerFileObjectContext (
+    IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
+    IN PVOID OwnerId OPTIONAL,
+    IN PVOID InstanceId OPTIONAL
+    );
 
 BOOLEAN
 STDCALL
@@ -424,6 +487,36 @@
 	IN	PVOID				TargetContext,
 	IN	PSECURITY_SUBJECT_CONTEXT	SubjectContext
 	);
+STDCALL
+VOID
+FsRtlNotifyFilterChangeDirectory (
+    IN PNOTIFY_SYNC NotifySync,
+    IN PLIST_ENTRY NotifyList,
+    IN PVOID FsContext,
+    IN PSTRING FullDirectoryName,
+    IN BOOLEAN WatchTree,
+    IN BOOLEAN IgnoreBuffer,
+    IN ULONG CompletionFilter,
+    IN PIRP NotifyIrp,
+    IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL,
+    IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL,
+    IN PFILTER_REPORT_CHANGE FilterCallback OPTIONAL
+    );
+
+STDCALL
+VOID
+FsRtlNotifyFilterReportChange (
+    IN PNOTIFY_SYNC NotifySync,
+    IN PLIST_ENTRY NotifyList,
+    IN PSTRING FullTargetName,
+    IN USHORT TargetNameOffset,
+    IN PSTRING StreamName OPTIONAL,
+    IN PSTRING NormalizedParentName OPTIONAL,
+    IN ULONG FilterMatch,
+    IN ULONG Action,
+    IN PVOID TargetContext,
+    IN PVOID FilterContext
+    );
 VOID
 STDCALL
 FsRtlNotifyFullChangeDirectory (
@@ -551,11 +644,24 @@
     IN PVOID        Context OPTIONAL
     );
 
+STDCALL
+NTSTATUS
+FsRtlRegisterFileSystemFilterCallbacks (
+    IN struct _DRIVER_OBJECT *FilterDriverObject,
+    IN PFS_FILTER_CALLBACKS Callbacks
+    );
+
 NTSTATUS STDCALL
 FsRtlRegisterUncProvider(IN OUT PHANDLE Handle,
 			 IN PUNICODE_STRING RedirectorDeviceName,
 			 IN BOOLEAN MailslotsSupported);
 
+STDCALL
+VOID
+FsRtlReleaseFile (
+    IN PFILE_OBJECT FileObject
+    );
+
 VOID STDCALL
 FsRtlRemoveLargeMcbEntry(IN PLARGE_MCB Mcb,
 			 IN LONGLONG Vbn,
@@ -566,6 +672,29 @@
 		     IN VBN      Vbn,
 		     IN ULONG    SectorCount);
 
+STDCALL
+PFSRTL_PER_STREAM_CONTEXT
+FsRtlRemovePerStreamContext (
+    IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
+    IN PVOID OwnerId OPTIONAL,
+    IN PVOID InstanceId OPTIONAL
+    );
+
+STDCALL
+PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/
+FsRtlRemovePerFileObjectContext (
+   IN PFSRTL_ADVANCED_FCB_HEADER PerFileObjectContext,
+    IN PVOID OwnerId OPTIONAL,
+    IN PVOID InstanceId OPTIONAL
+    );
+
+STDCALL
+VOID
+FsRtlResetLargeMcb (
+    IN PLARGE_MCB Mcb,
+    IN BOOLEAN SelfSynchronized
+    );
+
 BOOLEAN STDCALL
 FsRtlSplitLargeMcb(IN PLARGE_MCB Mcb,
 		   IN LONGLONG Vbn,
@@ -579,6 +708,12 @@
 	DWORD	Unknown2
 	);
 
+STDCALL
+VOID
+FsRtlTeardownPerStreamContexts (
+  IN PFSRTL_ADVANCED_FCB_HEADER AdvancedHeader
+  );
+
 VOID STDCALL
 FsRtlTruncateLargeMcb(IN PLARGE_MCB Mcb,
 		      IN LONGLONG Vbn);

reactos/include/ddk
fstypes.h 1.15 -> 1.15.8.1
diff -u -r1.15 -r1.15.8.1
--- fstypes.h	18 Mar 2004 16:19:25 -0000	1.15
+++ fstypes.h	27 Jun 2004 01:13:11 -0000	1.15.8.1
@@ -1,6 +1,6 @@
 #ifndef __INCLUDE_DDK_FSTYPES_H
 #define __INCLUDE_DDK_FSTYPES_H
-/* $Id: fstypes.h,v 1.15 2004/03/18 16:19:25 weiden Exp $ */
+/* $Id: fstypes.h,v 1.15.8.1 2004/06/27 01:13:11 hyperion Exp $ */
 
 #ifndef __USE_W32API
 
@@ -35,6 +35,90 @@
     IN PFILE_LOCK_INFO  FileLockInfo
 );
 
+typedef
+BOOLEAN (*PFILTER_REPORT_CHANGE) (
+            IN PVOID NotifyContext,
+            IN PVOID FilterContext
+            );
+
+typedef enum _FS_FILTER_SECTION_SYNC_TYPE {
+    SyncTypeOther = 0,
+    SyncTypeCreateSection
+} FS_FILTER_SECTION_SYNC_TYPE, *PFS_FILTER_SECTION_SYNC_TYPE;
+
+typedef union _FS_FILTER_PARAMETERS {
+
+    /*  AcquireForModifiedPageWriter */
+    struct {
+        PLARGE_INTEGER EndingOffset;
+    } AcquireForModifiedPageWriter;
+
+    /*  ReleaseForModifiedPageWriter */
+    struct {
+        PERESOURCE ResourceToRelease;
+    } ReleaseForModifiedPageWriter;
+
+    /*  AcquireForSectionSynchronization */
+    struct {
+        FS_FILTER_SECTION_SYNC_TYPE SyncType;
+        ULONG PageProtection;
+    } AcquireForSectionSynchronization;
+
+    /*  Other */
+    struct {
+        PVOID Argument1;
+        PVOID Argument2;
+        PVOID Argument3;
+        PVOID Argument4;
+        PVOID Argument5;
+    } Others;
+
+} FS_FILTER_PARAMETERS, *PFS_FILTER_PARAMETERS;
+
+typedef struct _FS_FILTER_CALLBACK_DATA {
+
+    ULONG SizeOfFsFilterCallbackData;
+    UCHAR Operation;
+    UCHAR Reserved;
+    struct _DEVICE_OBJECT *DeviceObject;
+    struct _FILE_OBJECT *FileObject;
+    FS_FILTER_PARAMETERS Parameters;
+
+} FS_FILTER_CALLBACK_DATA, *PFS_FILTER_CALLBACK_DATA;
+
+typedef
+NTSTATUS
+(*PFS_FILTER_CALLBACK) (
+    IN PFS_FILTER_CALLBACK_DATA Data,
+    OUT PVOID *CompletionContext
+    );
+
+typedef
+VOID
+(*PFS_FILTER_COMPLETION_CALLBACK) (
+    IN PFS_FILTER_CALLBACK_DATA Data,
+    IN NTSTATUS OperationStatus,
+    IN PVOID CompletionContext
+    );
+
+typedef struct _FS_FILTER_CALLBACKS {
+
+    ULONG SizeOfFsFilterCallbacks;
+    ULONG Reserved;
+    PFS_FILTER_CALLBACK PreAcquireForSectionSynchronization;
+    PFS_FILTER_COMPLETION_CALLBACK PostAcquireForSectionSynchronization;
+    PFS_FILTER_CALLBACK PreReleaseForSectionSynchronization;
+    PFS_FILTER_COMPLETION_CALLBACK PostReleaseForSectionSynchronization;
+    PFS_FILTER_CALLBACK PreAcquireForCcFlush;
+    PFS_FILTER_COMPLETION_CALLBACK PostAcquireForCcFlush;
+    PFS_FILTER_CALLBACK PreReleaseForCcFlush;
+    PFS_FILTER_COMPLETION_CALLBACK PostReleaseForCcFlush;
+    PFS_FILTER_CALLBACK PreAcquireForModifiedPageWriter;
+    PFS_FILTER_COMPLETION_CALLBACK PostAcquireForModifiedPageWriter;
+    PFS_FILTER_CALLBACK PreReleaseForModifiedPageWriter;
+    PFS_FILTER_COMPLETION_CALLBACK PostReleaseForModifiedPageWriter;
+
+} FS_FILTER_CALLBACKS, *PFS_FILTER_CALLBACKS;
 
 typedef struct _FILE_LOCK {
     PCOMPLETE_LOCK_IRP_ROUTINE  CompleteLockIrpRoutine;
@@ -71,6 +155,21 @@
 } NOTIFY_SYNC, * PNOTIFY_SYNC;
 
 
+typedef struct _FSRTL_ADVANCED_FCB_HEADER {
+    FSRTL_COMMON_FCB_HEADER Header;
+    PFAST_MUTEX FastMutex;
+    LIST_ENTRY FilterContexts;
+} FSRTL_ADVANCED_FCB_HEADER;
+
+typedef FSRTL_ADVANCED_FCB_HEADER *PFSRTL_ADVANCED_FCB_HEADER;
+
+typedef struct _FSRTL_PER_STREAM_CONTEXT {
+    LIST_ENTRY Links;
+    PVOID OwnerId;
+    PVOID InstanceId;
+    PFREE_FUNCTION FreeCallback;
+} FSRTL_PER_STREAM_CONTEXT, *PFSRTL_PER_STREAM_CONTEXT;
+
 typedef VOID
 (*POPLOCK_WAIT_COMPLETE_ROUTINE)(PVOID Context,
 				 PIRP Irp);

reactos/include/ddk
iodef.h 1.28 -> 1.28.2.1
diff -u -r1.28 -r1.28.2.1
--- iodef.h	19 Jun 2004 08:47:59 -0000	1.28
+++ iodef.h	27 Jun 2004 01:13:11 -0000	1.28.2.1
@@ -454,6 +454,17 @@
 #define IRP_MN_QUERY_DIRECTORY          0x01
 #define IRP_MN_NOTIFY_CHANGE_DIRECTORY  0x02
 
+
+typedef struct _FILE_QUOTA_INFORMATION {
+    ULONG NextEntryOffset;
+    ULONG SidLength;
+    LARGE_INTEGER ChangeTime;
+    LARGE_INTEGER QuotaUsed;
+    LARGE_INTEGER QuotaThreshold;
+    LARGE_INTEGER QuotaLimit;
+    LARGE_INTEGER Sid;
+} FILE_QUOTA_INFORMATION, *PFILE_QUOTA_INFORMATION;
+
 /*
  * Floppy device data type
  */

reactos/include/ddk
iofuncs.h 1.41 -> 1.41.16.1
diff -u -r1.41 -r1.41.16.1
--- iofuncs.h	19 Nov 2003 20:57:22 -0000	1.41
+++ iofuncs.h	27 Jun 2004 01:13:11 -0000	1.41.16.1
@@ -1,6 +1,6 @@
 #ifndef _INCLUDE_DDK_IOFUNCS_H
 #define _INCLUDE_DDK_IOFUNCS_H
-/* $Id: iofuncs.h,v 1.41 2003/11/19 20:57:22 gdalsnes Exp $ */
+/* $Id: iofuncs.h,v 1.41.16.1 2004/06/27 01:13:11 hyperion Exp $ */
 
 #ifdef __NTOSKRNL__
 extern POBJECT_TYPE EXPORTED IoAdapterObjectType;
@@ -415,8 +415,8 @@
 		      IN UCHAR MajorFunction,
 		      IN UCHAR MinorFunction,
 		      IN ULONG IoControlCode,
-		      IN PFILE_INFORMATION_CLASS FileInformationClass OPTIONAL,
-		      IN PFS_INFORMATION_CLASS FsInformationClass OPTIONAL);
+		      IN PVOID ExtraData OPTIONAL,
+		      IN PVOID ExtraData2 OPTIONAL);
 
 NTSTATUS
 STDCALL
@@ -788,11 +788,11 @@
 IoIsOperationSynchronous (
 	IN	PIRP	Irp
 	);
-BOOLEAN
 STDCALL
-IoIsSystemThread (
-	PVOID	Unknown0
-	);
+BOOLEAN
+IoIsSystemThread(
+    IN struct _ETHREAD* Thread
+    );
 PIRP
 STDCALL
 IoMakeAssociatedIrp (
@@ -1238,6 +1238,547 @@
 	PDRIVE_LAYOUT_INFORMATION	PartitionBuffer
 	);
 
+/* STUBS*/
+
+STDCALL
+NTSTATUS
+IoAttachDeviceToDeviceStackSafe(
+    IN PDEVICE_OBJECT SourceDevice,
+    IN PDEVICE_OBJECT TargetDevice,
+    OUT PDEVICE_OBJECT *AttachedToDeviceObject
+    );
+
+STDCALL
+VOID
+IoCancelFileOpen(
+    IN PDEVICE_OBJECT  DeviceObject,
+    IN PFILE_OBJECT    FileObject
+    );
+
+STDCALL
+NTSTATUS
+IoCheckQuerySetFileInformation(
+    IN FILE_INFORMATION_CLASS FileInformationClass,
+    IN ULONG Length,
+    IN BOOLEAN SetOperation
+    );
+
+STDCALL
+NTSTATUS
+IoCheckQuerySetVolumeInformation(
+    IN FS_INFORMATION_CLASS FsInformationClass,
+    IN ULONG Length,
+    IN BOOLEAN SetOperation
+    );
+
+
+STDCALL
+NTSTATUS
+IoCheckQuotaBufferValidity(
+    IN PFILE_QUOTA_INFORMATION QuotaBuffer,
+    IN ULONG QuotaLength,
+    OUT PULONG ErrorOffset
+    );
+
+STDCALL
+NTSTATUS
+IoCreateFileSpecifyDeviceObjectHint(
+    OUT PHANDLE FileHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    OUT PIO_STATUS_BLOCK IoStatusBlock,
+    IN PLARGE_INTEGER AllocationSize OPTIONAL,
+    IN ULONG FileAttributes,
+    IN ULONG ShareAccess,
+    IN ULONG Disposition,
+    IN ULONG CreateOptions,
+    IN PVOID EaBuffer OPTIONAL,
+    IN ULONG EaLength,
+    IN CREATE_FILE_TYPE CreateFileType,
+    IN PVOID ExtraCreateParameters OPTIONAL,
+    IN ULONG Options,
+    IN PVOID DeviceObject
+    );
+
+STDCALL
+PFILE_OBJECT
+IoCreateStreamFileObjectEx(
+    IN PFILE_OBJECT FileObject OPTIONAL,
+    IN PDEVICE_OBJECT DeviceObject OPTIONAL,
+    OUT PHANDLE FileObjectHandle OPTIONAL
+    );
+
+STDCALL
+PFILE_OBJECT
+IoCreateStreamFileObjectLite(
+    IN PFILE_OBJECT FileObject OPTIONAL,
+    IN PDEVICE_OBJECT DeviceObject OPTIONAL
+    );
+
+STDCALL
+NTSTATUS
+IoEnumerateDeviceObjectList(
+    IN  PDRIVER_OBJECT  DriverObject,
+    IN  PDEVICE_OBJECT  *DeviceObjectList,
+    IN  ULONG           DeviceObjectListSize,
+    OUT PULONG          ActualNumberDeviceObjects
+    );
+
+STDCALL
+BOOLEAN
+IoForwardIrpSynchronously(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN PIRP Irp
+    );
+
+#define IoForwardAndCatchIrp IoForwardIrpSynchronously
+
+STDCALL
+VOID
+IoFreeErrorLogEntry(
+    PVOID ElEntry
+    );
+
+STDCALL
+ULONG
+IoPnPDeliverServicePowerNotification(
+	ULONG		VetoedPowerOperation OPTIONAL,
+	ULONG		PowerNotification,
+	ULONG		Unknown OPTIONAL,
+	BOOLEAN  	Synchronous
+	);
+
+STDCALL
+NTSTATUS
+IoGetBootDiskInformation(
+    IN OUT PBOOTDISK_INFORMATION BootDiskInformation,
+    IN ULONG Size
+    );
+
+STDCALL
+PDEVICE_OBJECT
+IoGetDeviceAttachmentBaseRef(
+    IN PDEVICE_OBJECT DeviceObject
+    );
+
+STDCALL
+NTSTATUS
+IoGetDiskDeviceObject(
+    IN  PDEVICE_OBJECT  FileSystemDeviceObject,
+    OUT PDEVICE_OBJECT  *DiskDeviceObject
+    );
+
+STDCALL
+PDEVICE_OBJECT
+IoGetLowerDeviceObject(
+    IN  PDEVICE_OBJECT  DeviceObject
+    );
+
+STDCALL
+ULONG
+IoGetRequestorProcessId(
+    IN PIRP Irp
+    );
+
+STDCALL
+BOOLEAN
+IoIsFileOriginRemote(
+    IN PFILE_OBJECT FileObject
+    );
+
+STDCALL
+BOOLEAN
+IoIsValidNameGraftingBuffer(
+    IN PIRP Irp,
+    IN PREPARSE_DATA_BUFFER ReparseBuffer
+    );
+
+STDCALL
+NTSTATUS
+IoQueryFileDosDeviceName(
+    IN PFILE_OBJECT FileObject,
+    OUT POBJECT_NAME_INFORMATION *ObjectNameInformation
+    );
+
+STDCALL
+VOID
+IoRegisterBootDriverReinitialization(
+    IN PDRIVER_OBJECT DriverObject,
+    IN PDRIVER_REINITIALIZE DriverReinitializationRoutine,
+    IN PVOID Context
+    );
+
+STDCALL
+NTSTATUS
+IoRegisterLastChanceShutdownNotification(
+    IN PDEVICE_OBJECT DeviceObject
+    );
+
+STDCALL
+VOID
+IoReuseIrp(
+    IN OUT PIRP Irp,
+    IN NTSTATUS Iostatus
+    );
+
+STDCALL
+NTSTATUS
+IoSetCompletionRoutineEx(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN PIRP Irp,
+    IN PIO_COMPLETION_ROUTINE CompletionRoutine,
+    IN PVOID Context,
+    IN BOOLEAN InvokeOnSuccess,
+    IN BOOLEAN InvokeOnError,
+    IN BOOLEAN InvokeOnCancel
+    );
+
+STDCALL
+NTSTATUS
+IoSetFileOrigin(
+    IN PFILE_OBJECT FileObject,
+    IN BOOLEAN Remote
+    );
+
+STDCALL
+NTSTATUS
+IoSetSystemPartition(
+    PUNICODE_STRING VolumeNameString
+    );
+
+STDCALL
+NTSTATUS
+IoVolumeDeviceToDosName(
+    IN  PVOID           VolumeDeviceObject,
+    OUT PUNICODE_STRING DosName
+    );
+
+
+STDCALL
+NTSTATUS
+IoSetPartitionInformationEx(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN ULONG PartitionNumber,
+    IN struct _SET_PARTITION_INFORMATION_EX* PartitionInfo
+    );
+
+STDCALL
+NTSTATUS
+IoWritePartitionTableEx(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN struct _DRIVE_LAYOUT_INFORMATION_EX* DriveLayfout
+    );
+
+STDCALL
+NTSTATUS
+IoReadPartitionTableEx(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN struct _DRIVE_LAYOUT_INFORMATION_EX** DriveLayout
+    );
+
+STDCALL
+NTSTATUS
+IoCreateDisk(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN struct _CREATE_DISK* Disk
+    );
+
+STDCALL
+NTSTATUS
+NTAPI
+IoGetDeviceInterfaces(
+    IN CONST GUID *InterfaceClassGuid,
+    IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL,
+    IN ULONG Flags,
+    OUT PWSTR *SymbolicLinkList
+    );
+
+STDCALL
+NTSTATUS
+NTAPI
+IoGetDeviceInterfaceAlias(
+    IN PUNICODE_STRING SymbolicLinkName,
+    IN CONST GUID *AliasInterfaceClassGuid,
+    OUT PUNICODE_STRING AliasSymbolicLinkName
+    );
+
+STDCALL
+NTSTATUS
+IoOpenDeviceInterfaceRegistryKey(
+    IN PUNICODE_STRING SymbolicLinkName,
+    IN ACCESS_MASK DesiredAccess,
+    OUT PHANDLE DeviceInterfaceKey
+    );
+
+STDCALL
+NTSTATUS
+IoReadDiskSignature(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN ULONG BytesPerSector,
+    OUT PDISK_SIGNATURE Signature
+    );
+
+STDCALL
+NTSTATUS
+IoRegisterPlugPlayNotification(
+    IN IO_NOTIFICATION_EVENT_CATEGORY EventCategory,
+    IN ULONG EventCategoryFlags,
+    IN PVOID EventCategoryData OPTIONAL,
+    IN PDRIVER_OBJECT DriverObject,
+    IN PDRIVER_NOTIFICATION_CALLBACK_ROUTINE CallbackRoutine,
+    IN PVOID Context,
+    OUT PVOID *NotificationEntry
+    );
+
+STDCALL
+NTSTATUS
+IoUnregisterPlugPlayNotification(
+    IN PVOID NotificationEntry
+    );
+
+STDCALL
+NTSTATUS
+IoReportDetectedDevice(
+    IN PDRIVER_OBJECT DriverObject,
+    IN INTERFACE_TYPE LegacyBusType,
+    IN ULONG BusNumber,
+    IN ULONG SlotNumber,
+    IN PCM_RESOURCE_LIST ResourceList,
+    IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirements OPTIONAL,
+    IN BOOLEAN ResourceAssigned,
+    IN OUT PDEVICE_OBJECT *DeviceObject
+    );
+
+STDCALL
+NTSTATUS
+IoReportResourceForDetection(
+    IN PDRIVER_OBJECT DriverObject,
+    IN PCM_RESOURCE_LIST DriverList OPTIONAL,
+    IN ULONG DriverListSize OPTIONAL,
+    IN PDEVICE_OBJECT DeviceObject OPTIONAL,
+    IN PCM_RESOURCE_LIST DeviceList OPTIONAL,
+    IN ULONG DeviceListSize OPTIONAL,
+    OUT PBOOLEAN ConflictDetected
+    );
+
+STDCALL
+NTSTATUS
+IoReportTargetDeviceChange(
+    IN PDEVICE_OBJECT PhysicalDeviceObject,
+    IN PVOID NotificationStructure
+    );
+
+STDCALL
+NTSTATUS
+IoReportTargetDeviceChangeAsynchronous(
+    IN PDEVICE_OBJECT PhysicalDeviceObject,
+    IN PVOID NotificationStructure,
+    IN PDEVICE_CHANGE_COMPLETE_CALLBACK Callback,       OPTIONAL
+    IN PVOID Context    OPTIONAL
+    );
+
+STDCALL
+VOID
+IoRequestDeviceEject(
+    IN PDEVICE_OBJECT PhysicalDeviceObject
+    );
+
+STDCALL
+NTSTATUS
+IoVerifyPartitionTable(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN BOOLEAN FixErrors
+    );
+
+STDCALL
+VOID
+IoSetStartIoAttributes(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN BOOLEAN DeferredStartIo,
+    IN BOOLEAN NonCancelable
+    );
+
+STDCALL
+VOID
+IoSynchronousInvalidateDeviceRelations(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN DEVICE_RELATION_TYPE Type
+    );
+
+STDCALL
+NTSTATUS
+IoCreateDriver (
+	IN PUNICODE_STRING DriverName,   OPTIONAL
+	IN PDRIVER_INITIALIZE InitializationFunction
+	);
+
+STDCALL
+NTSTATUS
+IoValidateDeviceIoControlAccess(
+    IN  PIRP    Irp,
+    IN  ULONG   RequiredAccess
+    );
+
+STDCALL
+VOID
+IoDeleteDriver (
+	IN PDRIVER_OBJECT DriverObject
+	);
+
+STDCALL
+NTSTATUS
+IoGetRequestorSessionId(
+	IN PIRP Irp,
+	OUT PULONG pSessionId
+	);
+
+STDCALL
+NTSTATUS
+IoSetIoCompletion (
+	IN PVOID IoCompletion,
+	IN PVOID KeyContext,
+	IN PVOID ApcContext,
+	IN NTSTATUS IoStatus,
+	IN ULONG_PTR IoStatusInformation,
+	IN BOOLEAN Quota
+	);
+
+STDCALL
+NTSTATUS
+IoWMIRegistrationControl(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN ULONG Action
+	);
+
+STDCALL
+NTSTATUS
+IoWMIAllocateInstanceIds(
+    IN GUID *Guid,
+    IN ULONG InstanceCount,
+    OUT ULONG *FirstInstanceId
+    );
+
+STDCALL
+NTSTATUS
+IoWMISuggestInstanceName(
+    IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL,
+    IN PUNICODE_STRING SymbolicLinkName OPTIONAL,
+    IN BOOLEAN CombineNames,
+    OUT PUNICODE_STRING SuggestedInstanceName
+    );
+
+STDCALL
+NTSTATUS
+IoWMIWriteEvent(
+    IN PVOID WnodeEventItem
+    );
+
+STDCALL
+NTSTATUS IoWMIOpenBlock(
+    IN GUID *DataBlockGuid,
+    IN ULONG DesiredAccess,
+    OUT PVOID *DataBlockObject
+    );
+
+
+STDCALL
+NTSTATUS IoWMIQueryAllData(
+    IN PVOID DataBlockObject,
+    IN OUT ULONG *InOutBufferSize,
+    OUT PVOID OutBuffer
+);
+
+
+STDCALL
+NTSTATUS
+IoWMIQueryAllDataMultiple(
+    IN PVOID *DataBlockObjectList,
+    IN ULONG ObjectCount,
+    IN OUT ULONG *InOutBufferSize,
+    OUT PVOID OutBuffer
+);
+
+
+STDCALL
+NTSTATUS
+IoWMIQuerySingleInstance(
+    IN PVOID DataBlockObject,
+    IN PUNICODE_STRING InstanceName,
+    IN OUT ULONG *InOutBufferSize,
+    OUT PVOID OutBuffer
+);
+
+STDCALL
+NTSTATUS
+IoWMIQuerySingleInstanceMultiple(
+    IN PVOID *DataBlockObjectList,
+    IN PUNICODE_STRING InstanceNames,
+    IN ULONG ObjectCount,
+    IN OUT ULONG *InOutBufferSize,
+    OUT PVOID OutBuffer
+);
+
+STDCALL
+NTSTATUS
+IoWMISetSingleInstance(
+    IN PVOID DataBlockObject,
+    IN PUNICODE_STRING InstanceName,
+    IN ULONG Version,
+    IN ULONG ValueBufferSize,
+    IN PVOID ValueBuffer
+    );
+
+STDCALL
+NTSTATUS
+IoWMISetSingleItem(
+    IN PVOID DataBlockObject,
+    IN PUNICODE_STRING InstanceName,
+    IN ULONG DataItemId,
+    IN ULONG Version,
+    IN ULONG ValueBufferSize,
+    IN PVOID ValueBuffer
+    );
+
+STDCALL
+NTSTATUS
+IoWMIExecuteMethod(
+    IN PVOID DataBlockObject,
+    IN PUNICODE_STRING InstanceName,
+    IN ULONG MethodId,
+    IN ULONG InBufferSize,
+    IN OUT PULONG OutBufferSize,
+    IN OUT PUCHAR InOutBuffer
+    );
+
+typedef VOID (*WMI_NOTIFICATION_CALLBACK)(
+    PVOID Wnode,
+    PVOID Context
+    );
+
+STDCALL
+NTSTATUS
+IoWMISetNotificationCallback(
+    IN PVOID Object,
+    IN WMI_NOTIFICATION_CALLBACK Callback,
+    IN PVOID Context
+    );
+
+STDCALL
+NTSTATUS
+IoWMIHandleToInstanceName(
+    IN PVOID DataBlockObject,
+    IN HANDLE FileHandle,
+    OUT PUNICODE_STRING InstanceName
+    );
+
+STDCALL
+NTSTATUS
+IoWMIDeviceObjectToInstanceName(
+    IN PVOID DataBlockObject,
+    IN PDEVICE_OBJECT DeviceObject,
+    OUT PUNICODE_STRING InstanceName
+    );
+
 
 /* --- --- --- INTERNAL or REACTOS ONLY --- --- --- */
 

reactos/include/ddk
iotypes.h 1.62 -> 1.62.12.1
diff -u -r1.62 -r1.62.12.1
--- iotypes.h	5 Jan 2004 14:28:19 -0000	1.62
+++ iotypes.h	27 Jun 2004 01:13:11 -0000	1.62.12.1
@@ -1,4 +1,4 @@
-/* $Id: iotypes.h,v 1.62 2004/01/05 14:28:19 weiden Exp $
+/* $Id: iotypes.h,v 1.62.12.1 2004/06/27 01:13:11 hyperion Exp $
  *
  */
 
@@ -1089,6 +1089,135 @@
 } PARTITION_INFORMATION, *PPARTITION_INFORMATION;
 #endif
 
+typedef enum _PARTITION_STYLE {
+    PARTITION_STYLE_MBR,
+    PARTITION_STYLE_GPT,
+    PARTITION_STYLE_RAW
+} PARTITION_STYLE;
+
+typedef struct _PARTITION_INFORMATION_GPT {
+    GUID PartitionType;             
+    GUID PartitionId;                 
+    ULONG64 Attributes;                
+    WCHAR Name [36];                 
+} PARTITION_INFORMATION_GPT, *PPARTITION_INFORMATION_GPT;
+
+typedef struct _PARTITION_INFORMATION_MBR {
+    UCHAR PartitionType;
+    BOOLEAN BootIndicator;
+    BOOLEAN RecognizedPartition;
+    ULONG HiddenSectors;
+} PARTITION_INFORMATION_MBR, *PPARTITION_INFORMATION_MBR;
+
+typedef SET_PARTITION_INFORMATION SET_PARTITION_INFORMATION_MBR;
+typedef PARTITION_INFORMATION_GPT SET_PARTITION_INFORMATION_GPT;
+
+typedef struct _SET_PARTITION_INFORMATION_EX {
+    PARTITION_STYLE PartitionStyle;
+    union {
+        SET_PARTITION_INFORMATION_MBR Mbr;
+        SET_PARTITION_INFORMATION_GPT Gpt;
+    };
+} SET_PARTITION_INFORMATION_EX, *PSET_PARTITION_INFORMATION_EX;
+
+typedef struct _CREATE_DISK_GPT {
+    GUID DiskId;                    
+    ULONG MaxPartitionCount;       
+} CREATE_DISK_GPT, *PCREATE_DISK_GPT;
+
+typedef struct _CREATE_DISK_MBR {
+    ULONG Signature;
+} CREATE_DISK_MBR, *PCREATE_DISK_MBR;
+
+
+typedef struct _CREATE_DISK {
+    PARTITION_STYLE PartitionStyle;
+    union {
+        CREATE_DISK_MBR Mbr;
+        CREATE_DISK_GPT Gpt;
+    };
+} CREATE_DISK, *PCREATE_DISK;
+
+typedef struct _DRIVE_LAYOUT_INFORMATION_GPT {
+    GUID DiskId;
+    LARGE_INTEGER StartingUsableOffset;
+    LARGE_INTEGER UsableLength;
+    ULONG MaxPartitionCount;
+} DRIVE_LAYOUT_INFORMATION_GPT, *PDRIVE_LAYOUT_INFORMATION_GPT;
+
+typedef struct _DRIVE_LAYOUT_INFORMATION_MBR {
+    ULONG Signature;
+} DRIVE_LAYOUT_INFORMATION_MBR, *PDRIVE_LAYOUT_INFORMATION_MBR;
+
+typedef struct _PARTITION_INFORMATION_EX {
+    PARTITION_STYLE PartitionStyle;
+    LARGE_INTEGER StartingOffset;
+    LARGE_INTEGER PartitionLength;
+    ULONG PartitionNumber;
+    BOOLEAN RewritePartition;
+    union {
+        PARTITION_INFORMATION_MBR Mbr;
+        PARTITION_INFORMATION_GPT Gpt;
+    };
+} PARTITION_INFORMATION_EX, *PPARTITION_INFORMATION_EX;
+
+typedef struct _DRIVE_LAYOUT_INFORMATION_EX {
+    ULONG PartitionStyle;
+    ULONG PartitionCount;
+    union {
+        DRIVE_LAYOUT_INFORMATION_MBR Mbr;
+        DRIVE_LAYOUT_INFORMATION_GPT Gpt;
+    };
+    PARTITION_INFORMATION_EX PartitionEntry[1];
+} DRIVE_LAYOUT_INFORMATION_EX, *PDRIVE_LAYOUT_INFORMATION_EX;
+
+typedef struct _BOOTDISK_INFORMATION {
+    LONGLONG BootPartitionOffset;
+    LONGLONG SystemPartitionOffset;
+    ULONG BootDeviceSignature;
+    ULONG SystemDeviceSignature;
+} BOOTDISK_INFORMATION, *PBOOTDISK_INFORMATION;
+
+
+typedef struct _DISK_SIGNATURE {
+    ULONG PartitionStyle;
+    union {
+        struct {
+            ULONG Signature;
+            ULONG CheckSum;
+        } Mbr;
+
+        struct {
+            GUID DiskId;
+        } Gpt;
+    };
+} DISK_SIGNATURE, *PDISK_SIGNATURE;
+
+typedef struct _REPARSE_DATA_BUFFER {
+    ULONG  ReparseTag;
+    USHORT ReparseDataLength;
+    USHORT Reserved;
+    union {
+        struct {
+            USHORT SubstituteNameOffset;
+            USHORT SubstituteNameLength;
+            USHORT PrintNameOffset;
+            USHORT PrintNameLength;
+            WCHAR PathBuffer[1];
+        } SymbolicLinkReparseBuffer;
+        struct {
+            USHORT SubstituteNameOffset;
+            USHORT SubstituteNameLength;
+            USHORT PrintNameOffset;
+            USHORT PrintNameLength;
+            WCHAR PathBuffer[1];
+        } MountPointReparseBuffer;
+        struct {
+            UCHAR  DataBuffer[1];
+        } GenericReparseBuffer;
+    };
+} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;
+
 typedef struct _DRIVER_LAYOUT_INFORMATION
 {
    ULONG PartitionCount;
@@ -1127,7 +1256,6 @@
    LARGE_INTEGER TimeOut;
 } IO_MAILSLOT_CREATE_BUFFER, *PIO_MAILSLOT_CREATE_BUFFER;
 
-
 /* error logging */
 
 typedef struct _IO_ERROR_LOG_PACKET

reactos/include/ddk
kefuncs.h 1.41 -> 1.41.6.1
diff -u -r1.41 -r1.41.6.1
--- kefuncs.h	14 May 2004 21:25:08 -0000	1.41
+++ kefuncs.h	27 Jun 2004 01:13:11 -0000	1.41.6.1
@@ -1,3 +1,4 @@
+
 #ifndef __INCLUDE_DDK_KEFUNCS_H
 #define __INCLUDE_DDK_KEFUNCS_H
 
@@ -257,17 +258,6 @@
 	VOID
 	);
 
-/*
- * FUNCTION: Raises a user mode exception
- * ARGUMENTS:
- *	ExceptionCode = Status code of the exception
- */
-VOID
-STDCALL
-KeRaiseUserException (
-	IN	NTSTATUS	ExceptionCode
-	);
-
 LONG
 STDCALL
 KeReadStateEvent (
@@ -482,7 +472,11 @@
  *     Value2 = The value of the high dword of the descriptor.
  */
 VOID
-KeSetGdtSelector(ULONG Entry, ULONG Value1, ULONG Value2);
+KeSetGdtSelector(
+	ULONG Entry,
+	ULONG Value1,
+	ULONG Value2
+);
 
 /*
  * FUNCTION: Releases a set of Global Descriptor Table Selectors
@@ -490,8 +484,11 @@
  *	SelArray = 
  *	NumOfSelectors = 
  */
-NTSTATUS KeI386ReleaseGdtSelectors(OUT PULONG SelArray,
-				   IN ULONG NumOfSelectors);
+NTSTATUS 
+KeI386ReleaseGdtSelectors(
+	OUT PULONG SelArray,
+	IN ULONG NumOfSelectors
+);
 
 /*
  * FUNCTION: Allocates a set of Global Descriptor Table Selectors
@@ -499,8 +496,11 @@
  *	SelArray = 
  *	NumOfSelectors = 
  */
-NTSTATUS KeI386AllocateGdtSelectors(OUT PULONG SelArray,
-				    IN ULONG NumOfSelectors);
+NTSTATUS
+KeI386AllocateGdtSelectors(
+	OUT PULONG SelArray,
+    IN ULONG NumOfSelectors
+);
 
 
 KIRQL
@@ -536,4 +536,251 @@
 
 VOID STDCALL KiDispatchInterrupt(VOID);
 
+/* Stubs Start here */
+
+STDCALL
+VOID
+KeReleaseInterruptSpinLock(
+	IN PKINTERRUPT Interrupt,
+	IN KIRQL OldIrql
+	);
+
+STDCALL
+BOOLEAN
+KeAreApcsDisabled(
+	VOID
+	);
+
+STDCALL
+VOID
+KeFlushQueuedDpcs(
+	VOID
+	);
+
+STDCALL
+ULONG
+KeGetRecommendedSharedDataAlignment(
+	VOID
+	);
+
+STDCALL
+ULONG
+KeQueryRuntimeThread(
+	IN PKTHREAD Thread,
+	OUT PULONG UserTime
+	);    
+
+STDCALL
+BOOLEAN
+KeSetKernelStackSwapEnable(
+	IN BOOLEAN Enable
+	);
+
+STDCALL
+BOOLEAN
+KeDeregisterBugCheckReasonCallback(
+    IN PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord
+    );
+
+STDCALL
+BOOLEAN
+KeRegisterBugCheckReasonCallback(
+    IN PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord,
+    IN PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine,
+    IN KBUGCHECK_CALLBACK_REASON Reason,
+    IN PUCHAR Component
+    );
+
+STDCALL
+VOID 
+KeTerminateThread(
+	IN KPRIORITY   	 Increment  	 
+);
+
+STDCALL
+VOID 
+KeIsExecutingDpc(
+	VOID
+);
+
+STDCALL
+VOID
+KeSetEventBoostPriority(
+	IN PKEVENT Event,
+	IN PKTHREAD *Thread OPTIONAL
+);
+
+STDCALL
+PVOID
+KeFindConfigurationEntry(
+    IN PVOID Unknown,
+    IN ULONG Class,
+    IN CONFIGURATION_TYPE Type,
+    IN PULONG RegKey
+);
+
+STDCALL
+PVOID
+KeFindConfigurationNextEntry(
+    IN PVOID Unknown,
+    IN ULONG Class,
+    IN CONFIGURATION_TYPE Type,
+    IN PULONG RegKey,
+    IN PVOID *NextLink
+);
+
+STDCALL
+VOID
+KeFlushEntireTb(
+    IN ULONGLONG Flag
+);
+
+STDCALL
+VOID
+KeRevertToUserAffinityThread(
+    VOID
+);
+
+STDCALL
+VOID
+KiCoprocessorError(
+    VOID
+);
+
+STDCALL
+VOID
+KiUnexpectedInterrupt(
+    VOID
+);
+
+STDCALL
+VOID
+KeSetDmaIoCoherency(
+    IN ULONG Coherency
+);
+
+STDCALL
+VOID
+KeSetProfileIrql(
+    IN KIRQL ProfileIrql
+);
+
+STDCALL
+VOID
+KeSetSystemAffinityThread(
+    IN KAFFINITY Affinity
+);
+
+STDCALL
+NTSTATUS
+KeUserModeCallback(
+    IN ULONG	FunctionID,
+    IN PVOID	InputBuffer,
+    IN ULONG	InputLength,
+    OUT PVOID	*OutputBuffer,
+    OUT PULONG	OutputLength
+);
+
+STDCALL
+VOID
+KeSetTimeIncrement(
+    IN ULONG MaxIncrement,
+    IN ULONG MinIncrement
+);
+
+STDCALL
+VOID
+KeCapturePersistentThreadState(
+	IN PVOID	CurrentThread,
+	IN ULONG	Setting1,
+	IN ULONG	Setting2,
+	IN ULONG	Setting3,
+	IN ULONG	Setting4,
+	IN ULONG	Setting5,
+	IN PVOID	ThreadState
+);
+
+STDCALL
+BOOLEAN
+KeRemoveSystemServiceTable(
+    IN PUCHAR Number
+);
+
+NTSTATUS
+KeI386FlatToGdtSelector(
+	IN ULONG	Base,
+	IN USHORT	Length,
+	IN USHORT	Selector
+);
+
+STDCALL
+CCHAR
+KeSetIdealProcessorThread (
+	IN PKTHREAD Thread,
+	IN CCHAR Processor
+	);
+
+typedef
+VOID
+(FASTCALL *PTIME_UPDATE_NOTIFY_ROUTINE)(
+    IN HANDLE ThreadId,
+    IN KPROCESSOR_MODE Mode
+    );
+
+VOID
+FASTCALL
+KeSetTimeUpdateNotifyRoutine(
+    IN PTIME_UPDATE_NOTIFY_ROUTINE NotifyRoutine
+    );
+
+STDCALL
+PKDEVICE_QUEUE_ENTRY
+KeRemoveByKeyDeviceQueueIfBusy (
+    IN PKDEVICE_QUEUE DeviceQueue,
+    IN ULONG SortKey
+    );
+
+STDCALL
+KAFFINITY
+KeQueryActiveProcessors (
+    VOID
+    );
+
+VOID
+FASTCALL
+KeAcquireInStackQueuedSpinLockAtDpcLevel(
+    IN PKSPIN_LOCK SpinLock,
+    IN PKLOCK_QUEUE_HANDLE LockHandle
+    );
+
+VOID
+FASTCALL
+KeReleaseInStackQueuedSpinLockFromDpcLevel(
+    IN PKLOCK_QUEUE_HANDLE LockHandle
+    );
+
+STDCALL
+KPRIORITY
+KeQueryPriorityThread (
+    IN PKTHREAD Thread
+    );  
+
+STDCALL
+KIRQL
+KeAcquireInterruptSpinLock(
+    IN PKINTERRUPT Interrupt
+    );
+
+VOID
+__cdecl
+KeSaveStateForHibernate(
+    IN PVOID State
+);
+
+STDCALL
+NTSTATUS
+KeRaiseUserException(
+	IN NTSTATUS	ExceptionCode
+);
+
 #endif /* __INCLUDE_DDK_KEFUNCS_H */

reactos/include/ddk
ketypes.h 1.47 -> 1.47.12.1
diff -u -r1.47 -r1.47.12.1
--- ketypes.h	5 Jan 2004 14:28:19 -0000	1.47
+++ ketypes.h	27 Jun 2004 01:13:11 -0000	1.47.12.1
@@ -36,18 +36,7 @@
 
 struct _DISPATCHER_HEADER;
 
-typedef struct _KWAIT_BLOCK
-/*
- * PURPOSE: Object describing the wait a thread is currently performing
- */
-{
-   LIST_ENTRY WaitListEntry;
-   struct _KTHREAD* Thread;
-   struct _DISPATCHER_HEADER *Object;
-   struct _KWAIT_BLOCK* NextWaitBlock;
-   USHORT WaitKey;
-   USHORT WaitType;
-} KWAIT_BLOCK, *PKWAIT_BLOCK;
+
 
 #include <pshpack1.h>
 
@@ -163,6 +152,29 @@
 
 struct _KDPC;
 
+typedef struct _KSPIN_LOCK_QUEUE {
+    struct _KSPIN_LOCK_QUEUE * volatile Next;
+    PKSPIN_LOCK volatile Lock;
+} KSPIN_LOCK_QUEUE, *PKSPIN_LOCK_QUEUE;
+
+typedef struct _KLOCK_QUEUE_HANDLE {
+    KSPIN_LOCK_QUEUE LockQueue;
+    KIRQL OldIrql;
+} KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE;
+
+typedef struct _KWAIT_BLOCK
+/*
+ * PURPOSE: Object describing the wait a thread is currently performing
+ */
+{
+   LIST_ENTRY WaitListEntry;
+   struct _KTHREAD* Thread;
+   struct _DISPATCHER_HEADER *Object;
+   struct _KWAIT_BLOCK* NextWaitBlock;
+   USHORT WaitKey;
+   USHORT WaitType;
+} KWAIT_BLOCK, *PKWAIT_BLOCK;
+
 /*
  * PURPOSE: Defines a delayed procedure call routine
  * NOTE:
@@ -229,6 +241,31 @@
   PKDPC BufferChainingDpc;
 } WAIT_CONTEXT_BLOCK, *PWAIT_CONTEXT_BLOCK;
 
+typedef enum _KBUGCHECK_CALLBACK_REASON {
+    KbCallbackInvalid,
+    KbCallbackReserved1,
+    KbCallbackSecondaryDumpData,
+    KbCallbackDumpIo,
+} KBUGCHECK_CALLBACK_REASON;
+
+typedef
+VOID
+(*PKBUGCHECK_REASON_CALLBACK_ROUTINE) (
+    IN KBUGCHECK_CALLBACK_REASON Reason,
+    IN PVOID Record, // This should be struct _KBUGCHECK_REASON_CALLBACK_RECORD* but minggw doesn't want to allow that...
+    IN OUT PVOID ReasonSpecificData,
+    IN ULONG ReasonSpecificDataLength
+    );
+
+typedef struct _KBUGCHECK_REASON_CALLBACK_RECORD {
+    LIST_ENTRY Entry;
+    PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine;
+    PUCHAR Component;
+    ULONG_PTR Checksum;
+    KBUGCHECK_CALLBACK_REASON Reason;
+    UCHAR State;
+} KBUGCHECK_REASON_CALLBACK_RECORD, *PKBUGCHECK_REASON_CALLBACK_RECORD;
+
 struct _KINTERRUPT;
 
 typedef BOOLEAN STDCALL_FUNC
@@ -246,6 +283,45 @@
 
 typedef LONG FIX; /* fixed-point number */
 
+typedef struct _M128 {
+    ULONGLONG Low;
+    LONGLONG High;
+} M128, *PM128;
+
+typedef struct _KEXCEPTION_FRAME {
+    ULONG64 P1Home;
+    ULONG64 P2Home;
+    ULONG64 P3Home;
+    ULONG64 P4Home;
+    ULONG64 P5;
+    ULONG64 InitialStack;
+    M128 Xmm6;
+    M128 Xmm7;
+    M128 Xmm8;
+    M128 Xmm9;
+    M128 Xmm10;
+    M128 Xmm11;
+    M128 Xmm12;
+    M128 Xmm13;
+    M128 Xmm14;
+    M128 Xmm15;
+    ULONG64 TrapFrame;
+    ULONG64 CallbackStack;
+    ULONG64 OutputBuffer;
+    ULONG64 OutputLength;
+    UCHAR ExceptionRecord[64];
+    ULONG64 Fill1;
+    ULONG64 Rbp;
+    ULONG64 Rbx;
+    ULONG64 Rdi;
+    ULONG64 Rsi;
+    ULONG64 R12;
+    ULONG64 R13;
+    ULONG64 R14;
+    ULONG64 R15;
+    ULONG64 Return;
+} KEXCEPTION_FRAME, *PKEXCEPTION_FRAME;
+
 /* copied from W32API */
 typedef struct _KFLOATING_SAVE
 {

reactos/include/ddk
ldrfuncs.h 1.5 -> 1.5.22.1
diff -u -r1.5 -r1.5.22.1
--- ldrfuncs.h	8 Sep 2002 10:47:44 -0000	1.5
+++ ldrfuncs.h	27 Jun 2004 01:13:11 -0000	1.5.22.1
@@ -1,6 +1,6 @@
 #ifndef __INCLUDE_DDK_LDRFUNCS_H
 #define __INCLUDE_DDK_LDRFUNCS_H
-/* $Id: ldrfuncs.h,v 1.5 2002/09/08 10:47:44 chorns Exp $ */
+/* $Id: ldrfuncs.h,v 1.5.22.1 2004/06/27 01:13:11 hyperion Exp $ */
 
 NTSTATUS STDCALL
 LdrAccessResource(IN  PVOID BaseAddress,
@@ -14,4 +14,17 @@
                   IN  ULONG Level,
                   OUT PIMAGE_RESOURCE_DATA_ENTRY *ResourceDataEntry);
 
+/*NTSTATUS STDCALL 
+LdrFindResourceDirectory_U(	IN PVOID   						BaseAddress,
+							IN PLDR_RESOURCE_INFO			ResourceInfo,
+							IN  ULONG						Level,
+							OUT PIMAGE_RESOURCE_DIRECTORY	*ResourceDirectory);
+*/
+NTSTATUS STDCALL
+LdrEnumResources(IN PVOID						BaseAddress,
+				 IN PLDR_RESOURCE_INFO			ResourceInfo,
+				 IN  ULONG						Level,
+				 IN OUT PULONG					ResourceCount,
+				 OUT PVOID						Resources  OPTIONAL);
+
 #endif /* __INCLUDE_DDK_LDRFUNCS_H */

reactos/include/ntos
bootvid.h 1.1 -> 1.1.22.1
diff -u -r1.1 -r1.1.22.1
--- bootvid.h	11 Aug 2003 18:50:12 -0000	1.1
+++ bootvid.h	27 Jun 2004 01:13:12 -0000	1.1.22.1
@@ -1,76 +1,75 @@
-#ifndef __INCLUDE_NTOS_BOOTVID_H
-#define __INCLUDE_NTOS_BOOTVID_H
-
-VOID
-STDCALL
-InbvAcquireDisplayOwnership(VOID);
-
-BOOLEAN
-STDCALL
-InbvCheckDisplayOwnership(VOID);
-
-BOOLEAN
-STDCALL
-InbvDisplayString(IN PCHAR String);
-
-VOID
-STDCALL
-InbvEnableBootDriver(IN BOOLEAN Enable);
-
-BOOLEAN
-STDCALL
-InbvEnableDisplayString(IN BOOLEAN Enable);
-
-VOID
-STDCALL
-InbvInstallDisplayStringFilter(IN PVOID Unknown);
-
-BOOLEAN
-STDCALL
-InbvIsBootDriverInstalled(VOID);
-
-VOID
-STDCALL
-InbvNotifyDisplayOwnershipLost(IN PVOID Callback);
-
-BOOLEAN
-STDCALL
-InbvResetDisplay(VOID);
-
-VOID
-STDCALL
-InbvSetScrollRegion(IN ULONG Left,
-  IN ULONG Top,
-  IN ULONG Width,
-  IN ULONG Height);
-
-VOID
-STDCALL
-InbvSetTextColor(IN ULONG Color);
-
-VOID
-STDCALL
-InbvSolidColorFill(IN ULONG Left,
-  IN ULONG Top,
-  IN ULONG Width,
-  IN ULONG Height,
-  IN ULONG Color);
-
-
-VOID
-STDCALL
-VidCleanUp(VOID);
-
-BOOLEAN
-STDCALL
-VidInitialize(VOID);
-
-BOOLEAN
-STDCALL
-VidResetDisplay(VOID);
-
-BOOLEAN
-STDCALL
-VidIsBootDriverInstalled(VOID);
-
-#endif /* __INCLUDE_NTOS_BOOTVID_H */
+#ifndef __INCLUDE_NTOS_BOOTVID_H
+#define __INCLUDE_NTOS_BOOTVID_H
+
+VOID
+STDCALL
+InbvAcquireDisplayOwnership(VOID);
+
+BOOLEAN
+STDCALL
+InbvCheckDisplayOwnership(VOID);
+
+BOOLEAN
+STDCALL
+InbvDisplayString(IN PCHAR String);
+
+VOID
+STDCALL
+InbvEnableBootDriver(IN BOOLEAN Enable);
+
+BOOLEAN
+STDCALL
+InbvEnableDisplayString(IN BOOLEAN Enable);
+
+VOID
+STDCALL
+InbvInstallDisplayStringFilter(IN PVOID Unknown);
+
+BOOLEAN
+STDCALL
+InbvIsBootDriverInstalled(VOID);
+
+VOID
+STDCALL
+InbvNotifyDisplayOwnershipLost(IN PVOID Callback);
+
+BOOLEAN
+STDCALL
+InbvResetDisplay(VOID);
+
+VOID
+STDCALL
+InbvSetScrollRegion(IN ULONG Left,
+  IN ULONG Top,
+  IN ULONG Width,
+  IN ULONG Height);
+
+VOID
+STDCALL
+InbvSetTextColor(IN ULONG Color);
+
+VOID
+STDCALL
+InbvSolidColorFill(IN ULONG Left,
+  IN ULONG Top,
+  IN ULONG Width,
+  IN ULONG Height,
+  IN ULONG Color);
+
+VOID
+STDCALL
+VidCleanUp(VOID);
+
+BOOLEAN
+STDCALL
+VidInitialize(VOID);
+
+BOOLEAN
+STDCALL
+VidResetDisplay(VOID);
+
+BOOLEAN
+STDCALL
+VidIsBootDriverInstalled(VOID);
+
+#endif /* __INCLUDE_NTOS_BOOTVID_H */

reactos/include/win32k
ntuser.h 1.136 -> 1.136.6.1
diff -u -r1.136 -r1.136.6.1
--- ntuser.h	28 May 2004 21:33:40 -0000	1.136
+++ ntuser.h	27 Jun 2004 01:13:12 -0000	1.136.6.1
@@ -1538,7 +1538,7 @@
 NtUserSwitchDesktop(
   HDESK hDesktop);
 
-DWORD
+BOOL
 STDCALL
 NtUserSystemParametersInfo(
   UINT uiAction,

reactos/lib/comctl32
imagelist.c 1.10 -> 1.10.6.1
diff -u -r1.10 -r1.10.6.1
--- imagelist.c	15 Apr 2004 08:29:56 -0000	1.10
+++ imagelist.c	27 Jun 2004 01:13:12 -0000	1.10.6.1
@@ -1112,7 +1112,7 @@
     /*
      * Draw the initial image
      */
-    if(fStyle & ILD_MASK) {
+    if (fStyle & ILD_MASK) {
 	if (himl->hbmMask) {
             BitBlt(hImageDC, 0, 0, cx, cy, hMaskListDC, lx, ly, SRCCOPY);
 	} else {
@@ -2824,23 +2824,52 @@
     if ((ilc >= ILC_COLOR4 && ilc <= ILC_COLOR32) || ilc == ILC_COLOR)
     {
         VOID* bits;
-        BITMAPINFO bmi;
+        BITMAPINFO *bmi;
 
         TRACE("Creating DIBSection: %d Bits per Pixel\n", himl->uBitsPixel);
 
-	bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
-	bmi.bmiHeader.biWidth = width;
-	bmi.bmiHeader.biHeight = height;
-	bmi.bmiHeader.biPlanes = 1;
-	bmi.bmiHeader.biBitCount = himl->uBitsPixel;
-	bmi.bmiHeader.biCompression = BI_RGB;
-	bmi.bmiHeader.biSizeImage = 0;
-	bmi.bmiHeader.biXPelsPerMeter = 0;
-	bmi.bmiHeader.biYPelsPerMeter = 0;
-	bmi.bmiHeader.biClrUsed = 0;
-	bmi.bmiHeader.biClrImportant = 0;
+	if (himl->uBitsPixel <= ILC_COLOR8)
+	{
+	    LPPALETTEENTRY pal;
+	    ULONG i, colors;
+	    BYTE temp;
+
+	    colors = 1 << himl->uBitsPixel;
+	    bmi = HeapAlloc(GetProcessHeap(), 0, sizeof(BITMAPINFOHEADER) +
+	                    sizeof(PALETTEENTRY) * colors);
+
+	    pal = (LPPALETTEENTRY)bmi->bmiColors;
+	    GetPaletteEntries(GetStockObject(DEFAULT_PALETTE), 0, colors, pal);
+
+	    /* Swap colors returned by GetPaletteEntries so we can use them for
+	     * CreateDIBSection call. */
+	    for (i = 0; i < colors; i++)
+	    {
+	        temp = pal[i].peBlue;
+	        bmi->bmiColors[i].rgbRed = pal[i].peRed;
+	        bmi->bmiColors[i].rgbBlue = temp;
+	    }
+	}
+	else
+	{
+	    bmi = HeapAlloc(GetProcessHeap(), 0, sizeof(BITMAPINFOHEADER));
+	}
+
+	bmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
+	bmi->bmiHeader.biWidth = width;
+	bmi->bmiHeader.biHeight = height;
+	bmi->bmiHeader.biPlanes = 1;
+	bmi->bmiHeader.biBitCount = himl->uBitsPixel;
+	bmi->bmiHeader.biCompression = BI_RGB;
+	bmi->bmiHeader.biSizeImage = 0;
+	bmi->bmiHeader.biXPelsPerMeter = 0;
+	bmi->bmiHeader.biYPelsPerMeter = 0;
+	bmi->bmiHeader.biClrUsed = 0;
+	bmi->bmiHeader.biClrImportant = 0;
+
+	hbmNewBitmap = CreateDIBSection(hdc, bmi, DIB_RGB_COLORS, &bits, 0, 0);
 
-	hbmNewBitmap = CreateDIBSection(hdc, &bmi, DIB_RGB_COLORS, &bits, 0, 0);
+	HeapFree(GetProcessHeap(), 0, bmi);
     }
     else /*if (ilc == ILC_COLORDDB)*/
     {

reactos/lib/kernel32/misc
stubs.c 1.78 -> 1.78.2.1
diff -u -r1.78 -r1.78.2.1
--- stubs.c	20 Jun 2004 23:42:07 -0000	1.78
+++ stubs.c	27 Jun 2004 01:13:12 -0000	1.78.2.1
@@ -1,4 +1,4 @@
-/* $Id: stubs.c,v 1.78 2004/06/20 23:42:07 gdalsnes Exp $
+/* $Id: stubs.c,v 1.78.2.1 2004/06/27 01:13:12 hyperion Exp $
  *
  * KERNEL32.DLL stubs (unimplemented functions)
  * Remove from this file, if you implement them.
@@ -106,8 +106,44 @@
     int cchCount2
     )
 {
-    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-    return 0;
+    INT Result;
+    UNICODE_STRING String1, String2;
+
+    if (!lpString1 || !lpString2)
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
+        return 0;
+    }
+
+    if (dwCmpFlags & ~(NORM_IGNORECASE | NORM_IGNORENONSPACE |
+        NORM_IGNORESYMBOLS | SORT_STRINGSORT | NORM_IGNOREKANATYPE |
+        NORM_IGNOREWIDTH | 0x10000000))
+    {
+        SetLastError(ERROR_INVALID_FLAGS);
+        return 0;
+    }
+
+    if (dwCmpFlags & ~NORM_IGNORECASE)
+    {
+        DPRINT1("CompareString: Unimplemented flags - 0x%x\n", 
+           dwCmpFlags & ~NORM_IGNORECASE);
+    }
+
+    if (cchCount1 < 0) cchCount1 = lstrlenW(lpString1);
+    if (cchCount2 < 0) cchCount2 = lstrlenW(lpString2);
+
+    String1.Length = String1.MaximumLength = cchCount1 * sizeof(WCHAR);
+    String1.Buffer = (LPWSTR)lpString1;
+    String2.Length = String2.MaximumLength = cchCount2 * sizeof(WCHAR);
+    String2.Buffer = (LPWSTR)lpString2;
+
+    Result = RtlCompareUnicodeString(
+       &String1, &String2, dwCmpFlags & NORM_IGNORECASE);
+
+    if (Result) /* need to translate result */
+        return (Result < 0) ? CSTR_LESS_THAN : CSTR_GREATER_THAN;
+
+    return CSTR_EQUAL;
 }
 
 

reactos/lib/ntdll/ldr
utils.c 1.90 -> 1.90.2.1
diff -u -r1.90 -r1.90.2.1
--- utils.c	20 Jun 2004 10:36:17 -0000	1.90
+++ utils.c	27 Jun 2004 01:13:12 -0000	1.90.2.1
@@ -1,4 +1,4 @@
-/* $Id: utils.c,v 1.90 2004/06/20 10:36:17 gvg Exp $
+/* $Id: utils.c,v 1.90.2.1 2004/06/27 01:13:12 hyperion Exp $
  * 
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -717,7 +717,10 @@
   NTSTATUS              Status;
   PLDR_MODULE           Module;
 
-  TRACE_LDR("LdrLoadDll, loading %wZ%s%S\n", Name, SearchPath ? " from " : "", SearchPath ? SearchPath : L"");
+  TRACE_LDR("LdrLoadDll, loading %wZ%s%S\n",
+            Name,
+            SearchPath ? " from " : "",
+            SearchPath ? SearchPath : L"");
 
   if (Name == NULL)
     {
@@ -1217,179 +1220,125 @@
  * NOTE
  *
  */
-static NTSTATUS LdrPerformRelocations (PIMAGE_NT_HEADERS        NTHeaders,
-                                       PVOID                    ImageBase)
+static NTSTATUS
+LdrPerformRelocations(PIMAGE_NT_HEADERS NTHeaders,
+                      PVOID ImageBase)
 {
-  USHORT                        NumberOfEntries;
-  PUSHORT                       pValue16;
-  ULONG                 RelocationRVA;
-  ULONG                 Delta32;
-  ULONG                 Offset;
-  PULONG                        pValue32;
-  PRELOCATION_DIRECTORY RelocationDir;
-  PRELOCATION_ENTRY     RelocationBlock;
-  int                   i;
   PIMAGE_DATA_DIRECTORY RelocationDDir;
-  ULONG OldProtect;
-  PVOID ProtectBase;
-  ULONG ProtectSize;
-  ULONG OldProtect2;
-  PVOID ProtectBase2;
-  ULONG ProtectSize2;
+  PIMAGE_BASE_RELOCATION RelocationDir, RelocationEnd;
+  ULONG Count, ProtectSize, OldProtect, OldProtect2, i;
+  PVOID Page, ProtectPage, ProtectPage2;
+  PWORD TypeOffset;
+  ULONG Delta = (ULONG_PTR)ImageBase - NTHeaders->OptionalHeader.ImageBase;
   NTSTATUS Status;
-  PIMAGE_SECTION_HEADER Sections;
-  ULONG MaxExtend;
 
   if (NTHeaders->FileHeader.Characteristics & IMAGE_FILE_RELOCS_STRIPPED)
     {
       return STATUS_UNSUCCESSFUL;
     }
 
-  Sections =
-    (PIMAGE_SECTION_HEADER)((PVOID)NTHeaders + sizeof(IMAGE_NT_HEADERS));
-  MaxExtend = 0;
-  for (i = 0; i < NTHeaders->FileHeader.NumberOfSections; i++)
-    {
-      if (!(Sections[i].Characteristics & IMAGE_SECTION_NOLOAD))
-        {
-          ULONG Extend;
-          Extend =
-            (ULONG)(Sections[i].VirtualAddress + Sections[i].Misc.VirtualSize);
-          MaxExtend = max(MaxExtend, Extend);
-        }
-    }
-
   RelocationDDir =
     &NTHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC];
-  RelocationRVA = RelocationDDir->VirtualAddress;
 
-  if (RelocationRVA)
+  if (RelocationDDir->VirtualAddress == 0 || RelocationDDir->Size == 0)
     {
-      RelocationDir =
-        (PRELOCATION_DIRECTORY)((PCHAR)ImageBase + RelocationRVA);
-
-      while (RelocationDir->SizeOfBlock)
+      return STATUS_SUCCESS;
+    }
+   
+  ProtectSize = PAGE_SIZE;
+  RelocationDir = (IMAGE_BASE_RELOCATION*)((ULONG_PTR)ImageBase + 
+                  RelocationDDir->VirtualAddress);
+  RelocationEnd = (IMAGE_BASE_RELOCATION*)((ULONG_PTR)ImageBase +
+                  RelocationDDir->VirtualAddress + RelocationDDir->Size);
+  while (RelocationDir < RelocationEnd &&
+         RelocationDir->SizeOfBlock > 0)
+    {
+      Count = (RelocationDir->SizeOfBlock - sizeof(IMAGE_BASE_RELOCATION)) /
+              sizeof(WORD);
+      Page = ImageBase + RelocationDir->VirtualAddress;
+      TypeOffset = (PWORD)(RelocationDir + 1);
+
+      /* Unprotect the page(s) we're about to relocate. */
+      ProtectPage = Page;
+      Status = NtProtectVirtualMemory(NtCurrentProcess(),
+                                      &ProtectPage,
+                                      &ProtectSize,
+                                      PAGE_READWRITE,
+                                      &OldProtect);
+      if (!NT_SUCCESS(Status))
         {
-          if (RelocationDir->VirtualAddress > MaxExtend)
-            {
-              RelocationRVA += RelocationDir->SizeOfBlock;
-              RelocationDir =
-                (PRELOCATION_DIRECTORY) (ImageBase + RelocationRVA);
-              continue;
-            }
-
-          Delta32 = (ULONG)(ImageBase - NTHeaders->OptionalHeader.ImageBase);
-          RelocationBlock =
-            (PRELOCATION_ENTRY) (RelocationRVA + ImageBase +
-                                 sizeof (RELOCATION_DIRECTORY));
-          NumberOfEntries =
-            RelocationDir->SizeOfBlock - sizeof (RELOCATION_DIRECTORY);
-          NumberOfEntries = NumberOfEntries / sizeof (RELOCATION_ENTRY);
+          DPRINT1("Failed to unprotect relocation target.\n");
+          return(Status);
+        }
 
-          ProtectBase = ImageBase + RelocationDir->VirtualAddress;
-          ProtectSize = PAGE_SIZE;
+      if (RelocationDir->VirtualAddress + PAGE_SIZE <
+          NTHeaders->OptionalHeader.SizeOfImage)
+        {
+          ProtectPage2 = ProtectPage + PAGE_SIZE;
           Status = NtProtectVirtualMemory(NtCurrentProcess(),
-                                          &ProtectBase,
+                                          &ProtectPage2,
                                           &ProtectSize,
                                           PAGE_READWRITE,
-                                          &OldProtect);
+                                          &OldProtect2);
           if (!NT_SUCCESS(Status))
             {
-              DPRINT1("Failed to unprotect relocation target.\n");
+              DPRINT1("Failed to unprotect relocation target (2).\n");
+              NtProtectVirtualMemory(NtCurrentProcess(),
+                                     &ProtectPage,
+                                     &ProtectSize,
+                                     OldProtect,
+                                     &OldProtect);
               return(Status);
             }
+        }
 
-          if (RelocationDir->VirtualAddress + PAGE_SIZE < MaxExtend)
-            {
-                  ProtectBase2 = ImageBase + RelocationDir->VirtualAddress + PAGE_SIZE;
-                  ProtectSize2 = PAGE_SIZE;
-                  Status = NtProtectVirtualMemory(NtCurrentProcess(),
-                                                  &ProtectBase2,
-                                                  &ProtectSize2,
-                                                  PAGE_READWRITE,
-                                                  &OldProtect2);
-                  if (!NT_SUCCESS(Status))
-                    {
-                      DPRINT1("Failed to unprotect relocation target (2).\n");
-                      NtProtectVirtualMemory(NtCurrentProcess(),
-                                             &ProtectBase,
-                                             &ProtectSize,
-                                             OldProtect,
-                                             &OldProtect);
-                      return(Status);
-                    }
-              }
-
-          for (i = 0; i < NumberOfEntries; i++)
-            {
-              Offset = (RelocationBlock[i].TypeOffset & 0xfff);
-              Offset += (ULONG)(RelocationDir->VirtualAddress + ImageBase);
-
-              /*
-               * What kind of relocations should we perform
-               * for the current entry?
-               */
-              switch (RelocationBlock[i].TypeOffset >> 12)
-                {
-                case TYPE_RELOC_ABSOLUTE:
-                  break;
-
-                case TYPE_RELOC_HIGH:
-                  pValue16 = (PUSHORT)Offset;
-                  *pValue16 += Delta32 >> 16;
-                  break;
-
-                case TYPE_RELOC_LOW:
-                  pValue16 = (PUSHORT)Offset;
-                  *pValue16 += Delta32 & 0xffff;
-                  break;
-
-                case TYPE_RELOC_HIGHLOW:
-                  pValue32 = (PULONG)Offset;
-                  *pValue32 += Delta32;
-                  break;
-
-                case TYPE_RELOC_HIGHADJ:
-                  /* FIXME: do the highadjust fixup  */
-                  DPRINT("TYPE_RELOC_HIGHADJ fixup not implemented, sorry\n");
-                  return(STATUS_UNSUCCESSFUL);
-
-                default:
-                  DPRINT("unexpected fixup type\n");
-                  return STATUS_UNSUCCESSFUL;
-                }
-            }
+      /* Patch the page. */
+      for (i = 0; i < Count; i++)
+        {
+          SHORT Offset = TypeOffset[i] & 0xFFF;
+          USHORT Type = TypeOffset[i] >> 12;
 
-          Status = NtProtectVirtualMemory(NtCurrentProcess(),
-                                          &ProtectBase,
-                                          &ProtectSize,
-                                          OldProtect,
-                                          &OldProtect);
-          if (!NT_SUCCESS(Status))
+          switch (Type)
             {
-              DPRINT1("Failed to protect relocation target.\n");
-              return(Status);
+              case IMAGE_REL_BASED_ABSOLUTE:
+                break;
+              case IMAGE_REL_BASED_HIGH:
+                *(PUSHORT)(Page + Offset) += HIWORD(Delta);
+                break;
+              case IMAGE_REL_BASED_LOW:
+                *(PUSHORT)(Page + Offset) += LOWORD(Delta);
+                break;
+              case IMAGE_REL_BASED_HIGHLOW:
+                *(PULONG)(Page + Offset) += Delta;
+                break;
+              case IMAGE_REL_BASED_HIGHADJ:
+              default:
+                DPRINT("Unknown/unsupported fixup type %d.\n", type);
+                return STATUS_UNSUCCESSFUL;
             }
+        }
 
-          if (RelocationDir->VirtualAddress + PAGE_SIZE < MaxExtend)
-            {
-                  Status = NtProtectVirtualMemory(NtCurrentProcess(),
-                                                  &ProtectBase2,
-                                                  &ProtectSize2,
-                                                  OldProtect2,
-                                                  &OldProtect2);
-                  if (!NT_SUCCESS(Status))
-                    {
-                      DPRINT1("Failed to protect relocation target2.\n");
-                      return(Status);
-                    }
-            }
+      /* Restore old page protection. */
+      NtProtectVirtualMemory(NtCurrentProcess(),
+                             &ProtectPage,
+                             &ProtectSize,
+                             OldProtect,
+                             &OldProtect);
 
-          RelocationRVA += RelocationDir->SizeOfBlock;
-          RelocationDir =
-            (PRELOCATION_DIRECTORY) (ImageBase + RelocationRVA);
+      if (RelocationDir->VirtualAddress + PAGE_SIZE <
+          NTHeaders->OptionalHeader.SizeOfImage)
+        {
+          NtProtectVirtualMemory(NtCurrentProcess(),
+                                 &ProtectPage2,
+                                 &ProtectSize,
+                                 OldProtect2,
+                                 &OldProtect2);
         }
+
+      RelocationDir = (IMAGE_BASE_RELOCATION*)((ULONG_PTR)RelocationDir +
+                      RelocationDir->SizeOfBlock);
     }
+
   return STATUS_SUCCESS;
 }
 
@@ -1427,10 +1376,9 @@
 }
 
 static NTSTATUS
-LdrpProcessImportDirectoryEntry(
-   PLDR_MODULE Module,
-   PLDR_MODULE ImportedModule,
-   PIMAGE_IMPORT_MODULE_DIRECTORY ImportModuleDirectory)
+LdrpProcessImportDirectoryEntry(PLDR_MODULE Module,
+                                PLDR_MODULE ImportedModule,
+                                PIMAGE_IMPORT_MODULE_DIRECTORY ImportModuleDirectory)
 {
    NTSTATUS Status;
    PVOID* ImportAddressList;
@@ -2571,8 +2519,8 @@
 NTSTATUS STDCALL
 LdrShutdownProcess (VOID)
 {
-   LdrpDetachProcess(TRUE);
-   return STATUS_SUCCESS;
+  LdrpDetachProcess(TRUE);
+  return STATUS_SUCCESS;
 }
 
 /*
@@ -2582,48 +2530,47 @@
 NTSTATUS
 LdrpAttachThread (VOID)
 {
-   PLIST_ENTRY ModuleListHead;
-   PLIST_ENTRY Entry;
-   PLDR_MODULE Module;
-   NTSTATUS Status;
-
-   DPRINT("LdrpAttachThread() called for %wZ\n",
-          &ExeModule->BaseDllName);
+  PLIST_ENTRY ModuleListHead;
+  PLIST_ENTRY Entry;
+  PLDR_MODULE Module;
+  NTSTATUS Status;
 
-   RtlEnterCriticalSection (NtCurrentPeb()->LoaderLock);
+  DPRINT("LdrpAttachThread() called for %wZ\n",
+         &ExeModule->BaseDllName);
 
-   Status = LdrpInitializeTlsForThread();
+  RtlEnterCriticalSection (NtCurrentPeb()->LoaderLock);
 
-   if (NT_SUCCESS(Status))
-     {
+  Status = LdrpInitializeTlsForThread();
 
-       ModuleListHead = &NtCurrentPeb()->Ldr->InInitializationOrderModuleList;
-       Entry = ModuleListHead->Flink;
+  if (NT_SUCCESS(Status))
+    {
+      ModuleListHead = &NtCurrentPeb()->Ldr->InInitializationOrderModuleList;
+      Entry = ModuleListHead->Flink;
 
-       while (Entry != ModuleListHead)
-         {
-           Module = CONTAINING_RECORD(Entry, LDR_MODULE, InInitializationOrderModuleList);
-           if (Module->Flags & PROCESS_ATTACH_CALLED &&
-               !(Module->Flags & DONT_CALL_FOR_THREAD) &&
-               !(Module->Flags & UNLOAD_IN_PROGRESS))
-             {
-               TRACE_LDR("%wZ - Calling entry point at %x for thread attaching\n",
-                         &Module->BaseDllName, Module->EntryPoint);
-               LdrpCallDllEntry(Module, DLL_THREAD_ATTACH, NULL);
-             }
-           Entry = Entry->Flink;
-         }
+      while (Entry != ModuleListHead)
+        {
+          Module = CONTAINING_RECORD(Entry, LDR_MODULE, InInitializationOrderModuleList);
+          if (Module->Flags & PROCESS_ATTACH_CALLED &&
+              !(Module->Flags & DONT_CALL_FOR_THREAD) &&
+              !(Module->Flags & UNLOAD_IN_PROGRESS))
+            {
+              TRACE_LDR("%wZ - Calling entry point at %x for thread attaching\n",
+                        &Module->BaseDllName, Module->EntryPoint);
+              LdrpCallDllEntry(Module, DLL_THREAD_ATTACH, NULL);
+            }
+          Entry = Entry->Flink;
+        }
 
-       Entry = NtCurrentPeb()->Ldr->InLoadOrderModuleList.Flink;
-       Module = CONTAINING_RECORD(Entry, LDR_MODULE, InLoadOrderModuleList);
-       LdrpTlsCallback(Module, DLL_THREAD_ATTACH);
-     }
+      Entry = NtCurrentPeb()->Ldr->InLoadOrderModuleList.Flink;
+      Module = CONTAINING_RECORD(Entry, LDR_MODULE, InLoadOrderModuleList);
+      LdrpTlsCallback(Module, DLL_THREAD_ATTACH);
+    }
 
-   RtlLeaveCriticalSection (NtCurrentPeb()->LoaderLock);
+  RtlLeaveCriticalSection (NtCurrentPeb()->LoaderLock);
 
-   DPRINT("LdrpAttachThread() done\n");
+  DPRINT("LdrpAttachThread() done\n");
 
-   return Status;
+  return Status;
 }
 
 

reactos/lib/syssetup
install.c 1.12 -> 1.12.6.1
diff -u -r1.12 -r1.12.6.1
--- install.c	19 Apr 2004 10:54:23 -0000	1.12
+++ install.c	27 Jun 2004 01:13:12 -0000	1.12.6.1
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: install.c,v 1.12 2004/04/19 10:54:23 ekohl Exp $
+/* $Id: install.c,v 1.12.6.1 2004/06/27 01:13:12 hyperion Exp $
  *
  * COPYRIGHT:         See COPYING in the top level directory
  * PROJECT:           ReactOS system libraries
@@ -192,6 +192,62 @@
    return FALSE;
 }
 
+static VOID
+CreateTempDir(LPCWSTR VarName)
+{
+  WCHAR szTempDir[MAX_PATH];
+  WCHAR szBuffer[MAX_PATH];
+  DWORD dwLength;
+  HKEY hKey;
+
+  if (RegOpenKeyExW (HKEY_LOCAL_MACHINE,
+		     L"SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment",
+		     0,
+		     KEY_ALL_ACCESS,
+		     &hKey))
+    {
+      DebugPrint("Error: %lu\n", GetLastError());
+      return;
+    }
+
+  /* Get temp dir */
+  dwLength = MAX_PATH * sizeof(WCHAR);
+  if (RegQueryValueExW (hKey,
+			VarName,
+			NULL,
+			NULL,
+			(LPBYTE)szBuffer,
+			&dwLength))
+    {
+      DebugPrint("Error: %lu\n", GetLastError());
+      RegCloseKey (hKey);
+      return;
+    }
+
+  /* Expand it */
+  if (!ExpandEnvironmentStringsW (szBuffer,
+				  szTempDir,
+				  MAX_PATH))
+    {
+      DebugPrint("Error: %lu\n", GetLastError());
+      RegCloseKey (hKey);
+      return;
+    }
+
+  /* Create profiles directory */
+  if (!CreateDirectoryW (szTempDir, NULL))
+    {
+      if (GetLastError () != ERROR_ALREADY_EXISTS)
+	{
+	  DebugPrint("Error: %lu\n", GetLastError());
+	  RegCloseKey (hKey);
+	  return;
+	}
+    }
+
+  RegCloseKey (hKey);
+}
+
 DWORD STDCALL
 InstallReactOS (HINSTANCE hInstance)
 {
@@ -284,6 +340,9 @@
   RtlFreeSid (AdminSid);
   RtlFreeSid (DomainSid);
 
+  CreateTempDir(L"TEMP");
+  CreateTempDir(L"TMP");
+
 #if 1
   InstallWizard ();
 #endif

reactos/lib/user32/windows
bitmap.c 1.29 -> 1.29.6.1
diff -u -r1.29 -r1.29.6.1
--- bitmap.c	13 Apr 2004 00:06:50 -0000	1.29
+++ bitmap.c	27 Jun 2004 01:13:12 -0000	1.29.6.1
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: bitmap.c,v 1.29 2004/04/13 00:06:50 weiden Exp $
+/* $Id: bitmap.c,v 1.29.6.1 2004/06/27 01:13:12 hyperion Exp $
  *
  * PROJECT:         ReactOS user32.dll
  * FILE:            lib/user32/windows/input.c
@@ -42,7 +42,6 @@
 CURSORICONDIRENTRY *CURSORICON_FindBestIcon( CURSORICONDIR *dir, int width, int height, int colors);
 CURSORICONDIRENTRY *CURSORICON_FindBestCursor( CURSORICONDIR *dir, int width, int height, int colors);
 
-
 /* FUNCTIONS *****************************************************************/
 
 /*
@@ -661,39 +660,53 @@
 
 
 /*
- * @implemented
+ * @unimplemented
  */
 HANDLE WINAPI
 CopyImage(HANDLE hnd, UINT type, INT desiredx, INT desiredy, UINT flags)
 {
-   switch (type)
-   {
-      case IMAGE_BITMAP:
-         {
-         	DbgPrint("WARNING:  Incomplete implementation of CopyImage!\n");
-         	/* FIXME:  support flags LR_COPYDELETEORG, LR_COPYFROMRESOURCE,
-         	   						 LR_COPYRETURNORG, LR_CREATEDIBSECTION,
-         	   						 and LR_MONOCHROME; */
-            HBITMAP res;
-            BITMAP bm;
-
-            if (!GetObjectW(hnd, sizeof(bm), &bm)) return 0;
-            bm.bmBits = NULL;
-            if ((res = CreateBitmapIndirect(&bm)))
-            {
-               char *buf = HeapAlloc(GetProcessHeap(), 0, bm.bmWidthBytes * bm.bmHeight);
-               GetBitmapBits(hnd, bm.bmWidthBytes * bm.bmHeight, buf);
-               SetBitmapBits(res, bm.bmWidthBytes * bm.bmHeight, buf);
-               HeapFree(GetProcessHeap(), 0, buf);
-            }
-            return res;
-        }
-     case IMAGE_ICON:
-        DbgPrint("FIXME: CopyImage doesn't support IMAGE_ICON correctly!\n");
-        return CopyIcon(hnd);
-     case IMAGE_CURSOR:
-        DbgPrint("FIXME: CopyImage doesn't support IMAGE_CURSOR correctly!\n");
-        return CopyCursor(hnd);
-    }
-    return 0;
+	switch (type)
+	{
+        case IMAGE_BITMAP:
+			{
+				DbgPrint("WARNING:  Incomplete implementation of CopyImage!\n");
+        		/* FIXME:  support flags LR_COPYDELETEORG, LR_COPYFROMRESOURCE,
+     	   							 LR_COPYRETURNORG, LR_CREATEDIBSECTION,
+     	   							 and LR_MONOCHROME; */
+				HBITMAP res;
+				BITMAP bm;
+
+				if (!GetObjectW(hnd, sizeof(bm), &bm)) return 0;
+				bm.bmBits = NULL;
+				if ((res = CreateBitmapIndirect(&bm)))
+				{
+                    char *buf = HeapAlloc(GetProcessHeap(), 0, bm.bmWidthBytes * bm.bmHeight);
+					GetBitmapBits(hnd, bm.bmWidthBytes * bm.bmHeight, buf);
+					SetBitmapBits(res, bm.bmWidthBytes * bm.bmHeight, buf);
+					HeapFree(GetProcessHeap(), 0, buf);
+				}
+                return res;
+			}
+		case IMAGE_ICON: 
+			{
+				static BOOL IconMsgDisplayed = FALSE;
+				/* FIXME: support loading the image as shared from an instance */
+				if (!IconMsgDisplayed) {
+					DbgPrint("FIXME: CopyImage doesn't support IMAGE_ICON correctly!\n");
+					IconMsgDisplayed = TRUE;
+				}
+		        return CopyIcon(hnd);
+			}
+		case IMAGE_CURSOR: 
+			{
+				static BOOL IconMsgDisplayed = FALSE;
+				/* FIXME: support loading the image as shared from an instance */
+				if (!IconMsgDisplayed) {
+					DbgPrint("FIXME: CopyImage doesn't support IMAGE_CURSOR correctly!\n");
+					IconMsgDisplayed = TRUE;
+				}
+				return CopyCursor(hnd);
+			}
+	}
+	return 0;
 }

reactos/lib/user32/windows
draw.c 1.41 -> 1.41.6.1
diff -u -r1.41 -r1.41.6.1
--- draw.c	20 May 2004 14:12:21 -0000	1.41
+++ draw.c	27 Jun 2004 01:13:12 -0000	1.41.6.1
@@ -40,11 +40,6 @@
 #include <user32.h>
 #include <debug.h>
 
-/* FIXME - not yet defined in w32api :( */
-#define SPI_GETFOCUSBORDERWIDTH	(8206)
-#define SPI_SETFOCUSBORDERWIDTH	(8207)
-#define SPI_GETFOCUSBORDERHEIGHT	(8208)
-#define SPI_SETFOCUSBORDERHEIGHT	(8209)
 #define COLOR_MENUHILIGHT	(29)
 #define COLOR_MENUBAR	(30)
 

reactos/lib/userenv
environment.c 1.3 -> 1.3.6.1
diff -u -r1.3 -r1.3.6.1
--- environment.c	1 May 2004 11:55:01 -0000	1.3
+++ environment.c	27 Jun 2004 01:13:13 -0000	1.3.6.1
@@ -1,4 +1,4 @@
-/* $Id: environment.c,v 1.3 2004/05/01 11:55:01 ekohl Exp $
+/* $Id: environment.c,v 1.3.6.1 2004/06/27 01:13:13 hyperion Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS system libraries
@@ -18,20 +18,63 @@
 static BOOL
 SetUserEnvironmentVariable (LPVOID *Environment,
 			    LPWSTR lpName,
-			    LPWSTR lpValue)
+			    LPWSTR lpValue,
+			    BOOL bExpand)
 {
   UNICODE_STRING Name;
-  UNICODE_STRING Value;
+  UNICODE_STRING SrcValue;
+  UNICODE_STRING DstValue;
+  ULONG Length;
   NTSTATUS Status;
 
+  if (bExpand)
+    {
+      RtlInitUnicodeString(&SrcValue,
+			   lpValue);
+
+      Length = 2 * MAX_PATH * sizeof(WCHAR);
+
+      DstValue.Length = 0;
+      DstValue.MaximumLength = Length;
+      DstValue.Buffer = LocalAlloc (LPTR,
+				    Length);
+      if (DstValue.Buffer == NULL)
+	{
+	  DPRINT1("LocalAlloc() failed\n");
+	  return FALSE;
+	}
+
+      Status = RtlExpandEnvironmentStrings_U((PWSTR)*Environment,
+					     &SrcValue,
+					     &DstValue,
+					     &Length);
+      if (!NT_SUCCESS(Status))
+	{
+	  DPRINT1 ("RtlExpandEnvironmentStrings_U() failed (Status %lx)\n", Status);
+	  DPRINT1 ("Length %lu\n", Length);
+	  return FALSE;
+	}
+    }
+  else
+    {
+      RtlInitUnicodeString(&DstValue,
+			   lpValue);
+    }
+
   RtlInitUnicodeString (&Name,
 			lpName);
-  RtlInitUnicodeString (&Value,
-			lpValue);
+
+  DPRINT("Value: %wZ\n", &DstValue);
 
   Status = RtlSetEnvironmentVariable ((PWSTR*)Environment,
 				      &Name,
-				      &Value);
+				      &DstValue);
+
+  if (bExpand)
+    {
+      LocalFree(DstValue.Buffer);
+    }
+
   if (!NT_SUCCESS(Status))
     {
       DPRINT1 ("RtlSetEnvironmentVariable() failed (Status %lx)\n", Status);
@@ -214,7 +257,8 @@
 	  /* Set environment variable */
 	  SetUserEnvironmentVariable (lpEnvironment,
 				      lpValueName,
-				      lpValueData);
+				      lpValueData,
+				      (dwType == REG_EXPAND_SZ));
 	}
     }
 
@@ -254,9 +298,10 @@
   if (GetComputerNameW (Buffer,
 			&Length))
     {
-      SetUserEnvironmentVariable (lpEnvironment,
-				  L"COMPUTERNAME",
-				  Buffer);
+      SetUserEnvironmentVariable(lpEnvironment,
+				 L"COMPUTERNAME",
+				 Buffer,
+				 FALSE);
     }
 
   if (hToken == NULL)
@@ -275,9 +320,10 @@
   if (GetAllUsersProfileDirectoryW (Buffer,
 				    &Length))
     {
-      SetUserEnvironmentVariable (lpEnvironment,
-				  L"ALLUSERSPROFILE",
-				  Buffer);
+      SetUserEnvironmentVariable(lpEnvironment,
+				 L"ALLUSERSPROFILE",
+				 Buffer,
+				 FALSE);
     }
 
   /* Set 'USERPROFILE' variable */
@@ -286,9 +332,10 @@
 				Buffer,
 				&Length))
     {
-      SetUserEnvironmentVariable (lpEnvironment,
-				  L"USERPROFILE",
-				  Buffer);
+      SetUserEnvironmentVariable(lpEnvironment,
+				 L"USERPROFILE",
+				 Buffer,
+				 FALSE);
     }
 
   /* FIXME: Set 'USERDOMAIN' variable */

reactos/lib/userenv
setup.c 1.4 -> 1.4.8.1
diff -u -r1.4 -r1.4.8.1
--- setup.c	13 Mar 2004 20:49:07 -0000	1.4
+++ setup.c	27 Jun 2004 01:13:13 -0000	1.4.8.1
@@ -1,4 +1,4 @@
-/* $Id: setup.c,v 1.4 2004/03/13 20:49:07 ekohl Exp $ 
+/* $Id: setup.c,v 1.4.8.1 2004/06/27 01:13:13 hyperion Exp $ 
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS system libraries
@@ -36,7 +36,9 @@
   {FALSE, L"Start Menu"},
   {FALSE, L"Start Menu\\Programs"},
   {FALSE, L"Start Menu\\Programs\\Startup"},
-
+  {TRUE,  L"Local Settings"},
+  {TRUE,  L"Local Settings\\Application Data"},
+  {FALSE, L"Local Settings\\Temp"},
   {FALSE, NULL}
 };
 

reactos/ntoskrnl
Makefile 1.125 -> 1.125.4.1
diff -u -r1.125 -r1.125.4.1
--- Makefile	21 Jun 2004 21:07:29 -0000	1.125
+++ Makefile	27 Jun 2004 01:13:13 -0000	1.125.4.1
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.125 2004/06/21 21:07:29 hyperion Exp $
+# $Id: Makefile,v 1.125.4.1 2004/06/27 01:13:13 hyperion Exp $
 #
 # ReactOS Operating System
 #
@@ -130,6 +130,7 @@
 	ke/catch.o \
 	ke/critical.o \
 	ke/dpc.o \
+        ke/device.o \
 	ke/error.o \
 	ke/event.o \
 	ke/kqueue.o \
@@ -137,6 +138,7 @@
 	ke/main.o \
 	ke/mutex.o \
 	ke/process.o \
+        ke/profile.o \
 	ke/queue.o \
 	ke/sem.o \
 	ke/spinlock.o \
@@ -222,7 +224,8 @@
 	io/vpb.o \
 	io/wdm.o \
 	io/xhaldisp.o \
-	io/xhaldrv.o
+        io/xhaldrv.o \
+        io/wmi.o
 
 # Object Manager (Ob)
 OBJECTS_OB = \
@@ -262,9 +265,12 @@
 	ex/napi.o \
 	ex/power.o \
 	ex/resource.o \
-	ex/time.o \
+        ex/rundown.o \
 	ex/stree.o \
+        ex/synch.o \
 	ex/sysinfo.o \
+        ex/time.o \
+        ex/util.o \
 	ex/win32k.o \
 	ex/work.o \
 	ex/zone.o

reactos/ntoskrnl/cm
cm.h 1.49 -> 1.49.8.1
diff -u -r1.49 -r1.49.8.1
--- cm.h	9 May 2004 12:23:35 -0000	1.49
+++ cm.h	27 Jun 2004 01:13:13 -0000	1.49.8.1
@@ -356,6 +356,12 @@
 extern LIST_ENTRY CmiHiveListHead;
 extern ERESOURCE CmiHiveListLock;
 
+/* Registry Callback Function */
+typedef NTSTATUS (*PEX_CALLBACK_FUNCTION ) (
+    IN PVOID CallbackContext,
+    IN PVOID Argument1,
+    IN PVOID Argument2
+    );
 
 VOID
 CmiVerifyBinHeader(PHBIN BinHeader);
@@ -387,6 +393,15 @@
 #endif
 
 NTSTATUS STDCALL
+CmRegisterCallback(IN PEX_CALLBACK_FUNCTION Function,
+                   IN PVOID                 Context,
+                   IN OUT PLARGE_INTEGER    Cookie
+                    );
+
+NTSTATUS STDCALL
+CmUnRegisterCallback(IN LARGE_INTEGER    Cookie);
+
+NTSTATUS STDCALL
 CmiObjectParse(IN PVOID ParsedObject,
 	       OUT PVOID *NextObject,
 	       IN PUNICODE_STRING FullPath,

reactos/ntoskrnl/cm
ntfunc.c 1.64 -> 1.64.10.1
diff -u -r1.64 -r1.64.10.1
--- ntfunc.c	13 Mar 2004 12:14:44 -0000	1.64
+++ ntfunc.c	27 Jun 2004 01:13:13 -0000	1.64.10.1
@@ -31,6 +31,31 @@
 
 /* FUNCTIONS ****************************************************************/
 
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+CmRegisterCallback(IN PEX_CALLBACK_FUNCTION Function,
+                   IN PVOID                 Context,
+                   IN OUT PLARGE_INTEGER    Cookie
+                    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+
+NTSTATUS STDCALL
+CmUnRegisterCallback(IN LARGE_INTEGER    Cookie)
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+
 NTSTATUS STDCALL
 NtCreateKey(OUT PHANDLE KeyHandle,
 	    IN ACCESS_MASK DesiredAccess,

reactos/ntoskrnl/dbg
dbgctrl.c 1.11 -> 1.11.24.1
diff -u -r1.11 -r1.11.24.1
--- dbgctrl.c	7 Jun 2003 16:16:39 -0000	1.11
+++ dbgctrl.c	27 Jun 2004 01:13:13 -0000	1.11.24.1
@@ -35,6 +35,49 @@
 
 /* FUNCTIONS *****************************************************************/
 
+/*
+ * @unimplemented
+ */
+ULONG
+__cdecl
+DbgPrintReturnControlC(
+    PCH Format,
+    ...
+    )
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+DbgQueryDebugFilterState(
+    IN ULONG ComponentId,
+    IN ULONG Level
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+DbgSetDebugFilterState(
+    IN ULONG ComponentId,
+    IN ULONG Level,
+    IN BOOLEAN State
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
 NTSTATUS STDCALL 
 NtSystemDebugControl(DEBUG_CONTROL_CODE ControlCode,
 		     PVOID InputBuffer,

reactos/ntoskrnl/ex
interlck.c 1.12 -> 1.12.6.1
diff -u -r1.12 -r1.12.6.1
--- interlck.c	1 Jun 2004 01:00:25 -0000	1.12
+++ interlck.c	27 Jun 2004 01:13:13 -0000	1.12.6.1
@@ -1,4 +1,4 @@
-/* $Id: interlck.c,v 1.12 2004/06/01 01:00:25 sedwards Exp $
+/* $Id: interlck.c,v 1.12.6.1 2004/06/27 01:13:13 hyperion Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -13,7 +13,8 @@
 
 #include <ddk/ntddk.h>
 
-
+#define NDEBUG
+#include <internal/debug.h>
 /* FUNCTIONS *****************************************************************/
 
 #ifdef ExInterlockedDecrementLong
@@ -218,6 +219,23 @@
 }
 
 /*
+ * @unimplemented
+ */
+LONGLONG
+FASTCALL
+ExfInterlockedCompareExchange64(
+    IN OUT LONGLONG volatile *Destination,
+    IN PLONGLONG ExChange,
+    IN PLONGLONG Comperand
+    )
+{
+	LONGLONG oldval;
+
+	UNIMPLEMENTED;
+	return oldval;
+}
+
+/*
  * @implemented
  */
 ULONG FASTCALL

reactos/ntoskrnl/ex
list.c 1.11 -> 1.11.24.1
diff -u -r1.11 -r1.11.24.1
--- list.c	14 Aug 2003 18:30:28 -0000	1.11
+++ list.c	27 Jun 2004 01:13:13 -0000	1.11.24.1
@@ -1,4 +1,4 @@
-/* $Id: list.c,v 1.11 2003/08/14 18:30:28 silverblade Exp $
+/* $Id: list.c,v 1.11.24.1 2004/06/27 01:13:13 hyperion Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -26,6 +26,21 @@
 /* FUNCTIONS *************************************************************/
 
 /*
+ * @unimplemented
+ */
+PSLIST_ENTRY
+FASTCALL
+ExInterlockedFlushSList (
+    IN PSLIST_HEADER ListHead
+    )
+{
+	PSLIST_ENTRY Old = NULL;
+
+	UNIMPLEMENTED;
+	return Old;
+}
+
+/*
  * @implemented
  */
 PLIST_ENTRY FASTCALL

reactos/ntoskrnl/ex
sysinfo.c 1.36 -> 1.36.6.1
diff -u -r1.36 -r1.36.6.1
--- sysinfo.c	13 Jun 2004 10:35:52 -0000	1.36
+++ sysinfo.c	27 Jun 2004 01:13:13 -0000	1.36.6.1
@@ -1,4 +1,4 @@
-/* $Id: sysinfo.c,v 1.36 2004/06/13 10:35:52 navaraf Exp $
+/* $Id: sysinfo.c,v 1.36.6.1 2004/06/27 01:13:13 hyperion Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -37,6 +37,46 @@
 
 /* FUNCTIONS *****************************************************************/
 
+/*
+ * @unimplemented
+ */
+VOID
+STDCALL
+ExEnumHandleTable (
+	PULONG	HandleTable,
+	PVOID	Callback,
+	PVOID	Param,
+	PHANDLE	Handle OPTIONAL
+	)
+{
+	UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+VOID
+STDCALL
+ExGetCurrentProcessorCounts (
+	PVOID	IdleThreadTime,
+	PVOID	SystemTime,
+	PVOID	Number
+	)
+{
+	UNIMPLEMENTED;
+}
+/*
+ * @unimplemented
+ */
+VOID
+STDCALL
+ExGetCurrentProcessorCpuUsage (
+	PVOID	RetVal
+	)
+{
+	UNIMPLEMENTED;
+}
+
 NTSTATUS STDCALL
 NtQuerySystemEnvironmentValue (IN	PUNICODE_STRING	UnsafeName,
 			       OUT	PVOID		UnsafeValue,

reactos/ntoskrnl/ex
time.c 1.19 -> 1.19.20.1
diff -u -r1.19 -r1.19.20.1
--- time.c	12 Oct 2003 17:05:44 -0000	1.19
+++ time.c	27 Jun 2004 01:13:13 -0000	1.19.20.1
@@ -1,4 +1,4 @@
-/* $Id: time.c,v 1.19 2003/10/12 17:05:44 hbirr Exp $
+/* $Id: time.c,v 1.19.20.1 2004/06/27 01:13:13 hyperion Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -125,6 +125,18 @@
                           _SystemTimeZoneInfo.Bias * TICKSPERMINUTE;
 }
 
+/*
+ * @unimplemented
+ */
+VOID
+STDCALL
+ExSetTimerResolution (
+    IN ULONG DesiredTime,
+    IN BOOLEAN SetResolution
+    )
+{
+	UNIMPLEMENTED;
+}
 
 /*
  * @implemented

reactos/ntoskrnl/fs
mcb.c 1.11 -> 1.11.14.1
diff -u -r1.11 -r1.11.14.1
--- mcb.c	30 Dec 2003 18:52:03 -0000	1.11
+++ mcb.c	27 Jun 2004 01:13:13 -0000	1.11.14.1
@@ -1,4 +1,4 @@
-/* $Id: mcb.c,v 1.11 2003/12/30 18:52:03 fireball Exp $
+/* $Id: mcb.c,v 1.11.14.1 2004/06/27 01:13:13 hyperion Exp $
  *
  * reactos/ntoskrnl/fs/mcb.c
  *
@@ -128,6 +128,51 @@
   return(FALSE);
 }
 
+/*
+ * @unimplemented
+ */
+STDCALL
+BOOLEAN
+FsRtlLookupLastLargeMcbEntryAndIndex (
+    IN PLARGE_MCB OpaqueMcb,
+    OUT PLONGLONG LargeVbn,
+    OUT PLONGLONG LargeLbn,
+    OUT PULONG Index
+    )
+{
+  UNIMPLEMENTED;
+  return(FALSE);
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+PFSRTL_PER_STREAM_CONTEXT
+FsRtlLookupPerStreamContextInternal (
+    IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
+    IN PVOID OwnerId OPTIONAL,
+    IN PVOID InstanceId OPTIONAL
+    )
+{
+  UNIMPLEMENTED;
+  return(FALSE);
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/
+FsRtlLookupPerFileObjectContext (
+    IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
+    IN PVOID OwnerId OPTIONAL,
+    IN PVOID InstanceId OPTIONAL
+    )
+{
+  UNIMPLEMENTED;
+  return(FALSE);
+}
 
 /*
  * @unimplemented
@@ -223,6 +268,19 @@
 /*
  * @unimplemented
  */
+STDCALL
+VOID
+FsRtlResetLargeMcb (
+    IN PLARGE_MCB Mcb,
+    IN BOOLEAN SelfSynchronized
+    )
+{
+  UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
 BOOLEAN STDCALL
 FsRtlSplitLargeMcb(IN PLARGE_MCB Mcb,
 		   IN LONGLONG Vbn,

reactos/ntoskrnl/fs
mdl.c 1.5 -> 1.5.24.1
diff -u -r1.5 -r1.5.24.1
--- mdl.c	10 Jul 2003 06:27:13 -0000	1.5
+++ mdl.c	27 Jun 2004 01:13:13 -0000	1.5.24.1
@@ -1,4 +1,4 @@
-/* $Id: mdl.c,v 1.5 2003/07/10 06:27:13 royce Exp $
+/* $Id: mdl.c,v 1.5.24.1 2004/06/27 01:13:13 hyperion Exp $
  *
  * reactos/ntoskrnl/fs/mdl.c
  *
@@ -7,6 +7,45 @@
 #include <internal/cc.h>
 #include <ddk/ntifs.h>
 
+#include <internal/debug.h>
+
+/*
+ * @unimplemented
+ */
+VOID
+FsRtlIncrementCcFastReadResourceMiss( VOID )
+{
+  UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+VOID
+FsRtlIncrementCcFastReadNotPossible( VOID )
+{
+  UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+VOID
+FsRtlIncrementCcFastReadWait( VOID )
+{
+  UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+VOID
+FsRtlIncrementCcFastReadNoWait( VOID )
+{
+  UNIMPLEMENTED;
+}
+
+
 /**********************************************************************
  * NAME							EXPORTED
  *	FsRtlMdlRead@24

reactos/ntoskrnl/fs
notify.c 1.9 -> 1.9.14.1
diff -u -r1.9 -r1.9.14.1
--- notify.c	30 Dec 2003 18:52:03 -0000	1.9
+++ notify.c	27 Jun 2004 01:13:13 -0000	1.9.14.1
@@ -1,4 +1,4 @@
-/* $Id: notify.c,v 1.9 2003/12/30 18:52:03 fireball Exp $
+/* $Id: notify.c,v 1.9.14.1 2004/06/27 01:13:13 hyperion Exp $
  *
  * reactos/ntoskrnl/fs/notify.c
  *
@@ -6,6 +6,8 @@
 #include <ntos.h>
 #include <ddk/ntifs.h>
 
+#define NDEBUG
+#include <internal/debug.h>
 
 /**********************************************************************
  * NAME							EXPORTED
@@ -46,6 +48,7 @@
 }
 
 
+
 /**********************************************************************
  * NAME							EXPORTED
  *	FsRtlNotifyCleanup@12
@@ -69,6 +72,50 @@
 }
 
 
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+FsRtlNotifyFilterChangeDirectory (
+    IN PNOTIFY_SYNC NotifySync,
+    IN PLIST_ENTRY NotifyList,
+    IN PVOID FsContext,
+    IN PSTRING FullDirectoryName,
+    IN BOOLEAN WatchTree,
+    IN BOOLEAN IgnoreBuffer,
+    IN ULONG CompletionFilter,
+    IN PIRP NotifyIrp,
+    IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL,
+    IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL,
+    IN PFILTER_REPORT_CHANGE FilterCallback OPTIONAL
+    )
+{
+	UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+FsRtlNotifyFilterReportChange (
+    IN PNOTIFY_SYNC NotifySync,
+    IN PLIST_ENTRY NotifyList,
+    IN PSTRING FullTargetName,
+    IN USHORT TargetNameOffset,
+    IN PSTRING StreamName OPTIONAL,
+    IN PSTRING NormalizedParentName OPTIONAL,
+    IN ULONG FilterMatch,
+    IN ULONG Action,
+    IN PVOID TargetContext,
+    IN PVOID FilterContext
+    )
+{
+	UNIMPLEMENTED;
+}
+
+
 /**********************************************************************
  * NAME							EXPORTED
  *	FsRtlNotifyFullChangeDirectory@40
@@ -261,4 +308,18 @@
 	return STATUS_NOT_IMPLEMENTED;
 }
 
+/*
+ *
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+FsRtlRegisterFileSystemFilterCallbacks (
+    IN struct _DRIVER_OBJECT *FilterDriverObject,
+    IN PFS_FILTER_CALLBACKS Callbacks
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
 /* EOF */

reactos/ntoskrnl/fs
util.c 1.15 -> 1.15.24.1
diff -u -r1.15 -r1.15.24.1
--- util.c	3 Aug 2003 15:53:45 -0000	1.15
+++ util.c	27 Jun 2004 01:13:13 -0000	1.15.24.1
@@ -1,4 +1,4 @@
-/* $Id: util.c,v 1.15 2003/08/03 15:53:45 ea Exp $
+/* $Id: util.c,v 1.15.24.1 2004/06/27 01:13:13 hyperion Exp $
  *
  * reactos/ntoskrnl/fs/util.c
  *
@@ -6,6 +6,8 @@
 #include <ddk/ntddk.h>
 #include <ddk/ntifs.h>
 
+#define NDEBUG
+#include <internal/debug.h>
 
 /**********************************************************************
  * NAME							EXPORTED
@@ -87,6 +89,18 @@
 		: TRUE;
 }
 	
+/*
+ * @unimplemented
+ */
+ULONG
+FsRtlIsPagingFile (
+    IN PFILE_OBJECT FileObject
+    )
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+
 
 /**********************************************************************
  * NAME							EXPORTED
@@ -271,6 +285,48 @@
 	return Status;
 }
 
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+FsRtlInsertPerStreamContext (
+    IN PFSRTL_ADVANCED_FCB_HEADER PerStreamContext,
+    IN PFSRTL_PER_STREAM_CONTEXT Ptr
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+PFSRTL_PER_STREAM_CONTEXT
+FsRtlRemovePerStreamContext (
+    IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
+    IN PVOID OwnerId OPTIONAL,
+    IN PVOID InstanceId OPTIONAL
+    )
+{
+	UNIMPLEMENTED;
+	return NULL;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+FsRtlInsertPerFileObjectContext (
+    IN PFSRTL_ADVANCED_FCB_HEADER PerFileObjectContext,
+    IN PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/ Ptr
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
 
 /**********************************************************************
  * NAME							EXPORTED
@@ -318,6 +374,21 @@
 }
 
 
+/*
+ * @unimplemented
+ */
+STDCALL
+PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/
+FsRtlRemovePerFileObjectContext (
+   IN PFSRTL_ADVANCED_FCB_HEADER PerFileObjectContext,
+    IN PVOID OwnerId OPTIONAL,
+    IN PVOID InstanceId OPTIONAL
+    )
+{
+	UNIMPLEMENTED;
+	return NULL;
+}
+
 /**********************************************************************
  * NAME							EXPORTED
  *	FsRtlSyncVolumes@12
@@ -344,5 +415,16 @@
 }
 
 
-/* EOF */
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+FsRtlTeardownPerStreamContexts (
+  IN PFSRTL_ADVANCED_FCB_HEADER AdvancedHeader
+  )
+{
+	UNIMPLEMENTED;
+}
 
+/* EOF */

reactos/ntoskrnl/include/internal
dbg.h 1.7 -> 1.7.14.1
diff -u -r1.7 -r1.7.14.1
--- dbg.h	6 Jan 2004 16:06:22 -0000	1.7
+++ dbg.h	27 Jun 2004 01:13:13 -0000	1.7.14.1
@@ -4,6 +4,8 @@
 #include <napi/dbg.h>
 #include <internal/port.h>
 
+#define KdPrintEx(_x_) DbgPrintEx _x_
+
 NTSTATUS STDCALL 
 LpcSendDebugMessagePort(PEPORT Port,
 			PLPC_DBG_MESSAGE Message,
@@ -15,4 +17,26 @@
 BOOLEAN
 DbgShouldPrint(PCH Filename);
 
+ULONG
+__cdecl
+DbgPrintReturnControlC(
+    PCH Format,
+    ...
+    );
+
+STDCALL
+NTSTATUS
+DbgQueryDebugFilterState(
+    IN ULONG ComponentId,
+    IN ULONG Level
+    );
+
+STDCALL
+NTSTATUS
+DbgSetDebugFilterState(
+    IN ULONG ComponentId,
+    IN ULONG Level,
+    IN BOOLEAN State
+    );
+
 #endif /* __INCLUDE_INTERNAL_DBG_H */

reactos/ntoskrnl/include/internal
kd.h 1.24 -> 1.24.10.1
diff -u -r1.24 -r1.24.10.1
--- kd.h	11 Mar 2004 21:50:23 -0000	1.24
+++ kd.h	27 Jun 2004 01:13:13 -0000	1.24.10.1
@@ -1,4 +1,4 @@
-/* $Id: kd.h,v 1.24 2004/03/11 21:50:23 dwelch Exp $
+/* $Id: kd.h,v 1.24.10.1 2004/06/27 01:13:13 hyperion Exp $
  *
  * kernel debugger prototypes
  */
@@ -50,6 +50,30 @@
 DebugLogInit2(VOID);
 
 VOID
+STDCALL
+KdDisableDebugger(
+    VOID
+    );
+
+VOID
+STDCALL
+KdEnableDebugger(
+    VOID
+    );
+
+NTSTATUS
+STDCALL
+KdPowerTransition(
+	ULONG PowerState
+	);
+
+BOOLEAN
+STDCALL
+KeIsAttachedProcess(
+	VOID
+	);
+
+VOID
 KdInit1(VOID);
 
 VOID

reactos/ntoskrnl/include/internal
ke.h 1.50 -> 1.50.8.1
diff -u -r1.50 -r1.50.8.1
--- ke.h	14 Apr 2004 23:32:53 -0000	1.50
+++ ke.h	27 Jun 2004 01:13:13 -0000	1.50.8.1
@@ -53,6 +53,34 @@
 
 VOID STDCALL KeRescheduleThread();
 
+
+STDCALL
+VOID
+KeProfileInterrupt(
+    PKTRAP_FRAME TrapFrame
+);
+
+STDCALL
+VOID
+KeProfileInterruptWithSource(
+	IN PKTRAP_FRAME   		TrapFrame,
+	IN KPROFILE_SOURCE		Source
+);
+
+/*STDCALL
+BOOLEAN
+KiIpiServiceRoutine(
+	IN PKTRAP_FRAME   		TrapFrame,
+	IN PKEXCEPTION_FRAME  	ExceptionFrame
+);*/
+
+STDCALL
+VOID 
+KeUpdateSystemTime(
+	IN PKTRAP_FRAME   	TrapFrame,
+	IN ULONG  			Increment
+);
+
 VOID KiUpdateSystemTime (KIRQL oldIrql, ULONG Eip);
 
 KIRQL KeAcquireDispatcherDatabaseLock(VOID);
@@ -71,18 +99,13 @@
 BOOLEAN KiTestAlert(VOID);
 VOID KeRemoveAllWaitsThread(struct _ETHREAD* Thread, NTSTATUS WaitStatus, BOOL Unblock);
 PULONG KeGetStackTopThread(struct _ETHREAD* Thread);
-VOID KeContextToTrapFrame(PCONTEXT Context,
-			  PKTRAP_FRAME TrapFrame);
+VOID KeContextToTrapFrame(PCONTEXT Context, PKTRAP_FRAME TrapFrame);
 VOID
 KiDeliverNormalApc(VOID);
 
 BOOLEAN STDCALL KeRemoveQueueApc (PKAPC Apc);
 PLIST_ENTRY STDCALL KeRundownQueue(IN PKQUEUE Queue);
 
-VOID STDCALL
-KeRaiseUserException(NTSTATUS ExceptionCode);
-
-
 /* INITIALIZATION FUNCTIONS *************************************************/
 
 VOID KeInitExceptions(VOID);
@@ -139,6 +162,12 @@
 VOID
 KiUpdateProcessThreadTime(VOID);
 
+STDCALL
+VOID
+KeUpdateRunTime(
+	IN PKTRAP_FRAME	TrapFrame
+);
+
 #endif /* not __ASM__ */
 
 #define MAXIMUM_PROCESSORS      32

reactos/ntoskrnl/include/internal
ps.h 1.58 -> 1.58.10.1
diff -u -r1.58 -r1.58.10.1
--- ps.h	14 Mar 2004 18:11:25 -0000	1.58
+++ ps.h	27 Jun 2004 01:13:13 -0000	1.58.10.1
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: ps.h,v 1.58 2004/03/14 18:11:25 ekohl Exp $
+/* $Id: ps.h,v 1.58.10.1 2004/06/27 01:13:13 hyperion Exp $
  *
  * FILE:            ntoskrnl/ke/kthread.c
  * PURPOSE:         Process manager definitions
@@ -63,7 +63,7 @@
    UCHAR KernelApcInProgress;
    UCHAR KernelApcPending;
    USHORT UserApcPending;
-} KAPC_STATE, *PKAPC_STATE;
+} KAPC_STATE, *PKAPC_STATE, *__restrict PRKAPC_STATE;
 
 #include <poppack.h>
 
@@ -505,6 +505,20 @@
 VOID 
 KeInitializeThread(PKPROCESS Process, PKTHREAD Thread, BOOLEAN First);
 NTSTATUS KeReleaseThread(PETHREAD Thread);
+
+STDCALL
+VOID
+KeStackAttachProcess (
+    IN PKPROCESS Process,
+    OUT PKAPC_STATE ApcState
+    );
+
+STDCALL
+VOID
+KeUnstackDetachProcess (
+    IN PKAPC_STATE ApcState
+    );
+
 VOID STDCALL PiDeleteProcess(PVOID ObjectBody);
 VOID PsReapThreads(VOID);
 VOID PsUnfreezeOtherThread(PETHREAD Thread);

reactos/ntoskrnl/io
device.c 1.70 -> 1.70.8.1
diff -u -r1.70 -r1.70.8.1
--- device.c	8 Apr 2004 16:01:47 -0000	1.70
+++ device.c	27 Jun 2004 01:13:13 -0000	1.70.8.1
@@ -1,4 +1,4 @@
-/* $Id: device.c,v 1.70 2004/04/08 16:01:47 navaraf Exp $
+/* $Id: device.c,v 1.70.8.1 2004/06/27 01:13:13 hyperion Exp $
  *
  * COPYRIGHT:      See COPYING in the top level directory
  * PROJECT:        ReactOS kernel
@@ -165,6 +165,21 @@
 }
 
 /*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoAttachDeviceToDeviceStackSafe(
+    IN PDEVICE_OBJECT SourceDevice,
+    IN PDEVICE_OBJECT TargetDevice,
+    OUT PDEVICE_OBJECT *AttachedToDeviceObject
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
  * IoDeleteDevice
  *
  * Status
@@ -206,6 +221,64 @@
    ObDereferenceObject(DeviceObject);
 }
 
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoEnumerateDeviceObjectList(
+    IN  PDRIVER_OBJECT  DriverObject,
+    IN  PDEVICE_OBJECT  *DeviceObjectList,
+    IN  ULONG           DeviceObjectListSize,
+    OUT PULONG          ActualNumberDeviceObjects
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/*
+ * @unimplemented
+ */
+STDCALL
+PDEVICE_OBJECT
+IoGetDeviceAttachmentBaseRef(
+    IN PDEVICE_OBJECT DeviceObject
+    )
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoGetDiskDeviceObject(
+    IN  PDEVICE_OBJECT  FileSystemDeviceObject,
+    OUT PDEVICE_OBJECT  *DiskDeviceObject
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+PDEVICE_OBJECT
+IoGetLowerDeviceObject(
+    IN  PDEVICE_OBJECT  DeviceObject
+    )
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+
 /*
  * IoGetRelatedDeviceObject
  *
@@ -615,6 +688,34 @@
 }
 
 /*
+ * @unimplemented
+ */
+STDCALL
+VOID
+IoRegisterBootDriverReinitialization(
+    IN PDRIVER_OBJECT DriverObject,
+    IN PDRIVER_REINITIALIZE DriverReinitializationRoutine,
+    IN PVOID Context
+    )
+{
+	UNIMPLEMENTED;
+}
+
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoRegisterLastChanceShutdownNotification(
+    IN PDEVICE_OBJECT DeviceObject
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
  * IoQueryDeviceEnumInfo
  *
  * Status
@@ -630,4 +731,46 @@
    return 0;
 }
 
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+IoSetStartIoAttributes(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN BOOLEAN DeferredStartIo,
+    IN BOOLEAN NonCancelable
+    )
+{
+	UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+IoSynchronousInvalidateDeviceRelations(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN DEVICE_RELATION_TYPE Type
+    )
+{
+	UNIMPLEMENTED;
+}
+
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoValidateDeviceIoControlAccess(
+    IN  PIRP    Irp,
+    IN  ULONG   RequiredAccess
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
 /* EOF */

reactos/ntoskrnl/io
driver.c 1.47 -> 1.47.4.1
diff -u -r1.47 -r1.47.4.1
--- driver.c	20 Jun 2004 00:44:55 -0000	1.47
+++ driver.c	27 Jun 2004 01:13:14 -0000	1.47.4.1
@@ -1,4 +1,4 @@
-/* $Id: driver.c,v 1.47 2004/06/20 00:44:55 navaraf Exp $
+/* $Id: driver.c,v 1.47.4.1 2004/06/27 01:13:14 hyperion Exp $
  *
  * COPYRIGHT:      See COPYING in the top level directory
  * PROJECT:        ReactOS kernel
@@ -1478,6 +1478,34 @@
 
 /* PUBLIC FUNCTIONS ***********************************************************/
 
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoCreateDriver (
+	IN PUNICODE_STRING DriverName,   OPTIONAL
+	IN PDRIVER_INITIALIZE InitializationFunction
+	)
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+IoDeleteDriver (
+	IN PDRIVER_OBJECT DriverObject
+	)
+{
+	UNIMPLEMENTED;
+}
+
+
 /*
  * NtLoadDriver
  *

reactos/ntoskrnl/io
errlog.c 1.16 -> 1.16.14.1
diff -u -r1.16 -r1.16.14.1
--- errlog.c	30 Dec 2003 18:52:04 -0000	1.16
+++ errlog.c	27 Jun 2004 01:13:14 -0000	1.16.14.1
@@ -1,4 +1,4 @@
-/* $Id: errlog.c,v 1.16 2003/12/30 18:52:04 fireball Exp $
+/* $Id: errlog.c,v 1.16.14.1 2004/06/27 01:13:14 hyperion Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -382,6 +382,17 @@
   return (PVOID)((ULONG_PTR)LogEntry + sizeof(ERROR_LOG_ENTRY));
 }
 
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+IoFreeErrorLogEntry(
+    PVOID ElEntry
+    )
+{
+	UNIMPLEMENTED;
+}
 
 /*
  * @implemented

reactos/ntoskrnl/io
file.c 1.28 -> 1.28.14.1
diff -u -r1.28 -r1.28.14.1
--- file.c	13 Dec 2003 14:36:42 -0000	1.28
+++ file.c	27 Jun 2004 01:13:14 -0000	1.28.14.1
@@ -1,4 +1,4 @@
-/* $Id: file.c,v 1.28 2003/12/13 14:36:42 ekohl Exp $
+/* $Id: file.c,v 1.28.14.1 2004/06/27 01:13:14 hyperion Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -132,6 +132,133 @@
 
 
 /*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoCheckQuerySetFileInformation(
+    IN FILE_INFORMATION_CLASS FileInformationClass,
+    IN ULONG Length,
+    IN BOOLEAN SetOperation
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoCheckQuerySetVolumeInformation(
+    IN FS_INFORMATION_CLASS FsInformationClass,
+    IN ULONG Length,
+    IN BOOLEAN SetOperation
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoCheckQuotaBufferValidity(
+    IN PFILE_QUOTA_INFORMATION QuotaBuffer,
+    IN ULONG QuotaLength,
+    OUT PULONG ErrorOffset
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoCreateFileSpecifyDeviceObjectHint(
+    OUT PHANDLE FileHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    OUT PIO_STATUS_BLOCK IoStatusBlock,
+    IN PLARGE_INTEGER AllocationSize OPTIONAL,
+    IN ULONG FileAttributes,
+    IN ULONG ShareAccess,
+    IN ULONG Disposition,
+    IN ULONG CreateOptions,
+    IN PVOID EaBuffer OPTIONAL,
+    IN ULONG EaLength,
+    IN CREATE_FILE_TYPE CreateFileType,
+    IN PVOID ExtraCreateParameters OPTIONAL,
+    IN ULONG Options,
+    IN PVOID DeviceObject
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+PFILE_OBJECT
+IoCreateStreamFileObjectEx(
+    IN PFILE_OBJECT FileObject OPTIONAL,
+    IN PDEVICE_OBJECT DeviceObject OPTIONAL,
+    OUT PHANDLE FileObjectHandle OPTIONAL
+    )
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+/*
+ * @unimplemented
+ */
+STDCALL
+PFILE_OBJECT
+IoCreateStreamFileObjectLite(
+    IN PFILE_OBJECT FileObject OPTIONAL,
+    IN PDEVICE_OBJECT DeviceObject OPTIONAL
+    )
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+BOOLEAN
+IoIsFileOriginRemote(
+    IN PFILE_OBJECT FileObject
+    )
+{
+	UNIMPLEMENTED;
+	return FALSE;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoQueryFileDosDeviceName(
+    IN PFILE_OBJECT FileObject,
+    OUT POBJECT_NAME_INFORMATION *ObjectNameInformation
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
  * @implemented
  */
 NTSTATUS STDCALL
@@ -352,6 +479,20 @@
 }
 
 
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoSetFileOrigin(
+    IN PFILE_OBJECT FileObject,
+    IN BOOLEAN Remote
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
 NTSTATUS STDCALL
 NtQueryAttributesFile(IN POBJECT_ATTRIBUTES ObjectAttributes,
 		      OUT PFILE_BASIC_INFORMATION FileInformation)

reactos/ntoskrnl/io
fs.c 1.40 -> 1.40.14.1
diff -u -r1.40 -r1.40.14.1
--- fs.c	13 Dec 2003 14:36:42 -0000	1.40
+++ fs.c	27 Jun 2004 01:13:14 -0000	1.40.14.1
@@ -1,5 +1,4 @@
-/* $Id: fs.c,v 1.40 2003/12/13 14:36:42 ekohl Exp $
- *
+/*
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
  * FILE:            ntoskrnl/io/fs.c
@@ -55,6 +54,19 @@
 /* FUNCTIONS *****************************************************************/
 
 /*
+ * @unimplemented
+ */
+STDCALL
+VOID
+IoCancelFileOpen(
+    IN PDEVICE_OBJECT  DeviceObject,
+    IN PFILE_OBJECT    FileObject
+    )
+{
+	UNIMPLEMENTED;
+}
+
+/*
  * @implemented
  */
 NTSTATUS STDCALL

reactos/ntoskrnl/io
iocomp.c 1.12 -> 1.12.24.1
diff -u -r1.12 -r1.12.24.1
--- iocomp.c	25 Sep 2003 20:04:27 -0000	1.12
+++ iocomp.c	27 Jun 2004 01:13:14 -0000	1.12.24.1
@@ -67,6 +67,43 @@
 }
 
 
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoSetCompletionRoutineEx(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN PIRP Irp,
+    IN PIO_COMPLETION_ROUTINE CompletionRoutine,
+    IN PVOID Context,
+    IN BOOLEAN InvokeOnSuccess,
+    IN BOOLEAN InvokeOnError,
+    IN BOOLEAN InvokeOnCancel
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoSetIoCompletion (
+	IN PVOID IoCompletion,
+	IN PVOID KeyContext,
+	IN PVOID ApcContext,
+	IN NTSTATUS IoStatus,
+	IN ULONG_PTR IoStatusInformation,
+	IN BOOLEAN Quota
+	)
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
 VOID 
 NtInitializeIoCompletionImplementation(VOID)
 {

reactos/ntoskrnl/io
irp.c 1.61 -> 1.61.6.1
diff -u -r1.61 -r1.61.6.1
--- irp.c	6 Jun 2004 08:36:31 -0000	1.61
+++ irp.c	27 Jun 2004 01:13:14 -0000	1.61.6.1
@@ -1,4 +1,4 @@
-/* $Id: irp.c,v 1.61 2004/06/06 08:36:31 hbirr Exp $
+/* $Id: irp.c,v 1.61.6.1 2004/06/27 01:13:14 hyperion Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -45,6 +45,19 @@
 
 /* FUNCTIONS ****************************************************************/
 
+/*
+ * @unimplemented
+ */
+STDCALL
+BOOLEAN
+IoForwardIrpSynchronously(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN PIRP Irp
+    )
+{
+	UNIMPLEMENTED;
+	return FALSE;
+}
 
 /*
  * @implemented
@@ -60,6 +73,47 @@
   ExFreePool(Irp);
 }
 
+/*
+ * @unimplemented
+ */
+STDCALL
+ULONG
+IoGetRequestorProcessId(
+    IN PIRP Irp
+    )
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoGetRequestorSessionId(
+	IN PIRP Irp,
+	OUT PULONG pSessionId
+	)
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/*
+ * @unimplemented
+ */
+STDCALL
+BOOLEAN
+IoIsValidNameGraftingBuffer(
+    IN PIRP Irp,
+    IN PREPARSE_DATA_BUFFER ReparseBuffer
+    )
+{
+	UNIMPLEMENTED;
+	return FALSE;
+}
 
 /*
  * @unimplemented

reactos/ntoskrnl/io
pnpmgr.c 1.29 -> 1.29.6.1
diff -u -r1.29 -r1.29.6.1
--- pnpmgr.c	10 Jun 2004 11:00:28 -0000	1.29
+++ pnpmgr.c	27 Jun 2004 01:13:14 -0000	1.29.6.1
@@ -1,4 +1,4 @@
-/* $Id: pnpmgr.c,v 1.29 2004/06/10 11:00:28 ekohl Exp $
+/* $Id: pnpmgr.c,v 1.29.6.1 2004/06/27 01:13:14 hyperion Exp $
  *
  * COPYRIGHT:      See COPYING in the top level directory
  * PROJECT:        ReactOS kernel
@@ -195,11 +195,13 @@
 /*
  * @unimplemented
  */
-VOID
 STDCALL
+VOID
 IoRequestDeviceEject(
-  IN PDEVICE_OBJECT PhysicalDeviceObject)
+    IN PDEVICE_OBJECT PhysicalDeviceObject
+    )
 {
+	UNIMPLEMENTED;
 }
 
 
@@ -1411,6 +1413,7 @@
    return STATUS_SUCCESS;
 }
 
+
 VOID INIT_FUNCTION
 PnpInit(VOID)
 {

reactos/ntoskrnl/io
pnpnotify.c 1.2 -> 1.2.20.1
diff -u -r1.2 -r1.2.20.1
--- pnpnotify.c	16 Oct 2003 14:49:05 -0000	1.2
+++ pnpnotify.c	27 Jun 2004 01:13:14 -0000	1.2.20.1
@@ -25,6 +25,22 @@
 /*
  * @unimplemented
  */
+STDCALL
+ULONG
+IoPnPDeliverServicePowerNotification(
+	ULONG		VetoedPowerOperation OPTIONAL,
+	ULONG		PowerNotification,
+	ULONG		Unknown OPTIONAL,
+	BOOLEAN  	Synchronous
+	)
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+
+/*
+ * @unimplemented
+ */
 NTSTATUS
 STDCALL
 IoRegisterPlugPlayNotification(

reactos/ntoskrnl/io
process.c 1.16 -> 1.16.14.1
diff -u -r1.16 -r1.16.14.1
--- process.c	30 Dec 2003 18:52:04 -0000	1.16
+++ process.c	27 Jun 2004 01:13:14 -0000	1.16.14.1
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: process.c,v 1.16 2003/12/30 18:52:04 fireball Exp $
+/* $Id: process.c,v 1.16.14.1 2004/06/27 01:13:14 hyperion Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -57,6 +57,18 @@
   *HighLimit = (ULONG)NtCurrentTeb()->Tib.StackBase;
 }
 
+/*
+ * @unimplemented
+ */
+STDCALL
+BOOLEAN
+IoIsSystemThread(
+    IN PETHREAD Thread
+    )
+{
+	UNIMPLEMENTED;
+	return FALSE;
+}
 
 /*
  * @implemented

reactos/ntoskrnl/io
share.c 1.9 -> 1.9.24.1
diff -u -r1.9 -r1.9.24.1
--- share.c	10 Jul 2003 15:47:00 -0000	1.9
+++ share.c	27 Jun 2004 01:13:14 -0000	1.9.24.1
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: share.c,v 1.9 2003/07/10 15:47:00 royce Exp $
+/* $Id: share.c,v 1.9.24.1 2004/06/27 01:13:14 hyperion Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -330,8 +330,8 @@
 		      IN UCHAR MajorFunction,
 		      IN UCHAR MinorFunction,
 		      IN ULONG IoControlCode,
-		      IN PFILE_INFORMATION_CLASS FileInformationClass OPTIONAL,
-		      IN PFS_INFORMATION_CLASS FsInformationClass OPTIONAL)
+		      IN PVOID ExtraData OPTIONAL,
+		      IN PVOID ExtraData2 OPTIONAL)
 {
   UNIMPLEMENTED;
   return(STATUS_NOT_IMPLEMENTED);

reactos/ntoskrnl/io
xhaldisp.c 1.8 -> 1.8.24.1
diff -u -r1.8 -r1.8.24.1
--- xhaldisp.c	26 Feb 2003 14:12:43 -0000	1.8
+++ xhaldisp.c	27 Jun 2004 01:13:14 -0000	1.8.24.1
@@ -1,4 +1,4 @@
-/* $Id: xhaldisp.c,v 1.8 2003/02/26 14:12:43 ekohl Exp $
+/* $Id: xhaldisp.c,v 1.8.24.1 2004/06/27 01:13:14 hyperion Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -14,6 +14,10 @@
 #include <ddk/ntddk.h>
 #include <internal/xhal.h>
 
+#define NDEBUG
+#include <internal/debug.h>
+
+
 /* DATA **********************************************************************/
 
 
@@ -49,4 +53,147 @@
 				// ??
 };
 
+/*
+ * @unimplemented
+ *
+STDCALL
+VOID
+IoAssignDriveLetters(
+   		IN PLOADER_PARAMETER_BLOCK   	 LoaderBlock,
+		IN PSTRING  	NtDeviceName,
+		OUT PUCHAR  	NtSystemPath,
+		OUT PSTRING  	NtSystemPathString
+    )
+{
+	UNIMPLEMENTED;
+*/
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoCreateDisk(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN struct _CREATE_DISK* Disk
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoGetBootDiskInformation(
+    IN OUT PBOOTDISK_INFORMATION BootDiskInformation,
+    IN ULONG Size
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoReadDiskSignature(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN ULONG BytesPerSector,
+    OUT PDISK_SIGNATURE Signature
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoReadPartitionTableEx(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN struct _DRIVE_LAYOUT_INFORMATION_EX** DriveLayout
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoSetPartitionInformationEx(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN ULONG PartitionNumber,
+    IN struct _SET_PARTITION_INFORMATION_EX* PartitionInfo
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoSetSystemPartition(
+    PUNICODE_STRING VolumeNameString
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoVerifyPartitionTable(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN BOOLEAN FixErrors
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoVolumeDeviceToDosName(
+    IN  PVOID           VolumeDeviceObject,
+    OUT PUNICODE_STRING DosName
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+IoWritePartitionTableEx(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN struct _DRIVE_LAYOUT_INFORMATION_EX* DriveLayfout
+    )
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
 /* EOF */

reactos/ntoskrnl/kd
kdebug.c 1.51 -> 1.51.10.1
diff -u -r1.51 -r1.51.10.1
--- kdebug.c	24 Feb 2004 21:25:41 -0000	1.51
+++ kdebug.c	27 Jun 2004 01:13:14 -0000	1.51.10.1
@@ -1,4 +1,4 @@
-/* $Id: kdebug.c,v 1.51 2004/02/24 21:25:41 weiden Exp $
+/* $Id: kdebug.c,v 1.51.10.1 2004/06/27 01:13:14 hyperion Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -15,6 +15,7 @@
 #include <internal/mm.h>
 #include <roscfg.h>
 #include "../dbg/kdb.h"
+#include <internal/debug.h>
 
 /* serial debug connection */
 #define DEFAULT_DEBUG_PORT      2	/* COM2 */
@@ -33,9 +34,21 @@
 
 BOOLEAN
 __declspec(dllexport)
+KdEnteredDebugger = FALSE;		/* EXPORTED */
+
+BOOLEAN
+__declspec(dllexport)
 KdDebuggerNotPresent = TRUE;		/* EXPORTED */
 
+ULONG
+__declspec(dllexport)
+KiBugCheckData;		/* EXPORTED */
+
+BOOLEAN
+__declspec(dllexport)
+KiEnableTimerWatchdog = FALSE;		/* EXPORTED */
 
+ 
 static BOOLEAN KdpBreakPending = FALSE;
 ULONG KdDebugState = KD_DEBUG_DISABLED;
 ULONG KdpPortIrq = 0;
@@ -373,6 +386,43 @@
 /* NTOSKRNL.KdPollBreakIn */
 
 /*
+ * @unimplemented
+ */
+VOID
+STDCALL
+KdDisableDebugger(
+	VOID
+	)
+{
+	UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+VOID
+STDCALL
+KdEnableDebugger (
+	VOID
+	)
+{
+	UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+BOOLEAN
+STDCALL
+KeIsAttachedProcess(
+	VOID
+	)
+{
+	UNIMPLEMENTED;
+	return FALSE;
+}
+
+/*
  * @implemented
  */
 BOOLEAN STDCALL
@@ -472,6 +522,18 @@
     }
 }
 
+/*
+ * @unimplemented
+ */
+NTSTATUS
+STDCALL
+KdPowerTransition(
+	ULONG PowerState
+	)
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
 
 /* Support routines for the GDB stubs */
 
@@ -492,4 +554,4 @@
   return Value;
 }
 
-/* EOF */
+ /* EOF */

reactos/ntoskrnl/ke
apc.c 1.54 -> 1.54.12.1
diff -u -r1.54 -r1.54.12.1
--- apc.c	19 Jan 2004 00:44:37 -0000	1.54
+++ apc.c	27 Jun 2004 01:13:14 -0000	1.54.12.1
@@ -50,6 +50,18 @@
 
 /* FUNCTIONS *****************************************************************/
 
+/*
+ * @unimplemented
+ */
+STDCALL
+BOOLEAN
+KeAreApcsDisabled(
+	VOID
+	)
+{
+	UNIMPLEMENTED;
+}
+
 VOID KiRundownThread(VOID)
 /*
  * FUNCTION: 

reactos/ntoskrnl/ke
catch.c 1.42.8.2 -> 1.42.8.3
diff -u -r1.42.8.2 -r1.42.8.3
--- catch.c	26 Jun 2004 00:57:48 -0000	1.42.8.2
+++ catch.c	27 Jun 2004 01:13:14 -0000	1.42.8.3
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: catch.c,v 1.42.8.2 2004/06/26 00:57:48 hyperion Exp $
+/* $Id: catch.c,v 1.42.8.3 2004/06/27 01:13:14 hyperion Exp $
  *
  * PROJECT:              ReactOS kernel
  * FILE:                 ntoskrnl/ke/catch.c
@@ -241,6 +241,46 @@
 }
 
 
+/*
+ * @unimplemented
+ */
+VOID
+STDCALL
+ExRaiseException (
+	PEXCEPTION_RECORD pExcptRec
+	)
+{
+	UNIMPLEMENTED;
+}
+/*
+ * @unimplemented
+ */
+VOID
+STDCALL
+ExRaiseHardError (
+	IN NTSTATUS ErrorStatus,
+	IN ULONG NumberOfParameters, 
+	IN PUNICODE_STRING UnicodeStringParameterMask OPTIONAL,
+	IN PVOID *Parameters, 
+	IN HARDERROR_RESPONSE_OPTION ResponseOption, 
+	OUT PHARDERROR_RESPONSE Response 
+	)
+{
+	UNIMPLEMENTED;
+}
+
+
+/*
+ * @unimplemented
+ */
+BOOLEAN
+STDCALL
+ExSystemExceptionFilter()
+{
+	UNIMPLEMENTED;
+	return FALSE;
+}
+
 NTSTATUS STDCALL
 NtRaiseException (IN PEXCEPTION_RECORD ExceptionRecord,
 		  IN PCONTEXT Context,
@@ -254,6 +294,47 @@
   return(STATUS_SUCCESS);
 }
 
+/*
+ * @unimplemented
+ */
+STDCALL
+BOOLEAN
+KeDeregisterBugCheckReasonCallback(
+    IN PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord
+    )
+{
+	UNIMPLEMENTED;
+	return FALSE;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+ULONG
+KeGetRecommendedSharedDataAlignment(
+	VOID
+	)
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+BOOLEAN
+KeRegisterBugCheckReasonCallback(
+    IN PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord,
+    IN PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine,
+    IN KBUGCHECK_CALLBACK_REASON Reason,
+    IN PUCHAR Component
+    )
+{
+	UNIMPLEMENTED;
+	return FALSE;
+}
 
 /*
  * @implemented

reactos/ntoskrnl/ke
dpc.c 1.30 -> 1.30.12.1
diff -u -r1.30 -r1.30.12.1
--- dpc.c	18 Jan 2004 22:42:50 -0000	1.30
+++ dpc.c	27 Jun 2004 01:13:14 -0000	1.30.12.1
@@ -18,7 +18,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: dpc.c,v 1.30 2004/01/18 22:42:50 gdalsnes Exp $
+/* $Id: dpc.c,v 1.30.12.1 2004/06/27 01:13:14 hyperion Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -125,6 +125,30 @@
 }
 
 /*
+ * @unimplemented
+ */
+STDCALL
+VOID
+KeFlushQueuedDpcs(
+	VOID
+	)
+{
+	UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID 
+KeIsExecutingDpc(
+	VOID
+)
+{
+	UNIMPLEMENTED;
+}
+
+/*
  * @implemented
  */
 BOOLEAN STDCALL
@@ -245,4 +269,18 @@
    KeInitializeSpinLock(&DpcQueueLock);
 }
 
+/*
+ * @unimplemented
+ *
+STDCALL
+BOOLEAN
+KiIpiServiceRoutine(
+	IN PKTRAP_FRAME   		TrapFrame,
+	IN PKEXCEPTION_FRAME  	ExceptionFrame
+)
+{
+	UNIMPLEMENTED;
+	return FALSE;
+}*/
+
 /* EOF */

reactos/ntoskrnl/ke
error.c 1.11 -> 1.11.14.1
diff -u -r1.11 -r1.11.14.1
--- error.c	14 Dec 2003 17:51:41 -0000	1.11
+++ error.c	27 Jun 2004 01:13:14 -0000	1.11.14.1
@@ -17,6 +17,30 @@
 
 /* FUNCTIONS ***************************************************************/
 
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+KiCoprocessorError(
+    VOID
+)
+{
+	UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+KiUnexpectedInterrupt(
+    VOID
+)
+{
+	UNIMPLEMENTED;
+}
+
 NTSTATUS STDCALL 
 NtRaiseHardError(IN NTSTATUS Status,
 		 ULONG Unknown2,

reactos/ntoskrnl/ke
event.c 1.17 -> 1.17.20.1
diff -u -r1.17 -r1.17.20.1
--- event.c	2 Nov 2003 01:15:15 -0000	1.17
+++ event.c	27 Jun 2004 01:13:14 -0000	1.17.20.1
@@ -136,4 +136,17 @@
    return ((NTSTATUS)ret);
 }
 
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+KeSetEventBoostPriority(
+	IN PKEVENT Event,
+	IN PKTHREAD *Thread OPTIONAL
+)
+{
+	UNIMPLEMENTED;
+}
+
 /* EOF */

reactos/ntoskrnl/ke
kthread.c 1.46 -> 1.46.14.1
diff -u -r1.46 -r1.46.14.1
--- kthread.c	31 Dec 2003 05:33:03 -0000	1.46
+++ kthread.c	27 Jun 2004 01:13:14 -0000	1.46.14.1
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: kthread.c,v 1.46 2003/12/31 05:33:03 jfilby Exp $
+/* $Id: kthread.c,v 1.46.14.1 2004/06/27 01:13:14 hyperion Exp $
  *
  * FILE:            ntoskrnl/ke/kthread.c
  * PURPOSE:         Microkernel thread support
@@ -38,6 +38,24 @@
 
 /* FUNCTIONS *****************************************************************/
 
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+KeCapturePersistentThreadState(
+	IN PVOID	CurrentThread,
+	IN ULONG	Setting1,
+	IN ULONG	Setting2,
+	IN ULONG	Setting3,
+	IN ULONG	Setting4,
+	IN ULONG	Setting5,
+	IN PVOID	ThreadState
+)
+{
+	UNIMPLEMENTED;
+}
+
 VOID
 KeFreeStackPage(PVOID Context, MEMORY_AREA* MemoryArea, PVOID Address, 
 		PHYSICAL_ADDRESS PhysAddr, SWAPENTRY SwapEntry, BOOLEAN Dirty)
@@ -49,6 +67,19 @@
     }
 }
 
+/*
+ * @unimplemented
+ */
+STDCALL
+KPRIORITY
+KeQueryPriorityThread (
+    IN PKTHREAD Thread
+    )
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+
 NTSTATUS 
 KeReleaseThread(PETHREAD Thread)
 /*
@@ -76,6 +107,19 @@
   return(STATUS_SUCCESS);
 }
 
+/*
+ * @unimplemented
+ */
+STDCALL
+BOOLEAN
+KeSetKernelStackSwapEnable(
+	IN BOOLEAN Enable
+	)
+{
+	UNIMPLEMENTED;
+	return FALSE;
+}
+
 VOID
 KeInitializeThread(PKPROCESS Process, PKTHREAD Thread, BOOLEAN First)
 /*
@@ -272,3 +316,53 @@
 {
   PsDispatchThread(THREAD_STATE_READY);
 }
+
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+KeRevertToUserAffinityThread(
+    VOID
+)
+{
+	UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+CCHAR
+KeSetIdealProcessorThread (
+	IN PKTHREAD Thread,
+	IN CCHAR Processor
+	)
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+KeSetSystemAffinityThread(
+    IN KAFFINITY Affinity
+)
+{
+	UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID 
+KeTerminateThread(
+	IN KPRIORITY   	 Increment  	 
+)
+{
+	UNIMPLEMENTED;
+}

reactos/ntoskrnl/ke
process.c 1.19 -> 1.19.10.1
diff -u -r1.19 -r1.19.10.1
--- process.c	9 Mar 2004 21:49:53 -0000	1.19
+++ process.c	27 Jun 2004 01:13:14 -0000	1.19.10.1
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: process.c,v 1.19 2004/03/09 21:49:53 dwelch Exp $
+/* $Id: process.c,v 1.19.10.1 2004/06/27 01:13:14 hyperion Exp $
  *
  * PROJECT:         ReactOS kernel
  * FILE:            ntoskrnl/ke/process.c
@@ -117,4 +117,29 @@
    KeLowerIrql(oldlvl);
 }
 
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+KeStackAttachProcess (
+    IN PKPROCESS Process,
+    OUT PRKAPC_STATE ApcState
+    )
+{
+	UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+KeUnstackDetachProcess (
+    IN PRKAPC_STATE ApcState
+    )
+{
+	UNIMPLEMENTED;
+}
+
 /* EOF */

reactos/ntoskrnl/ke
spinlock.c 1.20 -> 1.20.12.1
diff -u -r1.20 -r1.20.12.1
--- spinlock.c	18 Jan 2004 22:41:53 -0000	1.20
+++ spinlock.c	27 Jun 2004 01:13:14 -0000	1.20.12.1
@@ -1,4 +1,4 @@
-/* $Id: spinlock.c,v 1.20 2004/01/18 22:41:53 gdalsnes Exp $
+/* $Id: spinlock.c,v 1.20.12.1 2004/06/27 01:13:14 hyperion Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -56,6 +56,19 @@
 }
 
 /*
+ * @unimplemented
+ */
+STDCALL
+KIRQL
+KeAcquireInterruptSpinLock(
+    IN PKINTERRUPT Interrupt
+    )
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+
+/*
  * @implemented
  */
 VOID STDCALL
@@ -98,6 +111,21 @@
   KefAcquireSpinLockAtDpcLevel(SpinLock);
 }
 
+
+/*
+ * @unimplemented
+ */
+VOID
+FASTCALL
+KeAcquireInStackQueuedSpinLockAtDpcLevel(
+    IN PKSPIN_LOCK SpinLock,
+    IN PKLOCK_QUEUE_HANDLE LockHandle
+    )
+{
+	UNIMPLEMENTED;
+}
+
+
 #undef KefReleaseSpinLockFromDpcLevel
 
 /*
@@ -127,6 +155,17 @@
   KefReleaseSpinLockFromDpcLevel(SpinLock);
 }
 
+/*
+ * @unimplemented
+ */
+VOID
+FASTCALL
+KeReleaseInStackQueuedSpinLockFromDpcLevel(
+    IN PKLOCK_QUEUE_HANDLE LockHandle
+    )
+{
+	UNIMPLEMENTED;
+}
 
 /*
  * @implemented
@@ -157,6 +196,18 @@
   }
 }
 
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+KeReleaseInterruptSpinLock(
+	IN PKINTERRUPT Interrupt,
+	IN KIRQL OldIrql
+	)
+{
+	UNIMPLEMENTED;
+}
 
 /*
  * @implemented

reactos/ntoskrnl/ke
timer.c 1.73 -> 1.73.6.1
diff -u -r1.73 -r1.73.6.1
--- timer.c	13 Jun 2004 10:35:52 -0000	1.73
+++ timer.c	27 Jun 2004 01:13:14 -0000	1.73.6.1
@@ -1,4 +1,4 @@
-/* $Id: timer.c,v 1.73 2004/06/13 10:35:52 navaraf Exp $
+/* $Id: timer.c,v 1.73.6.1 2004/06/27 01:13:14 hyperion Exp $
  *
  * COPYRIGHT:      See COPYING in the top level directory
  * PROJECT:        ReactOS kernel
@@ -476,6 +476,33 @@
 }
 
 /*
+ * @unimplemented
+ */
+STDCALL
+ULONG
+KeQueryRuntimeThread(
+	IN PKTHREAD Thread,
+	OUT PULONG UserTime
+	)
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+KeSetTimeIncrement(
+    IN ULONG MaxIncrement,
+    IN ULONG MinIncrement
+)
+{
+	UNIMPLEMENTED;
+}
+
+/*
  * We enter this function at IRQL DISPATCH_LEVEL, and with the
  * TimerListLock held.
  */
@@ -718,3 +745,44 @@
 
     KiReleaseSpinLock(&TimeLock);       
 } 
+
+/*
+ * @unimplemented
+ */
+VOID
+FASTCALL
+KeSetTimeUpdateNotifyRoutine(
+    IN PTIME_UPDATE_NOTIFY_ROUTINE NotifyRoutine
+    )
+{
+	UNIMPLEMENTED;
+}
+
+
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID
+KeUpdateRunTime(
+	IN PKTRAP_FRAME	TrapFrame
+)
+{
+	UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+VOID 
+KeUpdateSystemTime(
+	IN PKTRAP_FRAME   	TrapFrame,
+	IN ULONG  			Increment
+)
+{
+	UNIMPLEMENTED;
+}
+
+/*EOF*/
+

reactos/ntoskrnl/ke/i386
exp.c 1.85 -> 1.85.8.1
diff -u -r1.85 -r1.85.8.1
--- exp.c	28 May 2004 21:16:27 -0000	1.85
+++ exp.c	27 Jun 2004 01:13:14 -0000	1.85.8.1
@@ -746,14 +746,16 @@
  * @implemented
  */
 
-VOID STDCALL
+NTSTATUS STDCALL
 KeRaiseUserException(IN NTSTATUS ExceptionCode)
 {
    /* FIXME: This needs SEH */
+	ULONG OldEip;
+	PKTHREAD Thread = KeGetCurrentThread();
 
-   PKTHREAD Thread = KeGetCurrentThread();
-
-   ProbeForWrite(&Thread->Teb->ExceptionCode, sizeof(NTSTATUS), sizeof(NTSTATUS)); /* NT doesn't check this -- bad? */
-   Thread->TrapFrame->Eip = (ULONG_PTR)LdrpGetSystemDllRaiseExceptionDispatcher();
-   Thread->Teb->ExceptionCode = ExceptionCode;
+	ProbeForWrite(&Thread->Teb->ExceptionCode, sizeof(NTSTATUS), sizeof(NTSTATUS)); /* NT doesn't check this -- bad? */
+	OldEip = Thread->TrapFrame->Eip;
+	Thread->TrapFrame->Eip = (ULONG_PTR)LdrpGetSystemDllRaiseExceptionDispatcher();
+	Thread->Teb->ExceptionCode = ExceptionCode;
+	return((NTSTATUS)OldEip);
 }

reactos/ntoskrnl/ke/i386
gdt.c 1.15 -> 1.15.14.1
diff -u -r1.15 -r1.15.14.1
--- gdt.c	5 Jan 2004 14:28:21 -0000	1.15
+++ gdt.c	27 Jun 2004 01:13:16 -0000	1.15.14.1
@@ -165,6 +165,47 @@
 #endif
 }
 
+
+/*
+ * @unimplemented
+ */
+NTSTATUS
+KeI386FlatToGdtSelector(
+	IN ULONG	Base,
+	IN USHORT	Length,
+	IN USHORT	Selector
+)
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS 
+KeI386ReleaseGdtSelectors(
+	OUT PULONG SelArray,
+	IN ULONG NumOfSelectors
+)
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS
+KeI386AllocateGdtSelectors(
+	OUT PULONG SelArray,
+    IN ULONG NumOfSelectors
+)
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+
 VOID 
 KeSetBaseGdtSelector(ULONG Entry,
 		     PVOID Base)

reactos/ntoskrnl/ke/i386
thread.c 1.31 -> 1.31.14.1
diff -u -r1.31 -r1.31.14.1
--- thread.c	5 Jan 2004 14:28:21 -0000	1.31
+++ thread.c	27 Jun 2004 01:13:16 -0000	1.31.14.1
@@ -195,4 +195,7 @@
   return(STATUS_SUCCESS);
 }
 
+
+
+
 /* EOF */

reactos/ntoskrnl/ke/i386
usercall.c 1.25 -> 1.25.24.1
diff -u -r1.25 -r1.25.24.1
--- usercall.c	11 Jul 2003 01:23:15 -0000	1.25
+++ usercall.c	27 Jun 2004 01:13:16 -0000	1.25.24.1
@@ -1,4 +1,4 @@
-/* $Id: usercall.c,v 1.25 2003/07/11 01:23:15 royce Exp $
+/* $Id: usercall.c,v 1.25.24.1 2004/06/27 01:13:16 hyperion Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -124,4 +124,34 @@
     return TRUE;
 }
 
+/*
+ * @unimplemented
+ */
+STDCALL
+BOOLEAN
+KeRemoveSystemServiceTable(
+    IN PUCHAR Number
+)
+{
+	UNIMPLEMENTED;
+	return FALSE;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+KeUserModeCallback(
+    IN ULONG	FunctionID,
+    IN PVOID	InputBuffer,
+    IN ULONG	InputLength,
+    OUT PVOID	*OutputBuffer,
+    OUT PULONG	OutputLength
+)
+{
+	UNIMPLEMENTED;
+	return 0;
+}
+
 /* EOF */

reactos/ntoskrnl/ldr
resource.c 1.6 -> 1.6.24.1
diff -u -r1.6 -r1.6.24.1
--- resource.c	22 Aug 2003 20:00:39 -0000	1.6
+++ resource.c	27 Jun 2004 01:13:16 -0000	1.6.24.1
@@ -1,4 +1,4 @@
-/* $Id: resource.c,v 1.6 2003/08/22 20:00:39 weiden Exp $
+/* $Id: resource.c,v 1.6.24.1 2004/06/27 01:13:16 hyperion Exp $
  * 
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -190,4 +190,39 @@
   return Status;
 }
 
+/* STUBS */
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+LdrFindResourceDirectory_U(
+	IN PVOID   	BaseAddress,
+	IN PLDR_RESOURCE_INFO			ResourceInfo,
+	IN  ULONG						Level,
+	OUT PIMAGE_RESOURCE_DIRECTORY	*ResourceDirectory
+)
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+STDCALL
+NTSTATUS
+LdrEnumResources(
+	IN PVOID   	BaseAddress,
+	IN PLDR_RESOURCE_INFO			ResourceInfo,
+	IN  ULONG						Level,
+	IN OUT PULONG					ResourceCount,
+	OUT PVOID						Resources  OPTIONAL
+)
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
+
 /* EOF */

reactos/ntoskrnl/lpc
reply.c 1.19 -> 1.19.24.1
diff -u -r1.19 -r1.19.24.1
--- reply.c	7 Aug 2003 11:47:33 -0000	1.19
+++ reply.c	27 Jun 2004 01:13:16 -0000	1.19.24.1
@@ -1,4 +1,4 @@
-/* $Id: reply.c,v 1.19 2003/08/07 11:47:33 silverblade Exp $
+/* $Id: reply.c,v 1.19.24.1 2004/06/27 01:13:16 hyperion Exp $
  * 
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -335,5 +335,19 @@
    return(STATUS_NOT_IMPLEMENTED);
 }
 
+/*
+ * @unimplemented
+ */
+NTSTATUS
+STDCALL
+LpcRequestWaitReplyPort (
+	IN PEPORT		Port,
+	IN PLPC_MESSAGE	LpcMessageRequest,
+	OUT PLPC_MESSAGE	LpcMessageReply
+	)
+{
+	UNIMPLEMENTED;
+	return STATUS_NOT_IMPLEMENTED;
+}
 
 /* EOF */

reactos/ntoskrnl/mm
pool.c 1.28 -> 1.28.8.1
diff -u -r1.28 -r1.28.8.1
--- pool.c	10 Apr 2004 22:35:25 -0000	1.28
+++ pool.c	27 Jun 2004 01:13:16 -0000	1.28.8.1
@@ -1,4 +1,4 @@
-/* $Id: pool.c,v 1.28 2004/04/10 22:35:25 gdalsnes Exp $
+/* $Id: pool.c,v 1.28.8.1 2004/06/27 01:13:16 hyperion Exp $
  * 
  * COPYRIGHT:    See COPYING in the top level directory
  * PROJECT:      ReactOS kernel
@@ -146,7 +146,20 @@
    return(ExAllocatePoolWithQuotaTag(PoolType, NumberOfBytes, TAG_NONE));
 }
 
-
+/*
+ * @unimplemented
+ */
+PVOID
+STDCALL
+ExAllocatePoolWithTagPriority(
+    IN POOL_TYPE PoolType,
+    IN SIZE_T NumberOfBytes,
+    IN ULONG Tag,
+    IN EX_POOL_PRIORITY Priority
+    )
+{
+	UNIMPLEMENTED;
+}
 /*
  * @unimplemented
  */
@@ -195,6 +208,20 @@
    ExFreePool(Block);
 }
 
+/*
+ * @unimplemented
+ */
+SIZE_T
+STDCALL
+ExQueryPoolBlockSize (                          
+    IN PVOID PoolBlock,                         
+    OUT PBOOLEAN QuotaCharged                   
+    )
+{
+	UNIMPLEMENTED;
+	return FALSE;
+}
+
 /* EOF */
 
 

reactos/subsys/system/cmd
console.c 1.6 -> 1.6.2.1
diff -u -r1.6 -r1.6.2.1
--- console.c	21 Jun 2004 18:57:22 -0000	1.6
+++ console.c	27 Jun 2004 01:13:16 -0000	1.6.2.1
@@ -1,4 +1,4 @@
-/* $Id: console.c,v 1.6 2004/06/21 18:57:22 weiden Exp $
+/* $Id: console.c,v 1.6.2.1 2004/06/27 01:13:16 hyperion Exp $
  *
  *  CONSOLE.C - console input/output functions.
  *
@@ -225,17 +225,29 @@
 
 VOID ConOutFormatMessage (DWORD MessageId, ...)
 {
-	DWORD temp;
+	DWORD ret;
 	LPTSTR text;
 	va_list arg_ptr;
-	temp = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
+	
+	va_start (arg_ptr, MessageId);
+	ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
 	       NULL,
 	       MessageId,
 	       MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
 	       (LPTSTR) &text,
 	       0,
 	       &arg_ptr);
-	ConErrPrintf (text);	
+	
+	va_end (arg_ptr);
+	if(ret > 0)
+	{
+		ConErrPuts (text);
+		LocalFree(text);
+	}
+	else
+	{
+		ConErrPrintf (_T("Unknown error: %d\n"), MessageId);
+	}
 }
 
 VOID ConOutPrintf (LPTSTR szFormat, ...)

reactos/subsys/system/explorer
explorer_intres.rc 1.74 -> 1.74.2.1
diff -u -r1.74 -r1.74.2.1
--- explorer_intres.rc	21 Jun 2004 19:32:49 -0000	1.74
+++ explorer_intres.rc	27 Jun 2004 01:13:16 -0000	1.74.2.1
@@ -13,422 +13,6 @@
 #undef APSTUDIO_READONLY_SYMBOLS
 
 /////////////////////////////////////////////////////////////////////////////
-// Chinese (P.R.C.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
-#ifdef _WIN32
-LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
-#pragma code_page(936)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDM_DESKTOPBAR MENU DISCARDABLE 
-BEGIN
-    POPUP ""
-    BEGIN
-        MENUITEM "����(&S)...",                 ID_DESKTOPBAR_SETTINGS
-        MENUITEM "����������(&T)...",           ID_TASKMGR
-        MENUITEM SEPARATOR
-        MENUITEM "����������(&A)...",           ID_ABOUT_EXPLORER
-    END
-END
-
-IDM_MDIFRAME MENU PRELOAD DISCARDABLE 
-BEGIN
-    POPUP "����(&F)"
-    BEGIN
-        MENUITEM "����(&X)",                    ID_FILE_EXIT
-    END
-    POPUP "����(&V)"
-    BEGIN
-        MENUITEM "������(&T)",                  ID_VIEW_TOOL_BAR
-        MENUITEM "������(&E)",                  ID_VIEW_EXTRA_BAR
-        MENUITEM "��������(&D)",                ID_VIEW_DRIVE_BAR, CHECKED
-        MENUITEM "������(&S)",                  ID_VIEW_SIDE_BAR
-        MENUITEM "������(&S)",                  ID_VIEW_STATUSBAR
-        MENUITEM SEPARATOR
-        MENUITEM "����(&R)\tF5",                ID_REFRESH
-        MENUITEM "����(&U)\tCtrl+Shift+S",      ID_VIEW_FULLSCREEN
-        MENUITEM "&SDI",                        ID_VIEW_SDI
-    END
-    POPUP "����(&W)"
-    BEGIN
-        MENUITEM "������(&W)",                  ID_WINDOW_NEW
-        MENUITEM "��������(&C)\tShift+F5",      ID_WINDOW_CASCADE
-        MENUITEM "��������(&H)",                ID_WINDOW_TILE_HORZ
-        MENUITEM "��������(&V)\tShift+F4",      ID_WINDOW_TILE_VERT
-        MENUITEM "��������(&A)",                ID_WINDOW_AUTOSORT
-        MENUITEM "����������(&S)",              ID_WINDOW_ARRANGE
-    END
-    POPUP "����(&H)"
-    BEGIN
-        MENUITEM "��������������(&F)...",       ID_EXPLORER_FAQ
-        MENUITEM "����������(&A)...",           ID_ABOUT_EXPLORER
-        MENUITEM "������������(&O)...",         ID_ABOUT_WINDOWS
-    END
-END
-
-IDM_SDIFRAME MENU PRELOAD DISCARDABLE 
-BEGIN
-    POPUP "����(&F)"
-    BEGIN
-        MENUITEM "����(&X)",                    ID_FILE_EXIT
-    END
-    POPUP "����(&V)"
-    BEGIN
-        MENUITEM "������(&T)",                  ID_VIEW_TOOL_BAR
-        MENUITEM "������(&S)",                  ID_VIEW_SIDE_BAR, GRAYED
-        MENUITEM "������(&S)",                  ID_VIEW_STATUSBAR
-        MENUITEM SEPARATOR
-        MENUITEM "����(&R)\tF5",                ID_REFRESH
-        MENUITEM "����(&U)\tCtrl+Shift+S",      ID_VIEW_FULLSCREEN
-        MENUITEM "&MDI",                        ID_VIEW_MDI
-    END
-    POPUP "����(&H)"
-    BEGIN
-        MENUITEM "��������������(&F)...",       ID_EXPLORER_FAQ
-        MENUITEM "����������(&A)...",           ID_ABOUT_EXPLORER
-        MENUITEM "������������(&O)...",         ID_ABOUT_WINDOWS
-    END
-END
-
-IDM_NOTIFYAREA MENU DISCARDABLE 
-BEGIN
-    POPUP ""
-    BEGIN
-        MENUITEM "������������(&S)",            ID_SHOW_HIDDEN_ICONS
-        MENUITEM "����������������(&C)...",     ID_CONFIG_NOTIFYAREA
-        MENUITEM "��������/����(&T)...",        ID_CONFIG_TIME
-        MENUITEM SEPARATOR
-        MENUITEM "����������(&A)...",           ID_ABOUT_EXPLORER
-    END
-END
-
-IDM_VOLUME MENU DISCARDABLE 
-BEGIN
-    POPUP ""
-    BEGIN
-        MENUITEM "������������",                ID_TRAY_VOLUME
-        MENUITEM "������������",                ID_VOLUME_PROPERTIES
-    END
-END
-
-IDM_WINEFILE MENU FIXED IMPURE 
-BEGIN
-    POPUP "����(&F)"
-    BEGIN
-        MENUITEM "����(&O)\tEnter",             101
-        MENUITEM "����(&M)...\tF7",             106
-        MENUITEM "����(&C)...\tF8",             107
-        MENUITEM "��������(&I)...\tF9",         118
-        MENUITEM "����(&D)\tDel",               108
-        MENUITEM "������(&N)...",               109
-        MENUITEM "����(&I)...\tAlt+Enter",      ID_EDIT_PROPERTIES
-        MENUITEM SEPARATOR
-        MENUITEM "����(&O)...",                 119
-        MENUITEM "����(&O)...",                 120
-        MENUITEM SEPARATOR
-        MENUITEM "����(&R)...",                 ID_EXECUTE
-        MENUITEM "����(&P)...",                 102
-        MENUITEM "����(GA)...",                 103
-        MENUITEM SEPARATOR
-        MENUITEM "��������(&E)...",             ID_EXECUTE
-        MENUITEM "����(&H)...",                 104
-        MENUITEM "��������(&S)...",             116
-        MENUITEM SEPARATOR
-        MENUITEM "����(&X)\tAlt+X",             ID_FILE_EXIT
-    END
-    POPUP "����(&D)"
-    BEGIN
-        MENUITEM "��������(&C)...",             201
-        MENUITEM "��������(&L)...",             202
-        MENUITEM SEPARATOR
-        MENUITEM "����������(&F)...",           203
-        MENUITEM SEPARATOR
-        MENUITEM "��������������(&N)",          252
-        MENUITEM "��������������(&D)",          253
-        MENUITEM SEPARATOR
-        MENUITEM "������...",                   254
-        MENUITEM "��������(&R)...",             255
-        MENUITEM SEPARATOR
-        MENUITEM "����������(&S)...",           251
-    END
-    POPUP "������(&T)"
-    BEGIN
-        MENUITEM "��������(&X)\t+",             301
-        MENUITEM "��������(&B)\t*",             302
-        MENUITEM "��������(&A)\tStrg+*",        303
-        MENUITEM "��������(&C)\t-",             304
-        MENUITEM SEPARATOR
-        MENUITEM "����������������(&I)",        505
-    END
-    POPUP "����(&V)"
-    BEGIN
-        MENUITEM "������������(&R)",            413
-        MENUITEM "������(&E)",                  411
-        MENUITEM "����(&O)",                    412
-        MENUITEM SEPARATOR
-        MENUITEM "����(&L)",                    414
-        MENUITEM SEPARATOR
-        MENUITEM "����(&N)",                    ID_VIEW_NAME
-        MENUITEM "������������������(&A)",      ID_VIEW_ALL_ATTRIBUTES
-        , CHECKED
-        MENUITEM "������������(&P)...",         ID_VIEW_SELECTED_ATTRIBUTES
-        MENUITEM SEPARATOR
-        MENUITEM "����������(&S)",              404
-        MENUITEM "����������(&B)",              405
-        MENUITEM "����������(&Z)",              406
-        MENUITEM "����������(&D)",              407
-        MENUITEM SEPARATOR
-        MENUITEM "����������(&T)...",           409
-    END
-    POPUP "����(&O)"
-    BEGIN
-        MENUITEM "����(&C)...",                 65535
-        MENUITEM "����(&F)...",                 65535
-        MENUITEM "������������(&B)...",         65535
-        MENUITEM SEPARATOR
-        MENUITEM "������(&T)",                  ID_VIEW_TOOL_BAR, CHECKED
-        MENUITEM "��������(&D)",                ID_VIEW_DRIVE_BAR, CHECKED
-        MENUITEM "������(&S)",                  ID_VIEW_STATUSBAR, CHECKED
-        MENUITEM "������(&U)\tCtrl+Shift+S",    ID_VIEW_FULLSCREEN
-        MENUITEM SEPARATOR
-        MENUITEM "������������(&M)",            65535
-        MENUITEM "����������������(&E)",        511
-    END
-    POPUP "&Security"
-    BEGIN
-        MENUITEM "&Access...",                  605
-        MENUITEM "&Logging...",                 606
-        MENUITEM "&Owner...",                   607
-    END
-    POPUP "����(&W)"
-    BEGIN
-        MENUITEM "������(&N)",                  ID_WINDOW_NEW
-        MENUITEM "����(&C)\tCtrl+F5",           ID_WINDOW_CASCADE
-        MENUITEM "��������(&H)",                ID_WINDOW_TILE_HORZ
-        MENUITEM "��������(&T)\tCtrl+F4",       ID_WINDOW_TILE_VERT
-        MENUITEM "��������",                    ID_WINDOW_AUTOSORT
-        MENUITEM "��������(&A)",                ID_WINDOW_ARRANGE
-        MENUITEM "����(&R)\tF5",                ID_REFRESH
-    END
-    POPUP "&?"
-    BEGIN
-        MENUITEM "��������(&H)\tF1",            ID_HELP
-        MENUITEM "��������(&S)...\tF1",         ID_HELP
-        MENUITEM "��������(&U)\tF1",            ID_HELP_USING
-        MENUITEM SEPARATOR
-        MENUITEM "��������������(&A)...",       ID_ABOUT_WINEFILE
-    END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_DESKBAR_DESKTOP DIALOG DISCARDABLE  0, 0, 212, 172
-STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
-CAPTION "��������"
-FONT 8, "MS Sans Serif"
-BEGIN
-    LTEXT           "Please select your prefered icon alignment algorithm:",
-                    IDC_STATIC,7,7,166,8
-    CONTROL         "left/top dwn",IDC_ICON_ALIGN_0,"Button",BS_OWNERDRAW | 
-                    BS_BOTTOM | WS_TABSTOP,7,25,46,44
-    CONTROL         "left/top right",IDC_ICON_ALIGN_1,"Button",BS_OWNERDRAW | 
-                    BS_BOTTOM | WS_TABSTOP,57,25,46,44
-    CONTROL         "right/top left",IDC_ICON_ALIGN_2,"Button",BS_OWNERDRAW | 
-                    BS_BOTTOM | WS_TABSTOP,110,25,46,44
-    CONTROL         "rig./top dwn",IDC_ICON_ALIGN_3,"Button",BS_OWNERDRAW | 
-                    BS_BOTTOM | WS_TABSTOP,159,25,46,44
-    CONTROL         "left/bot. up",IDC_ICON_ALIGN_4,"Button",BS_OWNERDRAW | 
-                    BS_BOTTOM | WS_TABSTOP,7,73,46,44
-    CONTROL         "left/bot. right",IDC_ICON_ALIGN_5,"Button",BS_OWNERDRAW | 
-                    BS_BOTTOM | WS_TABSTOP,57,73,46,44
-    CONTROL         "right/bot. left",IDC_ICON_ALIGN_6,"Button",BS_OWNERDRAW | 
-                    BS_BOTTOM | WS_TABSTOP,110,73,46,44
-    CONTROL         "rig./bot. dwn",IDC_ICON_ALIGN_7,"Button",BS_OWNERDRAW | 
-                    BS_BOTTOM | WS_TABSTOP,159,73,46,44
-    CONTROL         "border down",IDC_ICON_ALIGN_8,"Button",BS_OWNERDRAW | 
-                    BS_BOTTOM | WS_TABSTOP,7,121,46,44
-    CONTROL         "border H/V",IDC_ICON_ALIGN_9,"Button",BS_OWNERDRAW | 
-                    BS_BOTTOM | WS_TABSTOP,57,121,46,44
-    CONTROL         "round about",IDC_ICON_ALIGN_10,"Button",BS_OWNERDRAW | 
-                    BS_BOTTOM | WS_TABSTOP,110,121,46,44
-    CONTROL         "",IDC_ICON_ALIGN_11,"Button",BS_OWNERDRAW | BS_BOTTOM | 
-                    WS_TABSTOP,159,121,46,44
-    CONTROL         "Display &Version Number",ID_DESKTOP_VERSION,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,7,177,91,10
-END
-
-IDD_DESKBAR_STARTMENU DIALOG DISCARDABLE  0, 0, 210, 194
-STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
-CAPTION "������������"
-FONT 8, "MS Sans Serif"
-BEGIN
-END
-
-IDD_DESKBAR_TASKBAR DIALOG DISCARDABLE  0, 0, 210, 194
-STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
-CAPTION "����������"
-FONT 8, "MS Sans Serif"
-BEGIN
-    CONTROL         "��������(&C)",ID_SHOW_CLOCK,"Button",BS_AUTOCHECKBOX | 
-                    WS_TABSTOP,7,152,52,10
-    CONTROL         "����������������������(&H)",ID_HIDE_INACTIVE_ICONS,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,174,111,10
-    PUSHBUTTON      "������������(&N)...",ID_CONFIG_NOTIFYAREA,153,173,50,14
-END
-
-IDD_EXECUTE DIALOG FIXED IMPURE  15, 13, 210, 63
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "����"
-FONT 8, "MS Shell Dlg"
-BEGIN
-    CONTROL         "",101,"Static",SS_SIMPLE | SS_NOPREFIX,3,6,162,10
-    CONTROL         "����(&C):",-1,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,3,
-                    18,60,10
-    EDITTEXT        201,3,29,134,12,ES_AUTOHSCROLL
-    CONTROL         "As &Symbol",214,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,3,
-                    45,71,12
-    DEFPUSHBUTTON   "����(&O)",1,158,6,47,14
-    PUSHBUTTON      "����(&C)",2,158,23,47,14
-    PUSHBUTTON      "����(&H)",254,158,43,47,14
-END
-
-IDD_NOTIFYAREA DIALOGEX 0, 0, 207, 150
-STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
-    WS_SYSMENU | WS_THICKFRAME
-EXSTYLE WS_EX_APPWINDOW
-CAPTION "��������������"
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
-    CONTROL         "Tree1",IDC_NOTIFY_ICONS,"SysTreeView32",TVS_HASLINES | 
-                    TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,193,31
-    LTEXT           "��������(&T):",IDC_LABEL1,7,44,40,8
-    EDITTEXT        IDC_NOTIFY_TOOLTIP,55,42,145,14,ES_AUTOHSCROLL
-    LTEXT           "��������(&I):",IDC_LABEL2,7,63,44,8
-    EDITTEXT        IDC_NOTIFY_TITLE,55,60,145,14,ES_AUTOHSCROLL
-    LTEXT           "��������(&M):",IDC_LABEL3,7,81,43,8
-    EDITTEXT        IDC_NOTIFY_MODULE,55,78,145,14,ES_AUTOHSCROLL
-    GROUPBOX        "��������(&D)",IDC_LABEL4,7,95,157,28
-    CONTROL         "����(&S)",IDC_NOTIFY_SHOW,"Button",BS_AUTORADIOBUTTON | 
-                    WS_TABSTOP,15,107,33,10
-    CONTROL         "����(&H)",IDC_NOTIFY_HIDE,"Button",BS_AUTORADIOBUTTON,
-                    66,107,29,10
-    CONTROL         "��������(&U)",IDC_NOTIFY_AUTOHIDE,"Button",
-                    BS_AUTORADIOBUTTON,112,107,43,10
-    ICON            "",IDC_PICTURE,173,100,20,20
-    CONTROL         "������������(&W)",ID_SHOW_HIDDEN_ICONS,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,7,131,56,10
-    DEFPUSHBUTTON   "����(&O)",IDOK,91,129,50,14,WS_GROUP
-    PUSHBUTTON      "����(&C)",IDCANCEL,150,129,50,14
-END
-
-IDD_SEARCH_PROGRAM DIALOGEX 0, 0, 200, 65
-STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
-    WS_SYSMENU | WS_THICKFRAME
-EXSTYLE WS_EX_APPWINDOW
-CAPTION "������������������"
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
-    LTEXT           "&Filter:",IDC_STATIC,7,9,18,8
-    EDITTEXT        IDC_FILTER,34,7,100,14,ES_AUTOHSCROLL
-    CONTROL         "List1",IDC_PROGRAMS_FOUND,"SysListView32",LVS_REPORT | 
-                    LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | 
-                    WS_TABSTOP,7,25,185,33
-    PUSHBUTTON      "&Check Entries",IDC_CHECK_ENTRIES,143,7,50,14
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO DISCARDABLE 
-BEGIN
-    IDD_SEARCH_PROGRAM, DIALOG
-    BEGIN
-        RIGHTMARGIN, 193
-        BOTTOMMARGIN, 58
-    END
-END
-#endif    // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE DISCARDABLE 
-BEGIN
-    IDS_TITLE               "Reactos ������"
-    IDS_START               "����"
-    IDS_LOGOFF              "����..."
-    IDS_SHUTDOWN            "����..."
-    IDS_LAUNCH              "����..."
-    IDS_START_HELP          "����"
-    IDS_SEARCH_FILES        "����..."
-    IDS_DOCUMENTS           "��������"
-    IDS_FAVORITES           "������"
-    IDS_PROGRAMS            "����"
-    IDS_SETTINGS            "����"
-    IDS_EXPLORE             "������"
-    IDS_EMPTY               "(��)"
-    IDS_RECENT              "����������"
-    IDS_ADMIN               "��������"
-END
-
-STRINGTABLE DISCARDABLE 
-BEGIN
-    IDS_NETWORK             "����"
-    IDS_CONNECTIONS         "��������"
-    IDS_DRIVES              "������"
-    IDS_SEARCH_COMPUTER     "����������..."
-    IDS_SETTINGS_MENU       "��������"
-    IDS_CONTROL_PANEL       "��������"
-    IDS_PRINTERS            "������"
-    IDS_BROWSE              "��������"
-    IDS_SEARCH_PRG          "��������..."
-    IDS_ALL_USERS           "All Users\\"
-    IDS_SEARCH              "����"
-    IDS_ABOUT_EXPLORER      "����������(&A)..."
-    IDS_LAUNCH_MANY_PROGRAMS 
-                            "��������������������������\n����������������������"
-    IDS_DESKTOPBAR_SETTINGS "��������"
-    IDS_DESKTOP             "����"
-    IDS_TASKBAR             "������"
-END
-
-STRINGTABLE DISCARDABLE 
-BEGIN
-    IDS_STARTMENU           "��������"
-    IDS_MINIMIZE_ALL        "��������������"
-    IDS_DESKTOP_NUM         "���� %d"
-    IDS_VOLUME              "����"
-    IDS_ITEMS_CUR           "��������"
-    IDS_ITEMS_CONFIGURED    "����"
-    IDS_ITEMS_VISIBLE       "����"
-    IDS_ITEMS_HIDDEN        "����"
-    IDS_NOTIFY_SHOW         "����"
-    IDS_NOTIFY_HIDE         "����"
-    IDS_NOTIFY_AUTOHIDE     "��������"
-END
-
-#endif    // Chinese (P.R.C.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
 // Romanian resources
 
 #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ROM)
@@ -855,6 +439,23 @@
 
 /////////////////////////////////////////////////////////////////////////////
 //
+// Bitmap
+//
+
+IDB_ICON_ALIGN_0        BITMAP  DISCARDABLE     "res/icoalig0.bmp"
+IDB_ICON_ALIGN_1        BITMAP  DISCARDABLE     "res/icoalig1.bmp"
+IDB_ICON_ALIGN_2        BITMAP  DISCARDABLE     "res/icoalig2.bmp"
+IDB_ICON_ALIGN_3        BITMAP  DISCARDABLE     "res/icoalig3.bmp"
+IDB_ICON_ALIGN_4        BITMAP  DISCARDABLE     "res/icoalig4.bmp"
+IDB_ICON_ALIGN_5        BITMAP  DISCARDABLE     "res/icoalig5.bmp"
+IDB_ICON_ALIGN_6        BITMAP  DISCARDABLE     "res/icoalig6.bmp"
+IDB_ICON_ALIGN_7        BITMAP  DISCARDABLE     "res/icoalig7.bmp"
+IDB_ICON_ALIGN_8        BITMAP  DISCARDABLE     "res/icoalig8.bmp"
+IDB_ICON_ALIGN_9        BITMAP  DISCARDABLE     "res/icoalig9.bmp"
+IDB_ICON_ALIGN_10       BITMAP  DISCARDABLE     "res/icoali10.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
 // DESIGNINFO
 //
 
@@ -872,23 +473,6 @@
 #endif    // APSTUDIO_INVOKED
 
 
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-IDB_ICON_ALIGN_0        BITMAP  DISCARDABLE     "res/icoalig0.bmp"
-IDB_ICON_ALIGN_1        BITMAP  DISCARDABLE     "res/icoalig1.bmp"
-IDB_ICON_ALIGN_2        BITMAP  DISCARDABLE     "res/icoalig2.bmp"
-IDB_ICON_ALIGN_3        BITMAP  DISCARDABLE     "res/icoalig3.bmp"
-IDB_ICON_ALIGN_4        BITMAP  DISCARDABLE     "res/icoalig4.bmp"
-IDB_ICON_ALIGN_5        BITMAP  DISCARDABLE     "res/icoalig5.bmp"
-IDB_ICON_ALIGN_6        BITMAP  DISCARDABLE     "res/icoalig6.bmp"
-IDB_ICON_ALIGN_7        BITMAP  DISCARDABLE     "res/icoalig7.bmp"
-IDB_ICON_ALIGN_8        BITMAP  DISCARDABLE     "res/icoalig8.bmp"
-IDB_ICON_ALIGN_9        BITMAP  DISCARDABLE     "res/icoalig9.bmp"
-IDB_ICON_ALIGN_10       BITMAP  DISCARDABLE     "res/icoali10.bmp"
-
 #ifdef APSTUDIO_INVOKED
 /////////////////////////////////////////////////////////////////////////////
 //
@@ -909,6 +493,9 @@
 3 TEXTINCLUDE DISCARDABLE 
 BEGIN
     "#include ""explorer-jp.rc""\r\n"
+    "#ifndef __WINDRES__\r\n"
+    "#include ""explorer-cn.rc""\r\n"
+    "#endif\r\n"
     "\0"
 END
 
@@ -1844,6 +1431,9 @@
 // Generated from the TEXTINCLUDE 3 resource.
 //
 #include "explorer-jp.rc"
+#ifndef __WINDRES__
+#include "explorer-cn.rc"
+#endif
 
 /////////////////////////////////////////////////////////////////////////////
 #endif    // not APSTUDIO_INVOKED

reactos/subsys/system/regedit
edit.c 1.13 -> 1.13.2.1
diff -u -r1.13 -r1.13.2.1
--- edit.c	21 Jun 2004 08:47:38 -0000	1.13
+++ edit.c	27 Jun 2004 01:13:17 -0000	1.13.2.1
@@ -633,7 +633,25 @@
     }
     else if (EditBin == TRUE || type == REG_NONE || type == REG_BINARY)
     {
-        if(valueDataLen > 0)
+        #ifndef UNICODE
+        LPWSTR u_valuename;
+        int len_vname = lstrlen(valueName);
+        
+	if(len_vname > 0)
+        {
+          if(!(u_valuename = HeapAlloc(GetProcessHeap(), 0, (len_vname + 1) * sizeof(WCHAR))))
+          {
+            error(hwnd, IDS_TOO_BIG_VALUE, len_vname);
+            goto done;
+          }
+	  /* convert the ansi value name to an unicode string */
+          MultiByteToWideChar(CP_ACP, 0, valueName, -1, u_valuename, len_vname + 1);
+          valueDataLen *= sizeof(WCHAR);
+        }
+        else
+          u_valuename = L"";
+        #endif
+	if(valueDataLen > 0)
         {
 	    if(!(binValueData = HeapAlloc(GetProcessHeap(), 0, valueDataLen)))
             {
@@ -641,10 +659,21 @@
               goto done;
             }
 	    
-	    lRet = RegQueryValueEx(hKey, valueName, 0, 0, (LPBYTE)binValueData, &valueDataLen);
+	    /* force to use the unicode version, so editing strings in binary mode is correct */
+	    lRet = RegQueryValueExW(hKey,
+	                            #ifndef UNICODE
+	                            u_valuename,
+	                            #else
+	                            valueName,
+	                            #endif
+				    0, 0, (LPBYTE)binValueData, &valueDataLen);
             if (lRet != ERROR_SUCCESS)
             {
                 HeapFree(GetProcessHeap(), 0, binValueData);
+                #ifndef UNICODE
+                if(len_vname > 0)
+                  HeapFree(GetProcessHeap(), 0, u_valuename);
+                #endif
 	        error(hwnd, IDS_BAD_VALUE, valueName);
                 goto done;
             }
@@ -656,12 +685,23 @@
 
         if (DialogBox(0, MAKEINTRESOURCE(IDD_EDIT_BIN_DATA), hwnd, modify_binary_dlgproc) == IDOK)
         {
-	    lRet = RegSetValueEx(hKey, valueName, 0, type, (LPBYTE)binValueData, valueDataLen);
+	    /* force to use the unicode version, so editing strings in binary mode is correct */
+	    lRet = RegSetValueExW(hKey,
+	                          #ifndef UNICODE
+	                          u_valuename,
+	                          #else
+	                          valueName,
+	                          #endif
+				  0, type, (LPBYTE)binValueData, valueDataLen);
             if (lRet == ERROR_SUCCESS)
                 result = TRUE;
         }
         if(binValueData != NULL)
 	  HeapFree(GetProcessHeap(), 0, binValueData);
+        #ifndef UNICODE
+        if(len_vname > 0)
+          HeapFree(GetProcessHeap(), 0, u_valuename);
+        #endif
     }
     else
     {

reactos/subsys/system/regedit
hexedit.c 1.8 -> 1.8.2.1
diff -u -r1.8 -r1.8.2.1
--- hexedit.c	21 Jun 2004 18:32:36 -0000	1.8
+++ hexedit.c	27 Jun 2004 01:13:17 -0000	1.8.2.1
@@ -506,6 +506,11 @@
     LocalFree(hed->hBuffer);
   }
   
+  if(hed->hFont)
+  {
+    DeleteObject(hed->hFont);
+  }
+  
   SetWindowLong(hed->hWndSelf, 0, 0);
   HeapFree(GetProcessHeap(), 0, hed);
   

reactos/subsys/system/usetup
bootsup.c 1.12 -> 1.12.8.1
diff -u -r1.12 -r1.12.8.1
--- bootsup.c	10 Mar 2004 16:57:36 -0000	1.12
+++ bootsup.c	27 Jun 2004 01:13:17 -0000	1.12.8.1
@@ -29,6 +29,7 @@
 
 #include "usetup.h"
 #include "inicache.h"
+#include "filesup.h"
 #include "bootsup.h"
 
 #define NDEBUG
@@ -1727,4 +1728,389 @@
   return(Status);
 }
 
+
+BOOLEAN
+CheckInstallFatBootcodeToPartition(PUNICODE_STRING SystemRootPath)
+{
+  if (DoesFileExist(SystemRootPath->Buffer, L"ntldr") ||
+      DoesFileExist(SystemRootPath->Buffer, L"boot.ini"))
+    {
+      return TRUE;
+    }
+  else if (DoesFileExist(SystemRootPath->Buffer, L"io.sys") ||
+	   DoesFileExist(SystemRootPath->Buffer, L"msdos.sys"))
+    {
+      return TRUE;
+    }
+
+  return FALSE;
+}
+
+
+NTSTATUS
+InstallFatBootcodeToPartition(PUNICODE_STRING SystemRootPath,
+			      PUNICODE_STRING SourceRootPath,
+			      PUNICODE_STRING DestinationArcPath,
+			      UCHAR PartitionType)
+{
+  WCHAR SrcPath[MAX_PATH];
+  WCHAR DstPath[MAX_PATH];
+  NTSTATUS Status;
+
+  /* FAT or FAT32 partition */
+  DPRINT1("System path: '%wZ'\n", SystemRootPath);
+
+  if (DoesFileExist(SystemRootPath->Buffer, L"ntldr") == TRUE ||
+      DoesFileExist(SystemRootPath->Buffer, L"boot.ini") == TRUE)
+    {
+      /* Search root directory for 'ntldr' and 'boot.ini'. */
+      DPRINT("Found Microsoft Windows NT/2000/XP boot loader\n");
+
+      /* Copy FreeLoader to the boot partition */
+      wcscpy(SrcPath, SourceRootPath->Buffer);
+      wcscat(SrcPath, L"\\loader\\freeldr.sys");
+      wcscpy(DstPath, SystemRootPath->Buffer);
+      wcscat(DstPath, L"\\freeldr.sys");
+
+      DPRINT("Copy: %S ==> %S\n", SrcPath, DstPath);
+      Status = SetupCopyFile(SrcPath, DstPath);
+      if (!NT_SUCCESS(Status))
+      {
+	DPRINT1("SetupCopyFile() failed (Status %lx)\n", Status);
+	return Status;
+      }
+
+      /* Create or update freeldr.ini */
+      if (DoesFileExist(SystemRootPath->Buffer, L"freeldr.ini") == FALSE)
+      {
+	/* Create new 'freeldr.ini' */
+	DPRINT1("Create new 'freeldr.ini'\n");
+	wcscpy(DstPath, SystemRootPath->Buffer);
+	wcscat(DstPath, L"\\freeldr.ini");
+
+	Status = CreateFreeLoaderIniForReactos(DstPath,
+					       DestinationArcPath->Buffer);
+	if (!NT_SUCCESS(Status))
+	{
+	  DPRINT1("CreateFreeLoaderIniForReactos() failed (Status %lx)\n", Status);
+	  return Status;
+	}
+
+	/* Install new bootcode */
+	if (PartitionType == PARTITION_FAT32 ||
+	    PartitionType == PARTITION_FAT32_XINT13)
+	{
+	  /* Install FAT32 bootcode */
+	  wcscpy(SrcPath, SourceRootPath->Buffer);
+	  wcscat(SrcPath, L"\\loader\\fat32.bin");
+	  wcscpy(DstPath, SystemRootPath->Buffer);
+	  wcscat(DstPath, L"\\bootsect.ros");
+
+	  DPRINT1("Install FAT32 bootcode: %S ==> %S\n", SrcPath, DstPath);
+	  Status = InstallFat32BootCodeToFile(SrcPath,
+					      DstPath,
+					      SystemRootPath->Buffer);
+	  if (!NT_SUCCESS(Status))
+	  {
+	    DPRINT1("InstallFat32BootCodeToFile() failed (Status %lx)\n", Status);
+	    return Status;
+	  }
+	}
+	else
+	{
+	  /* Install FAT16 bootcode */
+	  wcscpy(SrcPath, SourceRootPath->Buffer);
+	  wcscat(SrcPath, L"\\loader\\fat.bin");
+	  wcscpy(DstPath, SystemRootPath->Buffer);
+	  wcscat(DstPath, L"\\bootsect.ros");
+
+	  DPRINT1("Install FAT bootcode: %S ==> %S\n", SrcPath, DstPath);
+	  Status = InstallFat16BootCodeToFile(SrcPath,
+					      DstPath,
+					      SystemRootPath->Buffer);
+	  if (!NT_SUCCESS(Status))
+	  {
+	    DPRINT1("InstallFat16BootCodeToFile() failed (Status %lx)\n", Status);
+	    return Status;
+	  }
+	}
+
+	/* Update 'boot.ini' */
+	wcscpy(DstPath, SystemRootPath->Buffer);
+	wcscat(DstPath, L"\\boot.ini");
+
+	DPRINT1("Update 'boot.ini': %S\n", DstPath);
+	Status = UpdateBootIni(DstPath,
+			       L"C:\\bootsect.ros",
+			       L"\"ReactOS\"");
+	if (!NT_SUCCESS(Status))
+	{
+	  DPRINT1("UpdateBootIni() failed (Status %lx)\n", Status);
+	  return Status;
+	}
+      }
+      else
+      {
+	/* Update existing 'freeldr.ini' */
+	DPRINT1("Update existing 'freeldr.ini'\n");
+	wcscpy(DstPath, SystemRootPath->Buffer);
+	wcscat(DstPath, L"\\freeldr.ini");
+
+	Status = UpdateFreeLoaderIni(DstPath,
+				     DestinationArcPath->Buffer);
+	if (!NT_SUCCESS(Status))
+	{
+	  DPRINT1("UpdateFreeLoaderIni() failed (Status %lx)\n", Status);
+	  return Status;
+	}
+      }
+    }
+    else if (DoesFileExist(SystemRootPath->Buffer, L"io.sys") == TRUE ||
+	     DoesFileExist(SystemRootPath->Buffer, L"msdos.sys") == TRUE)
+    {
+      /* Search for root directory for 'io.sys' and 'msdos.sys'. */
+      DPRINT1("Found Microsoft DOS or Windows 9x boot loader\n");
+
+      /* Copy FreeLoader to the boot partition */
+      wcscpy(SrcPath, SourceRootPath->Buffer);
+      wcscat(SrcPath, L"\\loader\\freeldr.sys");
+      wcscpy(DstPath, SystemRootPath->Buffer);
+      wcscat(DstPath, L"\\freeldr.sys");
+
+      DPRINT("Copy: %S ==> %S\n", SrcPath, DstPath);
+      Status = SetupCopyFile(SrcPath, DstPath);
+      if (!NT_SUCCESS(Status))
+      {
+	DPRINT1("SetupCopyFile() failed (Status %lx)\n", Status);
+	return Status;
+      }
+
+      /* Create or update 'freeldr.ini' */
+      if (DoesFileExist(SystemRootPath->Buffer, L"freeldr.ini") == FALSE)
+      {
+	/* Create new 'freeldr.ini' */
+	DPRINT1("Create new 'freeldr.ini'\n");
+	wcscpy(DstPath, SystemRootPath->Buffer);
+	wcscat(DstPath, L"\\freeldr.ini");
+
+	Status = CreateFreeLoaderIniForDos(DstPath,
+					   DestinationArcPath->Buffer);
+	if (!NT_SUCCESS(Status))
+	{
+	  DPRINT1("CreateFreeLoaderIniForDos() failed (Status %lx)\n", Status);
+	  return Status;
+	}
+
+	/* Save current bootsector as 'BOOTSECT.DOS' */
+	wcscpy(SrcPath, SystemRootPath->Buffer);
+	wcscpy(DstPath, SystemRootPath->Buffer);
+	wcscat(DstPath, L"\\bootsect.dos");
+
+	DPRINT1("Save bootsector: %S ==> %S\n", SrcPath, DstPath);
+	Status = SaveCurrentBootSector(SrcPath,
+				       DstPath);
+	if (!NT_SUCCESS(Status))
+	{
+	  DPRINT1("SaveCurrentBootSector() failed (Status %lx)\n", Status);
+	  return Status;
+	}
+
+	/* Install new bootsector */
+	if (PartitionType == PARTITION_FAT32 ||
+	    PartitionType == PARTITION_FAT32_XINT13)
+	{
+	  wcscpy(SrcPath, SourceRootPath->Buffer);
+	  wcscat(SrcPath, L"\\loader\\fat32.bin");
+
+	  DPRINT1("Install FAT32 bootcode: %S ==> %S\n", SrcPath, SystemRootPath->Buffer);
+	  Status = InstallFat32BootCodeToDisk(SrcPath,
+					      SystemRootPath->Buffer);
+	  if (!NT_SUCCESS(Status))
+	  {
+	    DPRINT1("InstallFat32BootCodeToDisk() failed (Status %lx)\n", Status);
+	    return Status;
+	  }
+	}
+	else
+	{
+	  wcscpy(SrcPath, SourceRootPath->Buffer);
+	  wcscat(SrcPath, L"\\loader\\fat.bin");
+
+	  DPRINT1("Install FAT bootcode: %S ==> %S\n", SrcPath, SystemRootPath->Buffer);
+	  Status = InstallFat16BootCodeToDisk(SrcPath,
+					      SystemRootPath->Buffer);
+	  if (!NT_SUCCESS(Status))
+	  {
+	    DPRINT1("InstallFat16BootCodeToDisk() failed (Status %lx)\n", Status);
+	    return Status;
+	  }
+	}
+      }
+      else
+      {
+	/* Update existing 'freeldr.ini' */
+	wcscpy(DstPath, SystemRootPath->Buffer);
+	wcscat(DstPath, L"\\freeldr.ini");
+
+	Status = UpdateFreeLoaderIni(DstPath,
+				     DestinationArcPath->Buffer);
+	if (!NT_SUCCESS(Status))
+	{
+	  DPRINT1("UpdateFreeLoaderIni() failed (Status %lx)\n", Status);
+	  return Status;
+	}
+      }
+    }
+    else
+    {
+      /* No or unknown boot loader */
+      DPRINT1("No or unknown boot loader found\n");
+
+      /* Copy FreeLoader to the boot partition */
+      wcscpy(SrcPath, SourceRootPath->Buffer);
+      wcscat(SrcPath, L"\\loader\\freeldr.sys");
+      wcscpy(DstPath, SystemRootPath->Buffer);
+      wcscat(DstPath, L"\\freeldr.sys");
+
+      DPRINT1("Copy: %S ==> %S\n", SrcPath, DstPath);
+      Status = SetupCopyFile(SrcPath, DstPath);
+      if (!NT_SUCCESS(Status))
+      {
+	DPRINT1("SetupCopyFile() failed (Status %lx)\n", Status);
+	return Status;
+      }
+
+      /* Create or update 'freeldr.ini' */
+      if (DoesFileExist(SystemRootPath->Buffer, L"freeldr.ini") == FALSE)
+      {
+	/* Create new freeldr.ini */
+	wcscpy(DstPath, SystemRootPath->Buffer);
+	wcscat(DstPath, L"\\freeldr.ini");
+
+	DPRINT1("Copy: %S ==> %S\n", SrcPath, DstPath);
+	Status = CreateFreeLoaderIniForReactos(DstPath,
+					       DestinationArcPath->Buffer);
+	if (!NT_SUCCESS(Status))
+	{
+	  DPRINT1("CreateFreeLoaderIniForReactos() failed (Status %lx)\n", Status);
+	  return Status;
+	}
+
+	/* Save current bootsector as 'BOOTSECT.OLD' */
+	wcscpy(SrcPath, SystemRootPath->Buffer);
+	wcscpy(DstPath, SystemRootPath->Buffer);
+	wcscat(DstPath, L"\\bootsect.old");
+
+	DPRINT1("Save bootsector: %S ==> %S\n", SrcPath, DstPath);
+	Status = SaveCurrentBootSector(SrcPath,
+				       DstPath);
+	if (!NT_SUCCESS(Status))
+	{
+	  DPRINT1("SaveCurrentBootSector() failed (Status %lx)\n", Status);
+	  return Status;
+	}
+
+	/* Install new bootsector */
+	if (PartitionType == PARTITION_FAT32 ||
+	    PartitionType == PARTITION_FAT32_XINT13)
+	{
+	  wcscpy(SrcPath, SourceRootPath->Buffer);
+	  wcscat(SrcPath, L"\\loader\\fat32.bin");
+
+	  DPRINT("Install FAT32 bootcode: %S ==> %S\n", SrcPath, SystemRootPath->Buffer);
+	  Status = InstallFat32BootCodeToDisk(SrcPath,
+					      SystemRootPath->Buffer);
+	  if (!NT_SUCCESS(Status))
+	  {
+	    DPRINT1("InstallFat32BootCodeToDisk() failed (Status %lx)\n", Status);
+	    return Status;
+	  }
+	}
+	else
+	{
+	  wcscpy(SrcPath, SourceRootPath->Buffer);
+	  wcscat(SrcPath, L"\\loader\\fat.bin");
+
+	  DPRINT("Install FAT bootcode: %S ==> %S\n", SrcPath, SystemRootPath->Buffer);
+	  Status = InstallFat16BootCodeToDisk(SrcPath,
+					      SystemRootPath->Buffer);
+	  if (!NT_SUCCESS(Status))
+	  {
+	    DPRINT1("InstallFat16BootCodeToDisk() failed (Status %lx)\n", Status);
+	    return Status;
+	  }
+	}
+      }
+      else
+      {
+	/* Update existing 'freeldr.ini' */
+	wcscpy(DstPath, SystemRootPath->Buffer);
+	wcscat(DstPath, L"\\freeldr.ini");
+
+	Status = UpdateFreeLoaderIni(DstPath,
+				     DestinationArcPath->Buffer);
+	if (!NT_SUCCESS(Status))
+	{
+	  DPRINT1("UpdateFreeLoaderIni() failed (Status %lx)\n", Status);
+	  return Status;
+	}
+      }
+    }
+
+  return STATUS_SUCCESS;
+}
+
+
+NTSTATUS
+InstallFatBootcodeToFloppy(PUNICODE_STRING SourceRootPath,
+			   PUNICODE_STRING DestinationArcPath)
+{
+  WCHAR SrcPath[MAX_PATH];
+  WCHAR DstPath[MAX_PATH];
+  NTSTATUS Status;
+
+  /* Copy FreeLoader to the boot partition */
+  wcscpy(SrcPath, SourceRootPath->Buffer);
+  wcscat(SrcPath, L"\\loader\\freeldr.sys");
+
+  wcscat(DstPath, L"\\Device\\Floppy0\\freeldr.sys");
+
+  DPRINT("Copy: %S ==> %S\n", SrcPath, DstPath);
+  Status = SetupCopyFile(SrcPath, DstPath);
+  if (!NT_SUCCESS(Status))
+    {
+      DPRINT1("SetupCopyFile() failed (Status %lx)\n", Status);
+      return Status;
+    }
+
+  /* Create new 'freeldr.ini' */
+  wcscat(DstPath, L"\\Device\\Floppy0\\freeldr.ini");
+
+  DPRINT("Create new 'freeldr.ini'\n");
+  Status = CreateFreeLoaderIniForReactos(DstPath,
+					 DestinationArcPath->Buffer);
+  if (!NT_SUCCESS(Status))
+    {
+      DPRINT1("CreateFreeLoaderIniForReactos() failed (Status %lx)\n", Status);
+      return Status;
+    }
+
+  /* Install FAT12/16 boosector */
+  wcscpy(SrcPath, SourceRootPath->Buffer);
+  wcscat(SrcPath, L"\\loader\\fat.bin");
+
+  wcscat(DstPath, L"\\Device\\Floppy0");
+
+  DPRINT("Install FAT bootcode: %S ==> %S\n", SrcPath, DstPath);
+  Status = InstallFat16BootCodeToDisk(SrcPath,
+				      DstPath);
+  if (!NT_SUCCESS(Status))
+    {
+      DPRINT1("InstallFat16BootCodeToDisk() failed (Status %lx)\n", Status);
+      return Status;
+    }
+
+  return STATUS_SUCCESS;
+}
+
 /* EOF */

reactos/subsys/system/usetup
bootsup.h 1.6 -> 1.6.22.1
diff -u -r1.6 -r1.6.22.1
--- bootsup.h	19 Aug 2003 15:54:47 -0000	1.6
+++ bootsup.h	27 Jun 2004 01:13:17 -0000	1.6.22.1
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: bootsup.h,v 1.6 2003/08/19 15:54:47 ekohl Exp $
+/* $Id: bootsup.h,v 1.6.22.1 2004/06/27 01:13:17 hyperion Exp $
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS text-mode setup
  * FILE:            subsys/system/usetup/bootsup.h
@@ -65,12 +65,24 @@
 InstallFat32BootCodeToDisk(PWSTR SrcPath,
 			   PWSTR RootPath);
 
-
 NTSTATUS
 UpdateBootIni(PWSTR BootIniPath,
 	      PWSTR EntryName,
 	      PWSTR EntryValue);
 
+BOOLEAN
+CheckInstallFatBootcodeToPartition(PUNICODE_STRING SystemRootPath);
+
+NTSTATUS
+InstallFatBootcodeToPartition(PUNICODE_STRING SystemRootPath,
+			      PUNICODE_STRING SourceRootPath,
+			      PUNICODE_STRING DestinationArcPath,
+			      UCHAR PartitionType);
+
+NTSTATUS
+InstallFatBootcodeToFloppy(PUNICODE_STRING SourceRootPath,
+			   PUNICODE_STRING DestinationArcPath);
+
 #endif /* __BOOTSUP_H__ */
 
 /* EOF */

reactos/subsys/system/usetup
usetup.c 1.56 -> 1.56.2.1
diff -u -r1.56 -r1.56.2.1
--- usetup.c	20 Jun 2004 12:14:23 -0000	1.56
+++ usetup.c	27 Jun 2004 01:13:17 -0000	1.56.2.1
@@ -58,6 +58,8 @@
   INTRO_PAGE,
   INSTALL_INTRO_PAGE,
 
+//  SCSI_CONTROLLER_PAGE,
+
   DEVICE_SETTINGS_PAGE,
   COMPUTER_SETTINGS_PAGE,
   DISPLAY_SETTINGS_PAGE,
@@ -78,6 +80,8 @@
   FILE_COPY_PAGE,
   REGISTRY_PAGE,
   BOOT_LOADER_PAGE,
+  BOOT_LOADER_FLOPPY_PAGE,
+  BOOT_LOADER_HARDDISK_PAGE,
 
   REPAIR_INTRO_PAGE,
 
@@ -435,8 +439,7 @@
   RtlInitUnicodeString(&FileName,
 		       UnattendInfPath);
 
-  /* Load txtsetup.sif from install media. */
-
+  /* Load 'unattend.inf' from install media. */
   Status = InfOpenFile(&UnattendInf,
 		       &FileName,
 		       &ErrorLine);
@@ -835,7 +838,7 @@
 
   if (IsUnattendedSetup)
     {
-      return(SELECT_PARTITION_PAGE);
+      return SELECT_PARTITION_PAGE;
     }
 
   while(TRUE)
@@ -852,6 +855,7 @@
       else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */
 	{
 	  return DEVICE_SETTINGS_PAGE;
+//	  return SCSI_CONTROLLER_PAGE;
 	}
     }
 
@@ -859,6 +863,42 @@
 }
 
 
+#if 0
+static PAGE_NUMBER
+ScsiControllerPage(PINPUT_RECORD Ir)
+{
+  SetTextXY(6, 8, "Setup detected the following mass storage devices:");
+
+  /* FIXME: print loaded mass storage driver descriptions */
+#if 0
+  SetTextXY(8, 10, "TEST device");
+#endif
+
+
+  SetStatusText("   ENTER = Continue   F3 = Quit");
+
+  while(TRUE)
+    {
+      ConInKey(Ir);
+
+      if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) &&
+	  (Ir->Event.KeyEvent.wVirtualKeyCode == VK_F3)) /* F3 */
+	{
+	  if (ConfirmQuit(Ir) == TRUE)
+	    return QUIT_PAGE;
+	  break;
+	}
+      else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */
+	{
+	  return DEVICE_SETTINGS_PAGE;
+	}
+    }
+
+  return SCSI_CONTROLLER_PAGE;
+}
+#endif
+
+
 static PAGE_NUMBER
 DeviceSettingsPage(PINPUT_RECORD Ir)
 {
@@ -3245,596 +3285,224 @@
 static PAGE_NUMBER
 BootLoaderPage(PINPUT_RECORD Ir)
 {
-  WCHAR SrcPath[MAX_PATH];
-  WCHAR DstPath[MAX_PATH];
-  NTSTATUS Status;
-
-  SetTextXY(6, 8, "Installing the boot loader");
+  UCHAR PartitionType;
+  BOOLEAN InstallOnFloppy;
+  USHORT Line = 12;
 
   SetStatusText("   Please wait...");
 
-  if (PartitionList->ActiveBootPartition->PartInfo[0].PartitionType == PARTITION_ENTRY_UNUSED)
-    {
-      DPRINT1("Error: active partition invalid (unused)\n");
-      PopupError("The active partition is unused (invalid).\n",
-		 "ENTER = Reboot computer");
-
-      while(TRUE)
-	{
-	  ConInKey(Ir);
+  PartitionType = PartitionList->ActiveBootPartition->PartInfo[0].PartitionType;
 
-	  if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	    {
-	      return QUIT_PAGE;
-	    }
-	}
+  if (PartitionType == PARTITION_ENTRY_UNUSED)
+    {
+      DPRINT("Error: active partition invalid (unused)\n");
+      InstallOnFloppy = TRUE;
     }
-
-  if (PartitionList->ActiveBootPartition->PartInfo[0].PartitionType == 0x0A)
+  else if (PartitionType == 0x0A)
     {
       /* OS/2 boot manager partition */
-      DPRINT1("Found OS/2 boot manager partition\n");
-      PopupError("Setup found an OS/2 boot manager partiton.\n"
-		 "The OS/2 boot manager is not supported yet!",
-		 "ENTER = Reboot computer");
-
-      while(TRUE)
-	{
-	  ConInKey(Ir);
-
-	  if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	    {
-	      return QUIT_PAGE;
-	    }
-	}
+      DPRINT("Found OS/2 boot manager partition\n");
+      InstallOnFloppy = TRUE;
     }
-  else if (PartitionList->ActiveBootPartition->PartInfo[0].PartitionType == 0x83)
+  else if (PartitionType == 0x83)
     {
       /* Linux ext2 partition */
-      DPRINT1("Found Linux ext2 partition\n");
-      PopupError("Setup found a Linux ext2 partiton.\n"
-		 "Linux ext2 partitions are not supported yet!",
-		 "ENTER = Reboot computer");
-
-      while(TRUE)
-	{
-	  ConInKey(Ir);
-
-	  if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	    {
-	      return QUIT_PAGE;
-	    }
-	}
+      DPRINT("Found Linux ext2 partition\n");
+      InstallOnFloppy = TRUE;
     }
-  else if (PartitionList->ActiveBootPartition->PartInfo[0].PartitionType == PARTITION_IFS)
+  else if (PartitionType == PARTITION_IFS)
     {
       /* NTFS partition */
-      DPRINT1("Found NTFS partition\n");
-      PopupError("Setup found an NTFS partiton.\n"
-		 "NTFS partitions are not supported yet!",
-		 "ENTER = Reboot computer");
-
-      while(TRUE)
-	{
-	  ConInKey(Ir);
+      DPRINT("Found NTFS partition\n");
+      InstallOnFloppy = TRUE;
+    }
+  else if ((PartitionType == PARTITION_FAT_12) ||
+	   (PartitionType == PARTITION_FAT_16) ||
+	   (PartitionType == PARTITION_HUGE) ||
+	   (PartitionType == PARTITION_XINT13) ||
+	   (PartitionType == PARTITION_FAT32) ||
+	   (PartitionType == PARTITION_FAT32_XINT13))
+    {
+      DPRINT("Found FAT partition\n");
+      InstallOnFloppy = FALSE;
+    }
+  else
+    {
+      /* Unknown partition */
+      DPRINT("Unknown partition found\n");
+      InstallOnFloppy = TRUE;
+    }
 
-	  if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	    {
-	      return QUIT_PAGE;
-	    }
-	}
+  if (InstallOnFloppy == TRUE)
+    {
+      return BOOT_LOADER_FLOPPY_PAGE;
     }
-  else if ((PartitionList->ActiveBootPartition->PartInfo[0].PartitionType == PARTITION_FAT_12) ||
-	   (PartitionList->ActiveBootPartition->PartInfo[0].PartitionType == PARTITION_FAT_16) ||
-	   (PartitionList->ActiveBootPartition->PartInfo[0].PartitionType == PARTITION_HUGE) ||
-	   (PartitionList->ActiveBootPartition->PartInfo[0].PartitionType == PARTITION_XINT13) ||
-	   (PartitionList->ActiveBootPartition->PartInfo[0].PartitionType == PARTITION_FAT32) ||
-	   (PartitionList->ActiveBootPartition->PartInfo[0].PartitionType == PARTITION_FAT32_XINT13))
-  {
-    /* FAT or FAT32 partition */
-    DPRINT1("System path: '%wZ'\n", &SystemRootPath);
-
-    if (DoesFileExist(SystemRootPath.Buffer, L"ntldr") == TRUE ||
-	DoesFileExist(SystemRootPath.Buffer, L"boot.ini") == TRUE)
-    {
-      /* Search root directory for 'ntldr' and 'boot.ini'. */
-      DPRINT1("Found Microsoft Windows NT/2000/XP boot loader\n");
-
-      /* Copy FreeLoader to the boot partition */
-      wcscpy(SrcPath, SourceRootPath.Buffer);
-      wcscat(SrcPath, L"\\loader\\freeldr.sys");
-      wcscpy(DstPath, SystemRootPath.Buffer);
-      wcscat(DstPath, L"\\freeldr.sys");
 
-      DPRINT1("Copy: %S ==> %S\n", SrcPath, DstPath);
-      Status = SetupCopyFile(SrcPath, DstPath);
-      if (!NT_SUCCESS(Status))
-      {
-	DPRINT1("SetupCopyFile() failed (Status %lx)\n", Status);
-	PopupError("Setup failed to copy 'freeldr.sys'.",
-		   "ENTER = Reboot computer");
+  SetTextXY(6, 8, "Setup is installing the boot loader");
 
-	while(TRUE)
-	{
-	  ConInKey(Ir);
+  SetTextXY(8, 12, "Install bootloader on the harddisk (MBR).");
+  SetTextXY(8, 13, "Install bootloader on a floppy disk.");
+  InvertTextXY (8, Line, 48, 1);
 
-	  if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	  {
-	    return QUIT_PAGE;
-	  }
-	}
-      }
-
-      /* Create or update freeldr.ini */
-      if (DoesFileExist(SystemRootPath.Buffer, L"freeldr.ini") == FALSE)
-      {
-	/* Create new 'freeldr.ini' */
-	DPRINT1("Create new 'freeldr.ini'\n");
-	wcscpy(DstPath, SystemRootPath.Buffer);
-	wcscat(DstPath, L"\\freeldr.ini");
-
-	Status = CreateFreeLoaderIniForReactos(DstPath,
-					       DestinationArcPath.Buffer);
-	if (!NT_SUCCESS(Status))
-	{
-	  DPRINT1("CreateFreeLoaderIniForReactos() failed (Status %lx)\n", Status);
-	  PopupError("Setup failed to create 'freeldr.ini'.",
-		     "ENTER = Reboot computer");
+  SetStatusText("   ENTER = Continue   F3 = Quit");
 
-	  while(TRUE)
-	  {
-	    ConInKey(Ir);
+  while(TRUE)
+    {
+      ConInKey(Ir);
 
-	    if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	    {
-	      return QUIT_PAGE;
-	    }
-	  }
+      if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) &&
+	  (Ir->Event.KeyEvent.wVirtualKeyCode == VK_DOWN)) /* DOWN */
+	{
+	  NormalTextXY (8, Line, 48, 1);
+	  if (Line == 12)
+	    Line = 13;
+	  else if (Line == 13)
+	    Line = 12;
+#if 0
+	  else
+	    Line++;
+#endif
+	  InvertTextXY (8, Line, 48, 1);
 	}
-
-	/* Install new bootcode */
-	if ((PartitionList->ActiveBootPartition->PartInfo[0].PartitionType == PARTITION_FAT32) ||
-	    (PartitionList->ActiveBootPartition->PartInfo[0].PartitionType == PARTITION_FAT32_XINT13))
+      else if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) &&
+	       (Ir->Event.KeyEvent.wVirtualKeyCode == VK_UP)) /* UP */
 	{
-	  /* Install FAT32 bootcode */
-	  wcscpy(SrcPath, SourceRootPath.Buffer);
-	  wcscat(SrcPath, L"\\loader\\fat32.bin");
-	  wcscpy(DstPath, SystemRootPath.Buffer);
-	  wcscat(DstPath, L"\\bootsect.ros");
-
-	  DPRINT1("Install FAT32 bootcode: %S ==> %S\n", SrcPath, DstPath);
-	  Status = InstallFat32BootCodeToFile(SrcPath,
-					      DstPath,
-					      SystemRootPath.Buffer);
-	  if (!NT_SUCCESS(Status))
-	  {
-	    DPRINT1("InstallFat32BootCodeToFile() failed (Status %lx)\n", Status);
-	    PopupError("Setup failed to install the FAT32 bootcode.",
-		       "ENTER = Reboot computer");
-
-	    while(TRUE)
-	    {
-	      ConInKey(Ir);
-
-	      if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	      {
-		return QUIT_PAGE;
-	      }
-	    }
-	  }
+	  NormalTextXY (8, Line, 48, 1);
+	  if (Line == 12)
+	    Line = 13;
+	  else if (Line == 13)
+	    Line = 12;
+#if 0
+	  else
+	    Line--;
+#endif
+	  InvertTextXY (8, Line, 48, 1);
 	}
-	else
+      else if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) &&
+	       (Ir->Event.KeyEvent.wVirtualKeyCode == VK_F3)) /* F3 */
 	{
-	  /* Install FAT16 bootcode */
-	  wcscpy(SrcPath, SourceRootPath.Buffer);
-	  wcscat(SrcPath, L"\\loader\\fat.bin");
-	  wcscpy(DstPath, SystemRootPath.Buffer);
-	  wcscat(DstPath, L"\\bootsect.ros");
-
-	  DPRINT1("Install FAT bootcode: %S ==> %S\n", SrcPath, DstPath);
-	  Status = InstallFat16BootCodeToFile(SrcPath,
-					      DstPath,
-					      SystemRootPath.Buffer);
-	  if (!NT_SUCCESS(Status))
-	  {
-	    DPRINT1("InstallFat16BootCodeToFile() failed (Status %lx)\n", Status);
-	    PopupError("Setup failed to install the FAT bootcode.",
-		       "ENTER = Reboot computer");
-
-	    while(TRUE)
-	    {
-	      ConInKey(Ir);
-
-	      if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	      {
-		return QUIT_PAGE;
-	      }
-	    }
-	  }
+	  if (ConfirmQuit(Ir) == TRUE)
+	    return QUIT_PAGE;
+	  break;
 	}
-
-	/* Update 'boot.ini' */
-	wcscpy(DstPath, SystemRootPath.Buffer);
-	wcscat(DstPath, L"\\boot.ini");
-
-	DPRINT1("Update 'boot.ini': %S\n", DstPath);
-	Status = UpdateBootIni(DstPath,
-			       L"C:\\bootsect.ros",
-			       L"\"ReactOS\"");
-	if (!NT_SUCCESS(Status))
+      else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
 	{
-	  DPRINT1("UpdateBootIni() failed (Status %lx)\n", Status);
-	  PopupError("Setup failed to update \'boot.ini\'.",
-		     "ENTER = Reboot computer");
-
-	  while(TRUE)
-	  {
-	    ConInKey(Ir);
-
-	    if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
+	  if (Line == 12)
 	    {
-	      return QUIT_PAGE;
+	      return BOOT_LOADER_HARDDISK_PAGE;
 	    }
-	  }
-	}
-      }
-      else
-      {
-	/* Update existing 'freeldr.ini' */
-	DPRINT1("Update existing 'freeldr.ini'\n");
-	wcscpy(DstPath, SystemRootPath.Buffer);
-	wcscat(DstPath, L"\\freeldr.ini");
-
-	Status = UpdateFreeLoaderIni(DstPath,
-				     DestinationArcPath.Buffer);
-	if (!NT_SUCCESS(Status))
-	{
-	  DPRINT1("UpdateFreeLoaderIni() failed (Status %lx)\n", Status);
-	  PopupError("Setup failed to update 'freeldr.ini'.",
-		     "ENTER = Reboot computer");
-
-	  while(TRUE)
-	  {
-	    ConInKey(Ir);
-
-	    if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
+	  else if (Line == 13)
 	    {
-	      return QUIT_PAGE;
+	      return BOOT_LOADER_FLOPPY_PAGE;
 	    }
-	  }
+
+	  return BOOT_LOADER_PAGE;
 	}
-      }
+
     }
-    else if (DoesFileExist(SystemRootPath.Buffer, L"io.sys") == TRUE ||
-	     DoesFileExist(SystemRootPath.Buffer, L"msdos.sys") == TRUE)
-    {
-      /* Search for root directory for 'io.sys' and 'msdos.sys'. */
-      DPRINT1("Found Microsoft DOS or Windows 9x boot loader\n");
 
-      /* Copy FreeLoader to the boot partition */
-      wcscpy(SrcPath, SourceRootPath.Buffer);
-      wcscat(SrcPath, L"\\loader\\freeldr.sys");
-      wcscpy(DstPath, SystemRootPath.Buffer);
-      wcscat(DstPath, L"\\freeldr.sys");
+  return BOOT_LOADER_PAGE;
+}
 
-      DPRINT("Copy: %S ==> %S\n", SrcPath, DstPath);
-      Status = SetupCopyFile(SrcPath, DstPath);
-      if (!NT_SUCCESS(Status))
-      {
-	DPRINT1("SetupCopyFile() failed (Status %lx)\n", Status);
-	PopupError("Setup failed to copy 'freeldr.sys'.",
-		   "ENTER = Reboot computer");
 
-	while(TRUE)
-	{
-	  ConInKey(Ir);
+static PAGE_NUMBER
+BootLoaderFloppyPage(PINPUT_RECORD Ir)
+{
+  NTSTATUS Status;
 
-	  if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	  {
-	    return QUIT_PAGE;
-	  }
-	}
-      }
+  SetTextXY(6, 8, "Setup cannot install the bootloader on your computers");
+  SetTextXY(6, 9, "harddisk");
 
-      /* Create or update 'freeldr.ini' */
-      if (DoesFileExist(SystemRootPath.Buffer, L"freeldr.ini") == FALSE)
-      {
-	/* Create new 'freeldr.ini' */
-	DPRINT1("Create new 'freeldr.ini'\n");
-	wcscpy(DstPath, SystemRootPath.Buffer);
-	wcscat(DstPath, L"\\freeldr.ini");
-
-	Status = CreateFreeLoaderIniForDos(DstPath,
-					   DestinationArcPath.Buffer);
-	if (!NT_SUCCESS(Status))
-	{
-	  DPRINT1("CreateFreeLoaderIniForDos() failed (Status %lx)\n", Status);
-	  PopupError("Setup failed to create 'freeldr.ini'.",
-		     "ENTER = Reboot computer");
+  SetTextXY(6, 13, "Please insert a formatted floppy disk in drive A: and");
+  SetTextXY(6, 14, "press ENTER.");
 
-	  while(TRUE)
-	  {
-	    ConInKey(Ir);
 
-	    if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	    {
-	      return QUIT_PAGE;
-	    }
-	  }
-	}
+  SetStatusText("   ENTER = Continue   F3 = Quit");
+//  SetStatusText("   Please wait...");
 
-	/* Save current bootsector as 'BOOTSECT.DOS' */
-	wcscpy(SrcPath, SystemRootPath.Buffer);
-	wcscpy(DstPath, SystemRootPath.Buffer);
-	wcscat(DstPath, L"\\bootsect.dos");
+  while(TRUE)
+    {
+      ConInKey(Ir);
 
-	DPRINT1("Save bootsector: %S ==> %S\n", SrcPath, DstPath);
-	Status = SaveCurrentBootSector(SrcPath,
-				       DstPath);
-	if (!NT_SUCCESS(Status))
+      if ((Ir->Event.KeyEvent.uChar.AsciiChar == 0x00) &&
+	  (Ir->Event.KeyEvent.wVirtualKeyCode == VK_F3)) /* F3 */
 	{
-	  DPRINT1("SaveCurrentBootSector() failed (Status %lx)\n", Status);
-	  PopupError("Setup failed to save the current bootsector.",
-		     "ENTER = Reboot computer");
-
-	  while(TRUE)
-	  {
-	    ConInKey(Ir);
-
-	    if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	    {
-	      return QUIT_PAGE;
-	    }
-	  }
+	  if (ConfirmQuit(Ir) == TRUE)
+	    return QUIT_PAGE;
+	  break;
 	}
-
-	/* Install new bootsector */
-	if ((PartitionList->ActiveBootPartition->PartInfo[0].PartitionType == PARTITION_FAT32) ||
-	    (PartitionList->ActiveBootPartition->PartInfo[0].PartitionType == PARTITION_FAT32_XINT13))
+      else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
 	{
-	  wcscpy(SrcPath, SourceRootPath.Buffer);
-	  wcscat(SrcPath, L"\\loader\\fat32.bin");
-
-	  DPRINT1("Install FAT32 bootcode: %S ==> %S\n", SrcPath, SystemRootPath.Buffer);
-	  Status = InstallFat32BootCodeToDisk(SrcPath,
-					      SystemRootPath.Buffer);
-	  if (!NT_SUCCESS(Status))
-	  {
-	    DPRINT1("InstallFat32BootCodeToDisk() failed (Status %lx)\n", Status);
-	    PopupError("Setup failed to install the FAT32 bootcode.",
-		       "ENTER = Reboot computer");
-
-	    while(TRUE)
+	  if (DoesFileExist(L"\\Device\\Floppy0", L"\\") == FALSE)
 	    {
-	      ConInKey(Ir);
+	      PopupError("No disk in drive A:.",
+			 "ENTER = Continue");
+	      while(TRUE)
+		{
+		  ConInKey(Ir);
 
-	      if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	      {
-		return QUIT_PAGE;
-	      }
+		  if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
+		    break;
+		}
+
+	      return BOOT_LOADER_FLOPPY_PAGE;
 	    }
-	  }
-	}
-	else
-	{
-	  wcscpy(SrcPath, SourceRootPath.Buffer);
-	  wcscat(SrcPath, L"\\loader\\fat.bin");
 
-	  DPRINT1("Install FAT bootcode: %S ==> %S\n", SrcPath, SystemRootPath.Buffer);
-	  Status = InstallFat16BootCodeToDisk(SrcPath,
-					      SystemRootPath.Buffer);
+	  Status = InstallFatBootcodeToFloppy(&SourceRootPath,
+					      &DestinationArcPath);
 	  if (!NT_SUCCESS(Status))
-	  {
-	    DPRINT1("InstallFat16BootCodeToDisk() failed (Status %lx)\n", Status);
-	    PopupError("Setup failed to install the FAT bootcode.",
-		       "ENTER = Reboot computer");
-
-	    while(TRUE)
 	    {
-	      ConInKey(Ir);
-
-	      if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	      {
-		return QUIT_PAGE;
-	      }
+	      /* Print error message */
+	      return BOOT_LOADER_FLOPPY_PAGE;
 	    }
-	  }
-	}
-      }
-      else
-      {
-	/* Update existing 'freeldr.ini' */
-	wcscpy(DstPath, SystemRootPath.Buffer);
-	wcscat(DstPath, L"\\freeldr.ini");
-
-	Status = UpdateFreeLoaderIni(DstPath,
-				     DestinationArcPath.Buffer);
-	if (!NT_SUCCESS(Status))
-	{
-	  DPRINT1("UpdateFreeLoaderIni() failed (Status %lx)\n", Status);
-	  PopupError("Setup failed to update 'freeldr.ini'.",
-		     "ENTER = Reboot computer");
 
-	  while(TRUE)
-	  {
-	    ConInKey(Ir);
-
-	    if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	    {
-	      return QUIT_PAGE;
-	    }
-	  }
+	  return SUCCESS_PAGE;
 	}
-      }
     }
-    else
-    {
-      /* No or unknown boot loader */
-      DPRINT1("No or unknown boot loader found\n");
 
-      /* Copy FreeLoader to the boot partition */
-      wcscpy(SrcPath, SourceRootPath.Buffer);
-      wcscat(SrcPath, L"\\loader\\freeldr.sys");
-      wcscpy(DstPath, SystemRootPath.Buffer);
-      wcscat(DstPath, L"\\freeldr.sys");
-
-      DPRINT1("Copy: %S ==> %S\n", SrcPath, DstPath);
-      Status = SetupCopyFile(SrcPath, DstPath);
-      if (!NT_SUCCESS(Status))
-      {
-	DPRINT1("SetupCopyFile() failed (Status %lx)\n", Status);
-	PopupError("Setup failed to copy 'freeldr.sys'.",
-		   "ENTER = Reboot computer");
-
-	while(TRUE)
-	{
-	  ConInKey(Ir);
-
-	  if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	  {
-	    return QUIT_PAGE;
-	  }
-	}
-      }
-
-      /* Create or update 'freeldr.ini' */
-      if (DoesFileExist(SystemRootPath.Buffer, L"freeldr.ini") == FALSE)
-      {
-	/* Create new freeldr.ini */
-	wcscpy(DstPath, SystemRootPath.Buffer);
-	wcscat(DstPath, L"\\freeldr.ini");
-
-	DPRINT1("Copy: %S ==> %S\n", SrcPath, DstPath);
-	Status = CreateFreeLoaderIniForReactos(DstPath,
-					       DestinationArcPath.Buffer);
-	if (!NT_SUCCESS(Status))
-	{
-	  DPRINT1("CreateFreeLoaderIniForReactos() failed (Status %lx)\n", Status);
-	  PopupError("Setup failed to create \'freeldr.ini\'.",
-		     "ENTER = Reboot computer");
+  return BOOT_LOADER_FLOPPY_PAGE;
+}
 
-	  while(TRUE)
-	  {
-	    ConInKey(Ir);
 
-	    if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	    {
-	      return QUIT_PAGE;
-	    }
-	  }
-	}
-
-	/* Save current bootsector as 'BOOTSECT.OLD' */
-	wcscpy(SrcPath, SystemRootPath.Buffer);
-	wcscpy(DstPath, SystemRootPath.Buffer);
-	wcscat(DstPath, L"\\bootsect.old");
+static PAGE_NUMBER
+BootLoaderHarddiskPage(PINPUT_RECORD Ir)
+{
+  UCHAR PartitionType;
+  NTSTATUS Status;
 
-	DPRINT1("Save bootsector: %S ==> %S\n", SrcPath, DstPath);
-	Status = SaveCurrentBootSector(SrcPath,
-				       DstPath);
-	if (!NT_SUCCESS(Status))
+  PartitionType = PartitionList->ActiveBootPartition->PartInfo[0].PartitionType;
+  if ((PartitionType == PARTITION_FAT_12) ||
+      (PartitionType == PARTITION_FAT_16) ||
+      (PartitionType == PARTITION_HUGE) ||
+      (PartitionType == PARTITION_XINT13) ||
+      (PartitionType == PARTITION_FAT32) ||
+      (PartitionType == PARTITION_FAT32_XINT13))
+    {
+      Status = InstallFatBootcodeToPartition(&SystemRootPath,
+					     &SourceRootPath,
+					     &DestinationArcPath,
+					     PartitionType);
+      if (!NT_SUCCESS(Status))
 	{
-	  DPRINT1("SaveCurrentBootSector() failed (Status %lx)\n", Status);
-	  PopupError("Setup failed save the current bootsector.",
+	  PopupError("Setup failed to install the FAT bootcode on the system partition.",
 		     "ENTER = Reboot computer");
 
 	  while(TRUE)
-	  {
-	    ConInKey(Ir);
-
-	    if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	    {
-	      return QUIT_PAGE;
-	    }
-	  }
-	}
-
-	/* Install new bootsector */
-	if ((PartitionList->ActiveBootPartition->PartInfo[0].PartitionType == PARTITION_FAT32) ||
-	    (PartitionList->ActiveBootPartition->PartInfo[0].PartitionType == PARTITION_FAT32_XINT13))
-	{
-	  wcscpy(SrcPath, SourceRootPath.Buffer);
-	  wcscat(SrcPath, L"\\loader\\fat32.bin");
-
-	  DPRINT1("Install FAT32 bootcode: %S ==> %S\n", SrcPath, SystemRootPath.Buffer);
-	  Status = InstallFat32BootCodeToDisk(SrcPath,
-					      SystemRootPath.Buffer);
-	  if (!NT_SUCCESS(Status))
-	  {
-	    DPRINT1("InstallFat32BootCodeToDisk() failed (Status %lx)\n", Status);
-	    PopupError("Setup failed to install the FAT32 bootcode.",
-		       "ENTER = Reboot computer");
-
-	    while(TRUE)
 	    {
 	      ConInKey(Ir);
 
 	      if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	      {
-		return QUIT_PAGE;
-	      }
+		{
+		  return QUIT_PAGE;
+		}
 	    }
-	  }
 	}
-	else
-	{
-	  wcscpy(SrcPath, SourceRootPath.Buffer);
-	  wcscat(SrcPath, L"\\loader\\fat.bin");
 
-	  DPRINT1("Install FAT bootcode: %S ==> %S\n", SrcPath, SystemRootPath.Buffer);
-	  Status = InstallFat16BootCodeToDisk(SrcPath,
-					      SystemRootPath.Buffer);
-	  if (!NT_SUCCESS(Status))
-	  {
-	    DPRINT1("InstallFat16BootCodeToDisk() failed (Status %lx)\n", Status);
-	    PopupError("Setup failed to install the FAT bootcode.",
-		       "ENTER = Reboot computer");
-
-	    while(TRUE)
-	    {
-	      ConInKey(Ir);
-
-	      if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	      {
-		return QUIT_PAGE;
-	      }
-	    }
-	  }
-	}
-      }
-      else
-      {
-	/* Update existing 'freeldr.ini' */
-	wcscpy(DstPath, SystemRootPath.Buffer);
-	wcscat(DstPath, L"\\freeldr.ini");
-
-	Status = UpdateFreeLoaderIni(DstPath,
-				     DestinationArcPath.Buffer);
-	if (!NT_SUCCESS(Status))
-	{
-	  DPRINT1("UpdateFreeLoaderIni() failed (Status %lx)\n", Status);
-	  PopupError("Setup failed to update 'freeldr.ini'.",
-		     "ENTER = Reboot computer");
-
-	  while(TRUE)
-	  {
-	    ConInKey(Ir);
-
-	    if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D)	/* ENTER */
-	    {
-	      return QUIT_PAGE;
-	    }
-	  }
-	}
-      }
+      return SUCCESS_PAGE;
     }
-  }
   else
     {
-      /* Unknown partition */
-      DPRINT1("Unknown partition found\n");
-      PopupError("Setup found an unknown partiton type.\n"
-		 "This partition type is not supported!",
+      PopupError("failed to install FAT bootcode on the system partition.",
 		 "ENTER = Reboot computer");
 
       while(TRUE)
@@ -3848,7 +3516,7 @@
 	}
     }
 
-  return SUCCESS_PAGE;
+  return BOOT_LOADER_HARDDISK_PAGE;
 }
 
 
@@ -4029,6 +3697,12 @@
 	    break;
 
 #if 0
+	  case SCSI_CONTROLLER_PAGE:
+	    Page = ScsiControllerPage(&Ir);
+	    break;
+#endif
+
+#if 0
 	  case OEM_DRIVER_PAGE:
 	    Page = OemDriverPage(&Ir);
 	    break;
@@ -4102,6 +3776,14 @@
 	    Page = BootLoaderPage(&Ir);
 	    break;
 
+	  case BOOT_LOADER_FLOPPY_PAGE:
+	    Page = BootLoaderFloppyPage(&Ir);
+	    break;
+
+	  case BOOT_LOADER_HARDDISK_PAGE:
+	    Page = BootLoaderHarddiskPage(&Ir);
+	    break;
+
 
 	  /* Repair pages */
 	  case REPAIR_INTRO_PAGE:

reactos/subsys/win32k/eng
misc.c 1.6 -> 1.6.6.1
diff -u -r1.6 -r1.6.6.1
--- misc.c	10 May 2004 17:07:17 -0000	1.6
+++ misc.c	27 Jun 2004 01:13:17 -0000	1.6.6.1
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: misc.c,v 1.6 2004/05/10 17:07:17 weiden Exp $ */
+/* $Id: misc.c,v 1.6.6.1 2004/06/27 01:13:17 hyperion Exp $ */
 #include <w32k.h>
 
 BOOL STDCALL
@@ -63,7 +63,7 @@
     Width = DIB_GetDIBWidthBytes(BitmapSize.cx, BitsPerFormat(DestObj->iBitmapFormat));
     EnterLeave->OutputBitmap = EngCreateBitmap(BitmapSize, Width,
                                                DestObj->iBitmapFormat,
-                                               BMF_NOZEROINIT, NULL);
+                                               BMF_TOPDOWN | BMF_NOZEROINIT, NULL);
     *OutputObj = (SURFOBJ *) AccessUserObject((ULONG) EnterLeave->OutputBitmap);
 
     EnterLeave->DestRect.left = 0;

reactos/subsys/win32k/eng
mouse.c 1.72 -> 1.72.2.1
diff -u -r1.72 -r1.72.2.1
--- mouse.c	20 Jun 2004 12:34:17 -0000	1.72
+++ mouse.c	27 Jun 2004 01:13:17 -0000	1.72.2.1
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: mouse.c,v 1.72 2004/06/20 12:34:17 navaraf Exp $
+/* $Id: mouse.c,v 1.72.2.1 2004/06/27 01:13:17 hyperion Exp $
  *
  * PROJECT:          ReactOS kernel
  * PURPOSE:          Mouse
@@ -554,7 +554,7 @@
       memcpy(Bits, psoColor->pvBits, psoColor->cjBits);
 
       ppdev->PointerColorSurface = (HSURF)EngCreateBitmap(Size,
-         psoColor->lDelta, psoColor->iBitmapFormat, 0, Bits);
+         psoColor->lDelta, psoColor->iBitmapFormat, BMF_TOPDOWN, Bits);
    }
    else
    {
@@ -571,7 +571,7 @@
       memcpy(Bits, psoMask->pvBits, psoMask->cjBits);
 
       ppdev->PointerMaskSurface = (HSURF)EngCreateBitmap(Size,
-         psoMask->lDelta, psoMask->iBitmapFormat, 0, Bits);
+         psoMask->lDelta, psoMask->iBitmapFormat, BMF_TOPDOWN, Bits);
    }
 
    /*
@@ -626,7 +626,7 @@
       }
 
       ppdev->PointerSaveSurface = (HSURF)EngCreateBitmap(
-         Size, lDelta, pso->iBitmapFormat, BMF_NOZEROINIT, NULL);
+         Size, lDelta, pso->iBitmapFormat, BMF_TOPDOWN | BMF_NOZEROINIT, NULL);
    }
 
    IntShowMousePointer(ppdev, pso);

reactos/subsys/win32k/eng
surface.c 1.40 -> 1.40.4.1
diff -u -r1.40 -r1.40.4.1
--- surface.c	30 May 2004 14:01:12 -0000	1.40
+++ surface.c	27 Jun 2004 01:13:17 -0000	1.40.4.1
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: surface.c,v 1.40 2004/05/30 14:01:12 weiden Exp $
+/* $Id: surface.c,v 1.40.4.1 2004/06/27 01:13:17 hyperion Exp $
  * 
  * COPYRIGHT:         See COPYING in the top level directory
  * PROJECT:           ReactOS kernel
@@ -317,57 +317,67 @@
   PVOID UncompressedBits;
   ULONG UncompressedFormat;
 
-  NewBitmap = (PVOID)CreateGDIHandle(sizeof(SURFGDI), sizeof(SURFOBJ), (PVOID*)&SurfGDI, (PVOID*)&SurfObj);
-  if( !ValidEngHandle( NewBitmap ) )
+  NewBitmap = (HBITMAP) CreateGDIHandle(sizeof(SURFGDI), sizeof(SURFOBJ), (PVOID*)&SurfGDI, (PVOID*)&SurfObj);
+  if (! ValidEngHandle(NewBitmap))
 	return 0;
 
   SurfGDI->BitsPerPixel = BitsPerFormat(Format);
-  if (Format == BMF_4RLE) {
-	  SurfObj->lDelta = DIB_GetDIBWidthBytes(Size.cx, BitsPerFormat(BMF_4BPP));
-	  SurfObj->cjBits = SurfObj->lDelta * Size.cy;
-	  UncompressedFormat = BMF_4BPP;
+  if (Format == BMF_4RLE)
+    {
+      SurfObj->lDelta = DIB_GetDIBWidthBytes(Size.cx, BitsPerFormat(BMF_4BPP));
+      SurfObj->cjBits = SurfObj->lDelta * Size.cy;
+      UncompressedFormat = BMF_4BPP;
       UncompressedBits = EngAllocMem(FL_ZERO_MEMORY, SurfObj->cjBits, 0);
-	  Decompress4bpp(Size, (BYTE *)Bits, (BYTE *)UncompressedBits, SurfObj->lDelta);
-  } else {
-	  if (Format == BMF_8RLE) {
-		  SurfObj->lDelta = DIB_GetDIBWidthBytes(Size.cx, BitsPerFormat(BMF_8BPP));
-		  SurfObj->cjBits = SurfObj->lDelta * Size.cy;
-	      UncompressedFormat = BMF_8BPP;
-	      UncompressedBits = EngAllocMem(FL_ZERO_MEMORY, SurfObj->cjBits, 0);
-		  Decompress8bpp(Size, (BYTE *)Bits, (BYTE *)UncompressedBits, SurfObj->lDelta);
-	  } else {
-  SurfObj->lDelta = Width;
-  SurfObj->cjBits = SurfObj->lDelta * Size.cy;
-		  UncompressedBits = Bits;
-		  UncompressedFormat = Format;
-	  }
-  }
-  if(UncompressedBits!=NULL)
-  {
-    SurfObj->pvBits = UncompressedBits;
-  } else
-  {
-    if (SurfObj->cjBits == 0)
+      Decompress4bpp(Size, (BYTE *)Bits, (BYTE *)UncompressedBits, SurfObj->lDelta);
+    }
+  else if (Format == BMF_8RLE)
     {
-      SurfObj->pvBits = NULL;
+      SurfObj->lDelta = DIB_GetDIBWidthBytes(Size.cx, BitsPerFormat(BMF_8BPP));
+      SurfObj->cjBits = SurfObj->lDelta * Size.cy;
+      UncompressedFormat = BMF_8BPP;
+      UncompressedBits = EngAllocMem(FL_ZERO_MEMORY, SurfObj->cjBits, 0);
+      Decompress8bpp(Size, (BYTE *)Bits, (BYTE *)UncompressedBits, SurfObj->lDelta);
     }
-    else
+  else
     {
-      if(Flags & BMF_USERMEM)
-      {
-        SurfObj->pvBits = EngAllocUserMem(SurfObj->cjBits, 0);
-      } else {
-        if(Flags & BMF_NOZEROINIT)
+      SurfObj->lDelta = Width;
+      SurfObj->cjBits = Width * Size.cy;
+      UncompressedBits = Bits;
+      UncompressedFormat = Format;
+    }
+
+  if (UncompressedBits != NULL)
+    {
+      SurfObj->pvBits = UncompressedBits;
+    }
+  else
+    {
+      if (SurfObj->cjBits == 0)
         {
-          SurfObj->pvBits = EngAllocMem(0, SurfObj->cjBits, 0);
-        } else {
-          SurfObj->pvBits = EngAllocMem(FL_ZERO_MEMORY, SurfObj->cjBits, 0);
+          SurfObj->pvBits = NULL;
         }
-      }
+      else
+        {
+          if (0 != (Flags & BMF_USERMEM))
+            {
+              SurfObj->pvBits = EngAllocUserMem(SurfObj->cjBits, 0);
+            }
+          else
+            {
+              SurfObj->pvBits = EngAllocMem(0 != (Flags & BMF_NOZEROINIT) ? 0 : FL_ZERO_MEMORY,
+                                            SurfObj->cjBits, 0);
+             }
+         }
+     }
+
+
+  if (0 == (Flags & BMF_TOPDOWN))
+    {
+      SurfObj->pvBits = (PVOID) ((PCHAR) UncompressedBits + SurfObj->cjBits - SurfObj->lDelta);
+      SurfObj->lDelta = - SurfObj->lDelta;
     }
-  }
 
-  SurfObj->dhsurf = 0; // device managed surface
+  SurfObj->dhsurf = 0; /* device managed surface */
   SurfObj->hsurf  = 0;
   SurfObj->dhpdev = NULL;
   SurfObj->hdev = NULL;
@@ -380,7 +390,7 @@
 
   InitializeFuncs(SurfGDI, UncompressedFormat);
 
-  // Use flags to determine bitmap type -- TOP_DOWN or whatever
+  /* Use flags to determine bitmap type -- TOP_DOWN or whatever */
 
   return NewBitmap;
 }

reactos/subsys/win32k/include
palette.h 1.8 -> 1.8.6.1
diff -u -r1.8 -r1.8.6.1
--- palette.h	9 Apr 2004 20:03:18 -0000	1.8
+++ palette.h	27 Jun 2004 01:13:17 -0000	1.8.6.1
@@ -33,6 +33,8 @@
                                        ULONG Red,
                                        ULONG Green,
                                        ULONG Blue);
+HPALETTE FASTCALL PALETTE_AllocPaletteIndexedRGB(ULONG NumColors,
+                                                 CONST RGBQUAD *Colors);
 #define  PALETTE_FreePalette(hPalette)  GDIOBJ_FreeObj((HGDIOBJ)hPalette, GDI_OBJECT_TYPE_PALETTE, GDIOBJFLAG_DEFAULT)
 #define  PALETTE_LockPalette(hPalette) ((PPALGDI)GDIOBJ_LockObj((HGDIOBJ)hPalette, GDI_OBJECT_TYPE_PALETTE))
 #define  PALETTE_UnlockPalette(hPalette) GDIOBJ_UnlockObj((HGDIOBJ)hPalette, GDI_OBJECT_TYPE_PALETTE)

reactos/subsys/win32k/ntuser
focus.c 1.23 -> 1.23.2.1
diff -u -r1.23 -r1.23.2.1
--- focus.c	20 Jun 2004 22:25:14 -0000	1.23
+++ focus.c	27 Jun 2004 01:13:17 -0000	1.23.2.1
@@ -16,7 +16,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: focus.c,v 1.23 2004/06/20 22:25:14 gvg Exp $
+ * $Id: focus.c,v 1.23.2.1 2004/06/27 01:13:17 hyperion Exp $
  */
 
 #include <w32k.h>
@@ -452,7 +452,7 @@
       if (Window->Style & (WS_MINIMIZE | WS_DISABLED))
       {
          IntReleaseWindowObject(Window);
-         return ThreadQueue ? 0 : ThreadQueue->FocusWindow;
+         return (ThreadQueue ? ThreadQueue->FocusWindow : 0);
       }
 
       if (Window->MessageQueue != ThreadQueue)

reactos/subsys/win32k/ntuser
misc.c 1.79 -> 1.79.2.1
diff -u -r1.79 -r1.79.2.1
--- misc.c	20 Jun 2004 00:45:36 -0000	1.79
+++ misc.c	27 Jun 2004 01:13:17 -0000	1.79.2.1
@@ -1,4 +1,4 @@
-/* $Id: misc.c,v 1.79 2004/06/20 00:45:36 navaraf Exp $
+/* $Id: misc.c,v 1.79.2.1 2004/06/27 01:13:17 hyperion Exp $
  *
  * COPYRIGHT:        See COPYING in the top level directory
  * PROJECT:          ReactOS kernel
@@ -17,12 +17,6 @@
 /* registered Logon process */
 PW32PROCESS LogonProcess = NULL;
 
-/* FIXME - not yet defined in w32api :( */
-#define SPI_GETFOCUSBORDERWIDTH	(8206)
-#define SPI_SETFOCUSBORDERWIDTH	(8207)
-#define SPI_GETFOCUSBORDERHEIGHT	(8208)
-#define SPI_SETFOCUSBORDERHEIGHT	(8209)
-
 void W32kRegisterPrimitiveMessageQueue() {
   extern PUSER_MESSAGE_QUEUE pmPrimitiveMessageQueue;
   if( !pmPrimitiveMessageQueue ) {
@@ -819,7 +813,7 @@
 /*
  * @implemented
  */
-DWORD
+BOOL
 STDCALL
 NtUserSystemParametersInfo(
   UINT uiAction,

reactos/subsys/win32k/objects
color.c 1.42 -> 1.42.6.1
diff -u -r1.42 -r1.42.6.1
--- color.c	22 May 2004 22:07:42 -0000	1.42
+++ color.c	27 Jun 2004 01:13:17 -0000	1.42.6.1
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: color.c,v 1.42 2004/05/22 22:07:42 navaraf Exp $ */
+/* $Id: color.c,v 1.42.6.1 2004/06/27 01:13:17 hyperion Exp $ */
 #include <w32k.h>
 
 // FIXME: Use PXLATEOBJ logicalToSystem instead of int *mapping
@@ -519,7 +519,7 @@
 {
    HWND hWnd;
 
-   hWnd = IntWindowFromDC(hDC);
+   hWnd = (HWND)NtUserCallOneParam((DWORD)hDC, ONEPARAM_ROUTINE_WINDOWFROMDC);
    if (hWnd == NULL)
    {
       SetLastWin32Error(ERROR_INVALID_WINDOW_HANDLE);

reactos/subsys/win32k/objects
dib.c 1.51 -> 1.51.2.1
diff -u -r1.51 -r1.51.2.1
--- dib.c	20 Jun 2004 00:45:37 -0000	1.51
+++ dib.c	27 Jun 2004 01:13:17 -0000	1.51.2.1
@@ -1,5 +1,5 @@
 /*
- * $Id: dib.c,v 1.51 2004/06/20 00:45:37 navaraf Exp $
+ * $Id: dib.c,v 1.51.2.1 2004/06/27 01:13:17 hyperion Exp $
  *
  * ReactOS W32 Subsystem
  * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 ReactOS Team
@@ -54,9 +54,8 @@
 
       /* Rebuild the palette. */
       NtGdiDeleteObject(dc->w.hPalette);
-      dc->w.hPalette = PALETTE_AllocPalette(PAL_INDEXED,
-         1 << BitmapObj->dib->dsBmih.biBitCount,
-         (PULONG)BitmapObj->ColorMap, 0, 0, 0);
+      dc->w.hPalette = PALETTE_AllocPaletteIndexedRGB(1 << BitmapObj->dib->dsBmih.biBitCount,
+                                                      BitmapObj->ColorMap);
    }
    else
       Entries = 0;
@@ -133,8 +132,7 @@
   //RGBQUAD  *lpRGB;
   HPALETTE    DDB_Palette, DIB_Palette;
   ULONG       DDB_Palette_Type, DIB_Palette_Type;
-  const BYTE *vBits = (const BYTE*)Bits;
-  INT         scanDirection = 1, DIBWidth;
+  INT         DIBWidth;
 
   // Check parameters
   if (!(bitmap = BITMAPOBJ_LockBitmap(hBitmap)))
@@ -161,18 +159,11 @@
   // Determine width of DIB
   DIBWidth = DIB_GetDIBWidthBytes(SourceSize.cx, bmi->bmiHeader.biBitCount);
 
-  // Determine DIB Vertical Orientation
-  if(bmi->bmiHeader.biHeight > 0)
-  {
-    scanDirection = -1;
-    vBits += DIBWidth * bmi->bmiHeader.biHeight - DIBWidth;
-  }
-
   SourceBitmap = EngCreateBitmap(SourceSize,
-                                 DIBWidth * scanDirection,
+                                 DIBWidth,
                                  BitmapFormat(bmi->bmiHeader.biBitCount, bmi->bmiHeader.biCompression),
-                                 0,
-                                 (PVOID)vBits );
+                                 0 < bmi->bmiHeader.biHeight ? 0 : BMF_TOPDOWN,
+                                 (PVOID) Bits);
   SourceSurf = (SURFOBJ*)AccessUserObject((ULONG)SourceBitmap);
 
   // Destination palette obtained from the hDC

reactos/subsys/win32k/objects
objconv.c 1.18 -> 1.18.6.1
diff -u -r1.18 -r1.18.6.1
--- objconv.c	10 May 2004 17:07:20 -0000	1.18
+++ objconv.c	27 Jun 2004 01:13:17 -0000	1.18.6.1
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: objconv.c,v 1.18 2004/05/10 17:07:20 weiden Exp $ */
+/* $Id: objconv.c,v 1.18.6.1 2004/06/27 01:13:17 hyperion Exp $ */
 #include <w32k.h>
 
 HBITMAP FASTCALL BitmapToSurf(PBITMAPOBJ BitmapObj, HDEV GDIDevice)
@@ -31,13 +31,14 @@
     {
     BitmapHandle = EngCreateBitmap(Size, BitmapObj->dib->dsBm.bmWidthBytes,
                                    BitmapFormat(BitmapObj->dib->dsBm.bmBitsPixel, BI_RGB),
-                                   0, BitmapObj->dib->dsBm.bmBits);
+                                   BitmapObj->dib->dsBmih.biHeight < 0 ? BMF_TOPDOWN : 0,
+                                   BitmapObj->dib->dsBm.bmBits);
     }
   else
     {
     BitmapHandle = EngCreateBitmap(Size, BitmapObj->bitmap.bmWidthBytes,
                                    BitmapFormat(BitmapObj->bitmap.bmBitsPixel, BI_RGB),
-                                   0, BitmapObj->bitmap.bmBits);
+                                   BMF_TOPDOWN, BitmapObj->bitmap.bmBits);
     }
   if (NULL != BitmapHandle && NULL != GDIDevice)
     {

reactos/subsys/win32k/objects
palette.c 1.19 -> 1.19.2.1
diff -u -r1.19 -r1.19.2.1
--- palette.c	20 Jun 2004 00:45:37 -0000	1.19
+++ palette.c	27 Jun 2004 01:13:17 -0000	1.19.2.1
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: palette.c,v 1.19 2004/06/20 00:45:37 navaraf Exp $ */
+/* $Id: palette.c,v 1.19.2.1 2004/06/27 01:13:17 hyperion Exp $ */
 #include <w32k.h>
 
 #ifndef NO_MAPPING
@@ -98,6 +98,48 @@
   return NewPalette;
 }
 
+HPALETTE FASTCALL
+PALETTE_AllocPaletteIndexedRGB(ULONG NumColors,
+                               CONST RGBQUAD *Colors)
+{
+  HPALETTE NewPalette;
+  PPALGDI PalGDI;
+  unsigned i;
+
+  NewPalette = (HPALETTE) GDIOBJ_AllocObj(sizeof(PALGDI), GDI_OBJECT_TYPE_PALETTE, (GDICLEANUPPROC) PALETTE_InternalDelete);
+  if (NULL == NewPalette)
+    {
+      return NULL;
+    }
+
+  PalGDI = PALETTE_LockPalette(NewPalette);
+  ASSERT( PalGDI );
+
+  PalGDI->Self = NewPalette;
+  PalGDI->Mode = PAL_INDEXED;
+
+  PalGDI->IndexedColors = ExAllocatePoolWithTag(PagedPool, sizeof(PALETTEENTRY) * NumColors, TAG_PALETTE);
+  if (NULL == PalGDI->IndexedColors)
+    {
+      PALETTE_UnlockPalette(NewPalette);
+      PALETTE_FreePalette(NewPalette);
+      return NULL;
+    }
+  for (i = 0; i < NumColors; i++)
+    {
+      PalGDI->IndexedColors[i].peRed = Colors[i].rgbRed;
+      PalGDI->IndexedColors[i].peGreen = Colors[i].rgbGreen;
+      PalGDI->IndexedColors[i].peBlue = Colors[i].rgbBlue;
+      PalGDI->IndexedColors[i].peFlags = 0;
+    }
+
+  PalGDI->NumColors = NumColors;
+
+  PALETTE_UnlockPalette(NewPalette);
+
+  return NewPalette;
+}
+
 // Create the system palette
 HPALETTE FASTCALL PALETTE_Init(VOID)
 {

reactos/subsys/win32k/objects
text.c 1.97 -> 1.97.2.1
diff -u -r1.97 -r1.97.2.1
--- text.c	20 Jun 2004 00:45:37 -0000	1.97
+++ text.c	27 Jun 2004 01:13:17 -0000	1.97.2.1
@@ -22,7 +22,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: text.c,v 1.97 2004/06/20 00:45:37 navaraf Exp $ */
+/* $Id: text.c,v 1.97.2.1 2004/06/27 01:13:17 hyperion Exp $ */
 #include <w32k.h>
 
 #include <ft2build.h>
@@ -284,7 +284,7 @@
 
    if (!NT_SUCCESS(Status))
    {
-      DPRINT("Could not font file: %wZ\n", Filename);
+      DPRINT("Could not font file: %wZ\n", FileName);
       NtGdiDeleteObject(NewFont);
       return 0;
    }
@@ -1865,7 +1865,7 @@
        * limit the work of the transbitblt.
        */
 
-      HSourceGlyph = EngCreateBitmap(bitSize, pitch, (glyph->bitmap.pixel_mode == ft_pixel_mode_grays) ? BMF_8BPP : BMF_1BPP, 0, glyph->bitmap.buffer);
+      HSourceGlyph = EngCreateBitmap(bitSize, pitch, (glyph->bitmap.pixel_mode == ft_pixel_mode_grays) ? BMF_8BPP : BMF_1BPP, BMF_TOPDOWN, glyph->bitmap.buffer);
       SourceGlyphSurf = (SURFOBJ*)AccessUserObject((ULONG) HSourceGlyph);
     
       /*

reactos/w32api/include/ddk
ntddscsi.h 1.2 -> 1.2.4.1
diff -u -r1.2 -r1.2.4.1
--- ntddscsi.h	14 Jun 2004 20:04:59 -0000	1.2
+++ ntddscsi.h	27 Jun 2004 01:13:18 -0000	1.2.4.1
@@ -98,53 +98,53 @@
   UCHAR  Cdb[16];
 } SCSI_PASS_THROUGH_DIRECT, *PSCSI_PASS_THROUGH_DIRECT;
 
-typedef struct _SRB_IO_CONTROL { 
-  ULONG  HeaderLength; 
-  UCHAR  Signature[8]; 
-  ULONG  Timeout; 
-  ULONG  ControlCode; 
-  ULONG  ReturnCode; 
-  ULONG  Length; 
-} SRB_IO_CONTROL, *PSRB_IO_CONTROL; 
+typedef struct _SRB_IO_CONTROL {
+  ULONG  HeaderLength;
+  UCHAR  Signature[8];
+  ULONG  Timeout;
+  ULONG  ControlCode;
+  ULONG  ReturnCode;
+  ULONG  Length;
+} SRB_IO_CONTROL, *PSRB_IO_CONTROL;
 
 typedef struct _SCSI_ADDRESS {
-	ULONG  Length;
-	UCHAR  PortNumber;
-	UCHAR  PathId;
-	UCHAR  TargetId;
-	UCHAR  Lun;
+  ULONG  Length;
+  UCHAR  PortNumber;
+  UCHAR  PathId;
+  UCHAR  TargetId;
+  UCHAR  Lun;
 } SCSI_ADDRESS, *PSCSI_ADDRESS;
 
 typedef struct _SCSI_BUS_DATA {
-	UCHAR  NumberOfLogicalUnits;
-	UCHAR  InitiatorBusId;
-	ULONG  InquiryDataOffset;
+  UCHAR  NumberOfLogicalUnits;
+  UCHAR  InitiatorBusId;
+  ULONG  InquiryDataOffset;
 }SCSI_BUS_DATA, *PSCSI_BUS_DATA;
 
 typedef struct _SCSI_ADAPTER_BUS_INFO {
-	UCHAR  NumberOfBuses;
-	SCSI_BUS_DATA  BusData[1];
+  UCHAR  NumberOfBuses;
+  SCSI_BUS_DATA  BusData[1];
 } SCSI_ADAPTER_BUS_INFO, *PSCSI_ADAPTER_BUS_INFO;
 
 typedef struct _IO_SCSI_CAPABILITIES {
-	ULONG  Length;
-	ULONG  MaximumTransferLength;
-	ULONG  MaximumPhysicalPages;
-	ULONG  SupportedAsynchronousEvents;
-	ULONG  AlignmentMask;
-	BOOLEAN  TaggedQueuing;
-	BOOLEAN  AdapterScansDown;
-	BOOLEAN  AdapterUsesPio;
+  ULONG  Length;
+  ULONG  MaximumTransferLength;
+  ULONG  MaximumPhysicalPages;
+  ULONG  SupportedAsynchronousEvents;
+  ULONG  AlignmentMask;
+  BOOLEAN  TaggedQueuing;
+  BOOLEAN  AdapterScansDown;
+  BOOLEAN  AdapterUsesPio;
 } IO_SCSI_CAPABILITIES, *PIO_SCSI_CAPABILITIES;
 
 typedef struct _SCSI_INQUIRY_DATA {
-	UCHAR  PathId;
-	UCHAR  TargetId;
-	UCHAR  Lun;
-	BOOLEAN  DeviceClaimed;
-	ULONG  InquiryDataLength;
-	ULONG  NextInquiryDataOffset;
-	UCHAR  InquiryData[1];
+  UCHAR  PathId;
+  UCHAR  TargetId;
+  UCHAR  Lun;
+  BOOLEAN  DeviceClaimed;
+  ULONG  InquiryDataLength;
+  ULONG  NextInquiryDataOffset;
+  UCHAR  InquiryData[1];
 } SCSI_INQUIRY_DATA, *PSCSI_INQUIRY_DATA;
 
 #define SCSI_IOCTL_DATA_OUT               0
@@ -152,16 +152,16 @@
 #define SCSI_IOCTL_DATA_UNSPECIFIED       2
 
 typedef struct _DUMP_POINTERS {
-	PADAPTER_OBJECT  AdapterObject;
-	PVOID  MappedRegisterBase;
-	PVOID  DumpData;
-	PVOID  CommonBufferVa;
-	LARGE_INTEGER  CommonBufferPa;
-	ULONG  CommonBufferSize;
-	BOOLEAN  AllocateCommonBuffers;
-	BOOLEAN  UseDiskDump;
-	UCHAR  Spare1[2];
-	PVOID  DeviceObject;
+  PADAPTER_OBJECT  AdapterObject;
+  PVOID  MappedRegisterBase;
+  PVOID  DumpData;
+  PVOID  CommonBufferVa;
+  LARGE_INTEGER  CommonBufferPa;
+  ULONG  CommonBufferSize;
+  BOOLEAN  AllocateCommonBuffers;
+  BOOLEAN  UseDiskDump;
+  UCHAR  Spare1[2];
+  PVOID  DeviceObject;
 } DUMP_POINTERS, *PDUMP_POINTERS;
 
 #ifdef __cplusplus

reactos/w32api/include/ddk
ntddtape.h 1.2 -> 1.2.4.1
diff -u -r1.2 -r1.2.4.1
--- ntddtape.h	14 Jun 2004 20:04:59 -0000	1.2
+++ ntddtape.h	27 Jun 2004 01:13:18 -0000	1.2.4.1
@@ -46,7 +46,7 @@
 #define IOCTL_TAPE_GET_DRIVE_PARAMS     CTL_CODE(IOCTL_TAPE_BASE, 0x0005, METHOD_BUFFERED, FILE_READ_ACCESS)
 #define IOCTL_TAPE_GET_MEDIA_PARAMS     CTL_CODE(IOCTL_TAPE_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS)
 #define IOCTL_TAPE_GET_POSITION         CTL_CODE(IOCTL_TAPE_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS)
-#define IOCTL_TAPE_GET_STATUS           CTL_CODE(IOCTL_TAPE_BASE, 0x0009, METHOD_BUFFERED, FILE_READ_ACCESS )
+#define IOCTL_TAPE_GET_STATUS           CTL_CODE(IOCTL_TAPE_BASE, 0x0009, METHOD_BUFFERED, FILE_READ_ACCESS)
 
 #define IOCTL_TAPE_PREPARE              CTL_CODE(IOCTL_TAPE_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)
 #define IOCTL_TAPE_SET_DRIVE_PARAMS     CTL_CODE(IOCTL_TAPE_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
@@ -56,19 +56,19 @@
 
 
 typedef enum _TAPE_DRIVE_PROBLEM_TYPE {
-  TapeDriveProblemNone, 
+  TapeDriveProblemNone,
   TapeDriveReadWriteWarning,
-  TapeDriveReadWriteError, 
+  TapeDriveReadWriteError,
   TapeDriveReadWarning,
   TapeDriveWriteWarning,
   TapeDriveReadError,
-  TapeDriveWriteError, 
+  TapeDriveWriteError,
   TapeDriveHardwareError,
-  TapeDriveUnsupportedMedia, 
+  TapeDriveUnsupportedMedia,
   TapeDriveScsiConnectionError,
-  TapeDriveTimetoClean, 
+  TapeDriveTimetoClean,
   TapeDriveCleanDriveNow,
-  TapeDriveMediaLifeExpired, 
+  TapeDriveMediaLifeExpired,
   TapeDriveSnappedTape
 } TAPE_DRIVE_PROBLEM_TYPE;
 

reactos/w32api/include/ddk
ntifs.h 1.2 -> 1.2.6.1
diff -u -r1.2 -r1.2.6.1
--- ntifs.h	9 Apr 2004 20:03:21 -0000	1.2
+++ ntifs.h	27 Jun 2004 01:13:18 -0000	1.2.6.1
@@ -550,7 +550,7 @@
     BOOLEAN     KernelApcInProgress;
     BOOLEAN     KernelApcPending;
     BOOLEAN     UserApcPending;
-} KAPC_STATE, *PKAPC_STATE;
+} KAPC_STATE, *PKAPC_STATE, *__restrict PRKAPC_STATE;
 
 typedef struct _KGDTENTRY {
     USHORT LimitLow;

reactos/w32api/include
winuser.h 1.6 -> 1.6.6.1
diff -u -r1.6 -r1.6.6.1
--- winuser.h	28 May 2004 14:31:49 -0000	1.6
+++ winuser.h	27 Jun 2004 01:13:18 -0000	1.6.6.1
@@ -1249,6 +1249,25 @@
 #define SPI_SETSELECTIONFADE 0x1015
 #define SPI_SETTOOLTIPANIMATION 0x1017
 #define SPI_SETTOOLTIPFADE 0x1019
+#if (WINVER >= 0x0501)
+#define FE_FONTSMOOTHINGORIENTATIONBGR 0
+#define FE_FONTSMOOTHINGORIENTATIONRGB 1
+#define FE_FONTSMOOTHINGSTANDARD 1
+#define FE_FONTSMOOTHINGCLEARTYPE 2
+#define FE_FONTSMOOTHINGDOCKING 32768
+#define SPI_GETMOUSECLICKLOCKTIME 8200
+#define SPI_SETMOUSECLICKLOCKTIME 8201
+#define SPI_GETFONTSMOOTHINGTYPE 8202
+#define SPI_SETFONTSMOOTHINGTYPE 8203
+#define SPI_GETFONTSMOOTHINGCONTRAST 8204
+#define SPI_SETFONTSMOOTHINGCONTRAST 8205
+#define SPI_GETFOCUSBORDERWIDTH 8206
+#define SPI_SETFOCUSBORDERWIDTH 8207
+#define SPI_GETFOCUSBORDERHEIGHT 8208
+#define SPI_SETFOCUSBORDERHEIGHT 8209
+#define SPI_GETFONTSMOOTHINGORIENTATION 8210
+#define SPI_SETFONTSMOOTHINGORIENTATION 8211
+#endif
 #endif
 
 #define SPIF_UPDATEINIFILE 1
CVSspam 0.2.8