Hi,
currently head has problems with the registry due to changes in
structures which were not replicated in mkhive tool (thanks to a
"good" code duplication between them).
I'm now porting mkhive to use cmlib's headers so that there is no
need to keep the same structure in a few places and forget to change
it everywhere.
It will be commited in a few hours when I get back.
WBR,
Aleksey Bragin.
I tried to install OpenOffice.org 2.0.3 using r23543. The installation stopped because of an ASSERT in cmlib.
nl\ps\thread.c:503) FIX PS SDs!!
(dll\ntdll\ldr\utils.c:1194) LdrGetExportByName(): failed to find FlsAlloc
(dll\ntdll\ldr\utils.c:1194) LdrGetExportByName(): failed to find FlsGetValue
(dll\ntdll\ldr\utils.c:1194) LdrGetExportByName(): failed to find FlsSetValue
(dll\ntdll\ldr\utils.c:1194) LdrGetExportByName(): failed to find FlsFree
(ntoskrnl\ps\thread.c:503) FIX PS SDs!!
(dll\ntdll\ldr\utils.c:1194) LdrGetExportByName(): failed to find FlsAlloc
(dll\ntdll\ldr\utils.c:1194) LdrGetExportByName(): failed to find FlsGetValue
(dll\ntdll\ldr\utils.c:1194) LdrGetExportByName(): failed to find FlsSetValue
(dll\ntdll\ldr\utils.c:1194) LdrGetExportByName(): failed to find FlsFree
(dll\ntdll\ldr\utils.c:1194) LdrGetExportByName(): failed to find FlsAlloc
(dll\ntdll\ldr\utils.c:1194) LdrGetExportByName(): failed to find FlsGetValue
(dll\ntdll\ldr\utils.c:1194) LdrGetExportByName(): failed to find FlsSetValue
(dll\ntdll\ldr\utils.c:1194) LdrGetExportByName(): failed to find FlsFree
(ntoskrnl\cm\ntfunc.c:437) NtCreateKey() doesn't create trees! (found '\' in remaining path: "\Classes\MIME\DataBase\Content Type\application/vnd.stardivision.writer"!)
(ntoskrnl\cm\ntfunc.c:437) NtCreateKey() doesn't create trees! (found '\' in remaining path: "\Classes\MIME\DataBase\Content Type"!)
(ntoskrnl\cm\ntfunc.c:437) NtCreateKey() doesn't create trees! (found '\' in remaining path: "\Classes\MIME\DataBase"!)
(ntoskrnl\cm\ntfunc.c:437) NtCreateKey() doesn't create trees! (found '\' in remaining path: "\Classes\MIME"!)
Assertion 'CellIndex != HCELL_NULL' failed at lib\cmlib\hivecell.c line 19
Entered debugger on embedded INT3 at 0x0008:0x8007fda0.
kdb:> cont
Assertion 'CellBlock < RegistryHive->Storage[CellType].BlockListSize' failed at lib\cmlib\hivecell.c line 29
Entered debugger on embedded INT3 at 0x0008:0x8007fda0.
kdb:> cont
Entered debugger on last-chance exception (Exception Code: 0xc0000005) (Page Fault)
Memory at 0x003FFFFC could not be read: Page not present.
kdb:> cont
KeBugCheckWithTf at ntoskrnl\ke\i386\exp.c:1241
A problem has been detected and ReactOS has been shut down to prevent damage to your computer.
The problem seems to be caused by the following file: ntoskrnl.exe
Technical information:
*** STOP: 0x0000001E (0xC0000005,0x8007F050,0x00000000,0x003FFFFC)
*** ntoskrnl.exe - Address 0x8007F050 base at 0x80000000, DateStamp 0x0
Page Fault Exception: 14(0)
Processor: 0 CS:EIP 8:8007f050 <ntoskrnl.exe:7f050 (lib/cmlib/hivecell.c:30 (HvGetCell))>
cr2 3ffffc cr3 299e000 Proc: 810401e8 Pid: 118 <msiexec.exe> Thrd: 820cb468 Tid: 134
DS 23 ES 23 FS 30 GS 0
EAX: 00000000 EBX: 8d22bd40 ECX: 00000032
EDX: 00000000 EBP: 9e879c98 ESI: 0007ffff ESP: 9e879c14
EDI: 8d22bcd8 EFLAGS: 00010286 kESP 9e879c14 kernel stack base 9e877000
Frames:
<ntoskrnl.exe:fe79 (ntoskrnl/cm/regfile.c:1571 (CmiDeleteValueFromKey))>
<ntoskrnl.exe:d94e (ntoskrnl/cm/ntfunc.c:2157 (NtDeleteValueKey))>
<ntoskrnl.exe:6ec74 (ntoskrnl\ke\i386\trap.s:306 (KiFastCallEntry))>
<advapi32.dll:88c0 (dll/win32/advapi32/reg/reg.c:2109 (RegDeleteValueA))>
Entered debugger on embedded INT3 at 0x0008:0x8007fda6.
kdb:> cont
---------------------------------
Do you Yahoo!?
Get on board. You're invited to try the new Yahoo! Mail Beta.
Hi,
I'm not sure if this is the correct place to post this, if it's not
I'm sorry, just let me know where I should post things like this to.
Right then, I downloaded the VMware RC2 image and loaded it up in
VMware player. Booted fine (and i like the boot time ;-) and thought
that I'd try the networking out. I was able to open up ibrowser and
download the mozilla control fine and browse like that to a few sites
(getfirefox.com, sf.net, 7-zip.org and guildwars.com). I wanted to try
out Guild Wars (a DirectX MMORPG, very ambitious I know). I was able
to go to the site fine and download the client, however, when I went
to download 7-zip I was given a BSoD. I restarted and tried to
download firefox instead and install that. The download was fine
however part way through the install it just dropped out. I tried
again and the same thing happened. I then noticed the 'Get Firefox'
link in the start menu, which didn't do anything (just opened the
download window and sat there). I looked around the C: drive and
noticed that Firefox had installed the exe so I tried to run it but
didn't get anything. I closed the 'Get Firefox' window and tried that
again, same problem as before, this time though it wouldn't close.
Opened up task manager and saw 2 firefox.exe running so I tried to
kill them, this didn't worked. Tried to kill 'Get Firefox' process and
that worked, but then a few seconds after that I got another BSoD.
I've attached the vmware.log in case it's any use. The debug.txt file
is empty for some reason, so I've not attached that.
I'm going to try a few more things and I'll let you know what happens.
If this kind of feedback isn't useful let me know, or let me know
where to post it so it can become useful :-)
--
Andy Smith - Def since birth
Hi,
It's worse!
> This code should replace the existing one in win32k/csrss, but is not activated (yet) due to some bugs:
> - Calling SetWindowsHookEx with WH_KEYBOARD_LL gives a BSOD when pressing a key
Not sure,,, The hook code is a Wineie/GvG/w3seek hod podge thingy.
> - Time field in PKBDLLHOOKSTRUCT/PMSLLHOOKSTRUCT should be in milliseconds
> - Screen saver parameters can't be retrieved with SystemParametersInfoW
> - Probably others...
In ntuser/message.c & desktop.c, I noticed that the switch code uses a static PW_O InputDesktop.
This is used in message.c when looking for broadcasting,, etc. It's indirectly called by
IntGetDesktopWindow which returns the active desktop that is stored in InputDesktop.
SO,,,,, multi desktops w/o a common root message hook?,,,,,,
>
> Plus a few less important ones:
> - When sending a message with HWND_BROADCAST, the invisible SAS window doesn't get the message
In ntuser/message.c, co_IntDoSendMessage doesn't support recursive entry for HWND_BROADCAST.
A good example for doing this is UserPostMessage. If it does, I did not see yet.
> - When calling (NtUser)SystemParametersInfo, WM_SETTINGSCHANGE message is not sent
> - desk.cpl doesn't save (some) screensaver parameters to registry
>
SendNotifyMessage is UNIMPLEMENTED! Oh the Shock of seeing that! 8^O !NOOOOOOO!
Okay,
James
Hi,
I was looking at svcctl.idl in ros.
I wonder, where the "Scmr"-prefix comes from?
googling for say "ScmrCloseServiceHandle" gives only
results from reactos, nothing else.
"CloseServiceHandle" gives lots of results, of course.
Was the prefix choosen arbitrarily and could have well been
"Ros" instead?
Elrond
Hi,
I guess Hervé has found something similar. We can not create a desktop window in
createwindowex. I've looked at it again and at it's current state it would be
imposable to do w/o some rewriting (already started). We need to fix this Atom
issue I'm pushing! With a common atom we can fix this message problem. Setup the
children so they can talk to each other.
So far, we have four desktops w/o a root. Non of them can talk to each other. I can't see it!
If this can be fixed, I bet things will magically start working.
Well, look at this, it's from wine, I think they got it.
#define DESKTOP_CLASS_ATOM MAKEINTATOMW(32769)
/* create the desktop window */
hwnd = CreateWindowExW( 0, DESKTOP_CLASS_ATOM, NULL,
WS_POPUP | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
0, 0, width, height, 0, 0, 0, NULL );
if (hwnd == GetDesktopWindow())
{
SetWindowLongPtrW( hwnd, GWLP_WNDPROC, (LONG_PTR)desktop_wnd_proc );
SendMessageW( hwnd, WM_SETICON, ICON_BIG, (LPARAM)LoadIconW( 0, MAKEINTRESOURCEW(OIC_WINLOGO)));
SetWindowTextW( hwnd, desktop_nameW );
SystemParametersInfoA( SPI_SETDESKPATTERN, -1, NULL, FALSE );
SetDeskWallPaper( (LPSTR)-1 );
<snip>
LiteStep and DarkStep, look about the same thing except for the atom.
We dont need much of this but the process looks sound.
B^|
James
Hi,
First, this is going to be a long post, sorry ;-)
You might have noticed, that I have been working on the desk.cpl
appearance tab, wich is working partly.
Here's the first version:
http://www.reactos.org/bugzilla/show_bug.cgi?id=1732
Some things still don't work. For example the desktop doesn't get
repainted in the new color.
> ------- /Comment #5
> <http://www.reactos.org/bugzilla/show_bug.cgi?id=1732#c5> >From
> jimtabor 2006-08-05 04:46:36 CET / [reply
> <http://www.reactos.org/bugzilla/show_bug.cgi?id=1732#add_comment>]
> -------
> Hi,
> You can use WM_SYSCOLORCHANGE in the desktop proc if it is used, should be!,
> user32/misc/desktop.c;
>
> static
> LRESULT
> WINAPI
> DesktopWndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
> {
> DPRINT1("Desktop Class Atom!\n");
> switch(message)
> {
> case WM_NCCREATE:
> return TRUE;
>
> case WM_CREATE:
> /* when I spy I see notify */
> SendNotifyMessageW( hwnd, WM_SYSCOLORCHANGE , 0, 0 );
> break;
>
> case WM_SYSCOLORCHANGE:
> /* update everything, well in theory anyway */
> RedrawWindow( hwnd, NULL, 0, RDW_INVALIDATE | RDW_ERASE |
> RDW_ALLCHILDREN );
> break;
>
> default:
> return DefWindowProcW(hwnd,message,wParam,lParam);
> }
> return 0; /* all other messages are ignored */
> }
>
> Its crude, I'm not sure if it will compile, its off the top of my head ATM.
> 8^D
> Thanks,
> James
>
Thanks for helping, James. I tried it, but it doesn't work.
1.) Sending WM_SYSCOLORCHANGE on WM_CREATE will probably do nothing,
because the desktop has just been created with the initial SysColors, no
need to update them.
2.) RedrawWindow calls NtUserRedrawWindow wich calls co_UserRedrawWindow
wich calls co_IntPaintWindows wich sends a WM_PAINT message to the
desktop window.
WM_PAINT is then passed to DefWindowProc and passed on to
User32DefWindowProc wich does only repaint the icon as it seems.
So WM_PAINT must be evaluated in DesktopWndProc.
I tried the following:
> case WM_PAINT:
> {
> PAINTSTRUCT ps;
> HDC hdc = BeginPaint(hwnd, &ps);
> PaintDesktop(hdc);
> EndPaint(hwnd, &ps);
> }
PaintDesktop calls NtUserPaintDesktop, wich then paints the desktop.
I have also replaced
DesktopBrush = (HBRUSH)UserGetClassLongPtr(WndDesktop->Class,
GCL_HBRBACKGROUND, FALSE);
with
DesktopBrush = IntGetSysColorBrush(COLOR_BACKGROUND);
But the desktop is still painted in the original color, whereas the icon
text is in the color I have set in the registry.
I played a little around with the code in NtUserPaintDesktop. I added
the following code before the desktop background is painted:
> if (IntGetSysColor(COLOR_BACKGROUND) == 0) // This is true after
> SysColors are loaded from Registry
> {
> DesktopBrush = IntGetSysColorBrush(COLOR_ACTIVECAPTION);
> }
And suddenly the desktop is painted in COLOR_ACTIVECAPTION.
This is strange, because I also added CreateSysColorObjects(); at the
beginning of NtUserPaintDesktop.
Anybody any idea?
"Bugs? There's no bugs in GCC. GCC is perfect."
"I've never encountered a bug in GCC that would have real-life effects,
except a small one a long time ago"
--
Best regards,
Alex Ionescu
Project Lead, TinyKRNL
Kernel-Mode Software Design Engineer, ReactOS