Author: mnordell
Date: Fri Oct 12 12:15:37 2007
New Revision: 29529
URL: http://svn.reactos.org/svn/reactos?rev=29529&view=rev
Log:
NTSHChangeNotifyRegister completed and to spec
Modified:
trunk/reactos/dll/win32/shell32/changenotify.c
Modified: trunk/reactos/dll/win32/shell32/changenotify.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/changeno…
==============================================================================
--- trunk/reactos/dll/win32/shell32/changenotify.c (original)
+++ trunk/reactos/dll/win32/shell32/changenotify.c Fri Oct 12 12:15:37 2007
@@ -409,21 +409,20 @@
/*************************************************************************
* NTSHChangeNotifyRegister [SHELL32.640]
* NOTES
- * Idlist is an array of structures and Count specifies how many items in the array
- * (usually just one I think).
- */
-DWORD WINAPI NTSHChangeNotifyRegister(
+ * Idlist is an array of structures and Count specifies how many items in the array.
+ * count should always be one when calling SHChangeNotifyRegister, or
+ * SHChangeNotifyDeregister will not work properly.
+ */
+ULONG WINAPI NTSHChangeNotifyRegister(
HWND hwnd,
- LONG events1,
- LONG events2,
- DWORD msg,
+ int fSources,
+ LONG fEvents,
+ UINT msg,
int count,
SHChangeNotifyEntry *idlist)
{
- FIXME("(%p,0x%08x,0x%08x,0x%08x,0x%08x,%p):semi stub.\n",
- hwnd,events1,events2,msg,count,idlist);
-
- return (DWORD) SHChangeNotifyRegister(hwnd, events1, events2, msg, count, idlist);
+ return SHChangeNotifyRegister(hwnd, fSources | SHCNRF_NewDelivery,
+ fEvents, msg, count, idlist);
}
/*************************************************************************
Author: jimtabor
Date: Fri Oct 12 04:47:31 2007
New Revision: 29527
URL: http://svn.reactos.org/svn/reactos?rev=29527&view=rev
Log:
Add notes for NtGdiResetDC and NtGdiOpenDCW.
Modified:
trunk/reactos/include/psdk/ntgdi.h
Modified: trunk/reactos/include/psdk/ntgdi.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/ntgdi.h?rev=2…
==============================================================================
--- trunk/reactos/include/psdk/ntgdi.h (original)
+++ trunk/reactos/include/psdk/ntgdi.h Fri Oct 12 04:47:31 2007
@@ -2013,6 +2013,15 @@
OUT OPTIONAL PVOID pvBuf
);
+// Note from SDK:
+//
+// NtGdiResetDC
+// The exact size of the buffer at pdm is pdm->dmSize + pdm->dmDriverExtra.
+// But this can't be specified with current annotation language.
+//
+// typedef struct _DRIVER_INFO_2W DRIVER_INFO_2W;
+//
+// :end note.
W32KAPI
BOOL
APIENTRY
@@ -2020,7 +2029,7 @@
IN HDC hdc,
IN LPDEVMODEW pdm,
OUT PBOOL pbBanding,
- IN OPTIONAL VOID *pDriverInfo2,
+ IN OPTIONAL VOID *pDriverInfo2, // this is "typedef struct _DRIVER_INFO_2W DRIVER_INFO_2W;"
OUT VOID *ppUMdhpdev
);
@@ -2061,11 +2070,11 @@
APIENTRY
NtGdiOpenDCW(
IN OPTIONAL PUNICODE_STRING pustrDevice,
- IN DEVMODEW *pdm,
+ IN DEVMODEW *pdm, // See note for NtGdiResetDC
IN PUNICODE_STRING pustrLogAddr,
IN ULONG iType,
IN OPTIONAL HANDLE hspool,
- IN OPTIONAL VOID *pDriverInfo2,
+ IN OPTIONAL VOID *pDriverInfo2, // this is "typedef struct _DRIVER_INFO_2W DRIVER_INFO_2W;"
OUT VOID *pUMdhpdev
);
Author: fireball
Date: Fri Oct 12 01:07:47 2007
New Revision: 29520
URL: http://svn.reactos.org/svn/reactos?rev=29520&view=rev
Log:
- Fix a long standing bug, which prevented NT to work stable (in fact, it died very soon after booting). The bug was in occasional placing Gdt and Idt into a temporary heap, instead of MemoryData marked area of memory. The possibility of this bug was suggested long time ago by Alex, but I didn't believe him back then :)
- Now Windows NT works quite good after booting via WinLdr in QEMU.
Modified:
branches/winldr/windows/winldr.c
Modified: branches/winldr/windows/winldr.c
URL: http://svn.reactos.org/svn/reactos/branches/winldr/windows/winldr.c?rev=295…
==============================================================================
--- branches/winldr/windows/winldr.c (original)
+++ branches/winldr/windows/winldr.c Fri Oct 12 01:07:47 2007
@@ -232,7 +232,7 @@
/* Allocate space for new GDT + IDT */
BlockSize = NUM_GDT*sizeof(KGDTENTRY) + NUM_IDT*sizeof(KIDTENTRY);//FIXME: Use GDT/IDT limits here?
NumPages = (BlockSize + MM_PAGE_SIZE - 1) >> MM_PAGE_SHIFT;
- *GdtIdt = (PKGDTENTRY)MmAllocateMemory(NumPages * MM_PAGE_SIZE);
+ *GdtIdt = (PKGDTENTRY)MmAllocateMemoryWithType(NumPages * MM_PAGE_SIZE, LoaderMemoryData);
if (*GdtIdt == NULL)
{