I was doing some changes to RtlCreateUserProcess and saw the strage
rotuine SmCreateUserProcess:
http://svn.reactos.com/viewcvs/trunk/reactos/subsys/smss/smapiexec.c?rev=14…
It has several bugs/problems/confusions:
1) RtlDestroyProcessParameters is not called if RtlCreateUserProcess failed.
2) If WaitForIt is TRUE and you specify a timeout, the caller in not
notified if SmCreateUserProcess returned due to timeout. The process
will stay running forever.
3) If TerminateIt is TRUE, handles are closed. This is wrong/confusing.
Closing the handles does not terminate the process (wrong name?).
4) If you dont pass a UserProcessInfo and TerminateIt is FALSE,
it will leak thread/process handles.
5) If you pass UserProcessInfo and TerminateIt is TRUE, the
thread/process handles in UserProcessInfo will be invalid.
etc.etc.
VERY confusing and bug prone:
SmCreateUserProcess is used once in the end of this file and it pass
FALSE for TerminateIt and pass no UserProcessInfo thus the
thread/process handles will never be closed.
I should have fixed it myself if i just understod how this routine is
_supposed_ to work:-D
Regards
Gunnar
Following some discussion with Art Yerkes via email, I've been toying
around with a resource editor and shifted XP's network connection
configuration dialog around:
www.furrybeans.co.uk/stuff/netdlg.jpg
Note that this will not be the final dialog, nor will that exact one be
used - I'm using a resource editor just so I don't have to painstakingly
recreate each control just to see what it looks like. It's just
convenient for laying out a prototype.
Ignore the image at the top left - that was there already.
Compare with XP or 2000's dialog and let me know what improvements you
can think of.
-Andrew
--- Mike Swanson <mikeonthecomputer(a)gmail.com> wrote:
> Hacking an existing *nix filesystem to work on ReactOS just doesn't
> seem right, nor does it seem very practical.
Some of us primarly run Linux and I host mine on ext3 partitions so having the ext2fsd working
under ReactOS helps with the testing and migration path.
Thanks
Steven
__________________________________
Do you Yahoo!?
Yahoo! Small Business - Try our new resources site!
http://smallbusiness.yahoo.com/resources/
What I strongly suspect happens is this:
1.The themes service is always loaded and running and holds the theme data
(and it contains details of which .msstyles file to use)
2.At some point (either at startup if the changes are global or when an app
loads if the changes are app specific, I cant find where this bit happens
but I suspect the themes service does this) control passes to ordinal 34 in
uxtheme.dll (aka ThemeHooksInstall acording to uxtheme.pdb). This function
calls an undocumented function in user32 called RegisterUserApiHooks (which
appears to be taylor made for uxtheme to do what it needs to do).
The function hooks:
GetScrollInfo
SetScrollInfo
EnableScrollBar
SetWindowRgn
DefWindowProcW
DefWindowProcA
PreWndProc (probobly stuff that happens internally before the window
procedure gets called)
PostWndProc (probobly stuff that happens internally after the window
procedure gets called)
PreDefDlgProc (probobly connected to dialog boxes)
PostDefDlgProc (probobly connected to dialog boxes)
GetSystemMetrics
SystemParametersInfoA
SystemParametersInfoW
DrawFrameControl
DrawCaption
MDIRedrawFrame (probobly related to MDI frame windows)
This is what causes all apps (including non-theme-aware ones) to get themed
non-client areas (window borders etc)
3.Apps that are theme aware have a manifest, load comctl32.dll 6.0 and
probobly have to call InitCommonControlsEx (although I think some of the
code in the dllmain for comctl32.dll 6.0 may also end up calling
InitCommonControlsEx). This causes new versions of the stock classes
(button, list box, edit, combo box etc etc etc) to be created and
registered. A cursory examination of some of these classes shows that they
dont seem to "pull code" from the stock implementation in user32.dll (i.e.
anything they dont themselves handle goes back to DefWindowProc). In
particular, it doesnt appear as though they have any knowledge of the
classes or window procedures contained in user32.dll.
then 4.Apps that need to do something extra call into functions exported by
uxtheme.dll to do whatever they need to do.
user32.dll seems to have no knowledge whatsoever about themeing and
uxtheme. All that user32 has is RegisterUserApiHooks (and the matching
UnregisterUserApiHooks) that uxtheme uses to hook into user32.dll and do stuff.
Exactly how the theme service and theme engine works "under the hood"
doesnt matter.
But for ReactOS and WINE purposes, I suggest we implement the following:
1.A function similar to RegisterUserApiHooks/UnregisterUserApiHooks (either
reverse engineer the MS function or write our own). This will allow uxtheme
to hook into the global drawing for things like window borders without
user32 needing to care about uxtheme and what uxtheme does (just like how
MS hooks into user32 that way)
2.Whatver code is necessary to get the hooks installed right so that all
apps get the "global" theming like on real windows
3.Support to read the manifest and load a new comctl32.dll that would be
like the version 6 from microsoft (and would contain complete theme-aware
implementations of the stock controls just like MS comctl32.dll 6.0 does)
and 4.All the needed uxtheme exports to make stuff run
This would be the same way Microsoft does things.
User32.dll would have no idea whatsoever about uxtheme and theming
All apps would get non-client-area themeing like on windows.
And only theme aware apps would get themed controls etc (the rest would get
"stock" windows controls)
Oh and btw, if this "reverse engineering" is not "clean room" enough for
WINE and ReactOS, let me know and I will stop posting it :)
Alex,
I managed to shave off another comparison in favor of a shift:
int highest_bit ( int i )
{
int ret = 0;
if ( i > 0xffff )
i >>= 16, ret = 16;
if ( i > 0xff )
i >>= 8, ret += 8;
if ( i > 0xf )
i >>= 4, ret += 4;
if ( i > 0x3 )
i >>= 2, ret += 2;
return ret + (i>>1);
}
FWIW, rdtsc reports that compile for speed is 2x as fast as compile for
size.
I've thought about ways to possibly optimize pipeline throughput for
this, but too many of the calculations depend on results of immediately
previous calculations to get any real advantage.
Here's updated micro-code for BSR, if you really think AMD & Intel will
actually do it...
IF r/m = 0
THEN
ZF := 1;
register := UNDEFINED;
ELSE
ZF := 0;
register := 0;
temp := r/m;
IF OperandSize = 32 THEN
IF (temp & 0xFFFF0000) != 0 THEN
temp >>= 16;
register |= 16;
FI;
FI;
IF (temp & 0xFF00) != 0 THEN
temp >>= 8;
register |= 8;
FI;
IF (temp & 0xF0) != 0 THEN
temp >>= 4;
register |= 4;
FI;
IF (temp & 0xC) != 0 THEN
temp >>= 2;
register |= 2;
FI;
register |= (temp>>1);
FI;
Hi all
A new proposed frontpage for reactos.com can be found here:
http://reactos.com/newsite/reactos_index.html
None of the links go anywhere yet. ezPublish will be phased out and
most of the content hosted in a wiki (editable only by people trusted
in the project).
The wiki/forums/blogs would require a bit of a face-lift so as to look similar.
Comments?
Cheers
Jason
In ca. 16 h I will do SVN update again for the build 0.2.6 RC2
So think about, wether your patch should be submittet now or later.
How about your feelings? Will RC2 be == final actually RC2
---------
So this is what I wanted to send yesterday. However my smtp-provider
didn't work as I would have liked to. Thus I'm doing the LABEL now.
__now
--- Eric Kohl <eric.kohl(a)t-online.de> wrote:
> IMHO, adding missing features to WIDL and fixing resulting bugs in
> rpcrt4 is much more important right now. Access to remote machines, new
> transports (tcp, udp, http, etc.) and a dynamic endpoint mapper (aka
> rpcss) is not that important.
Would it be possible to go ahead and port some of the Wine advapi32 SCM code? Its able to install
and run services such as the Windows Installer so that might solve a few problems we are facing
with the Msi service and CoLinux.
Thanks
Steven
__________________________________
Do you Yahoo!?
Yahoo! Small Business - Try our new resources site!
http://smallbusiness.yahoo.com/resources/
Can't that one be transformed to do a Bit Scan Reverse? I guess there are alogorithms for it too. Try near the link I provided. Or try the Angner Fog's optimization manual. If that does not works you could try SuperOptimizer. Is a program that finds algorithms in assembler for some arch (x86 included of course) by means of trying instructions using bruteforce (you can use several computers if you want), usually can be converted back to a HLL. This function is little enought to let superoptimizer work. Find it, is open source software, a little complex and MACROfied piece of code but somehow modifiable to suit your needs.
Best Regards
Waldo Alvarez
________________________________
From: ros-dev-bounces(a)reactos.com on behalf of Royce Mitchell III
Sent: Fri 3/25/2005 4:19 PM
To: ReactOS Development List
Subject: Re: [ros-dev] ping Alex regarding log2() for scheduler
Waldo Alvarez Cañizares wrote:
>but if you are searching a fast BSF replacement...
>
>
Unfortunately we have no need of BSF :(
Is there a similar algo for BSR, which is what we need?
_______________________________________________
Ros-dev mailing list
Ros-dev(a)reactos.com
http://reactos.com:8080/mailman/listinfo/ros-dev
Hi!
Sorry if I sound a little harsh, but I am upset by the fact that i don't
understand what has driven someone to change the style of a file when
adding one line of code from the old (whatever) style to ms style (where
'{' and '}' are on the same line as the if/else keywords - that makes
multiline if/else blocks unreadable to me, I esp. dislike it when the
if-expression is also multiline - like
if (some_very_long_expression_which_does &&
not_fit_onto_a_signle_line) {
...
}
)
I am not sure, but I think it was Alex.
Would you please tell me why you changed the style of the file? I am
pretty much used to the old style, esp. if i have been working on the
file before it's strange for me to see the syntax changed in a way which
i dislike as much as the ms style or whatever it is.
:-/
> > Taking credits for others work is not a nice thing to todo (Thx Alot)..
> > but you made it worse anyway so no hard feelings :-)
> What is it about? Can you point me to time/date/subject you refer to.
Just Wierd that i make one implention of taskmgr their where better than the previous then
some just take some of the work modify it and credit themself.. i where planning of release the
version today with network status and user tab also an vc++ comp. but can see it dont matter.. :-)
> > To talk about something else i start a new projekt called CubeOs
> > and i would like to know if their are any special copyrights in reactos..?
> Just curious: what is the project about?
Its an Reactos Clone did alot of work my self and with some developers not to make a competition
but to make an alternativ with some of my ideas and visions it has allways been my dream... hope
its okay with the reactos team..
By the way thx for your german translation its a littel useless now on reactos but will be very
happy to use it on CubeOS
Greetz Thomas
Hi,
--- Royce Mitchell III <royce3(a)ev1.net> wrote:
> Part of the reason he's bringing this up is because I was asking what
> was necessary to get working before we could dynamically load drivers
> through SCM. I'm working on learning driver development, but want to do
> it in ReactOS.
>
> Anyways, these functions look most necessary...
>
> OpenSCManager
> CreateService
> ControlService
> OpenService
> CloseServiceHandle
> DeleteService
> QueryServiceStatus
> EnumServicesStatus
Yes those are most of the functions I need for CoLinux and the Windows Installer service. Wine has
a good bit of that implemented using a pipe for communitcation but I assume on Windows its all
LPC/RPC to support "net start servicename". Anyway if no one objects I will look at importing the
hackish Wine code and see if I can make it work.
Thanks
Steven
__________________________________
Do you Yahoo!?
Yahoo! Small Business - Try our new resources site!
http://smallbusiness.yahoo.com/resources/
Just Mean that it is not fair when i uploade taskmgr
with alot of bugfixes and translation and then someone
just modify the code and take the credits
but now ill just use my version on my new project on CubeOs so
its okay but cant see why its done..
But thx about the license stuff
Greetz Thomas
Hi all!
Just reporting some strange things with explorer. When Start->Browse Files->Drives->
(E:), this happens;
(KERNEL32:mem/global.c:412) Memory Load: 17
(MSVCRT:io/open.c:103) not valid fd 0, g_fdend 5, fdinfo 7802d2f0, bucket 7802d2
f0, fdflags 0
(MSVCRT:io/open.c:700) _setmode: inval fd (0)
(cm/ntfunc.c:1438) ObReferenceObjectByHandle() failed with status c0000008
(cm/ntfunc.c:1438) ObReferenceObjectByHandle() failed with status c0000008
(cm/ntfunc.c:1438) ObReferenceObjectByHandle() failed with status c0000008
(KERNEL32:mem/global.c:412) Memory Load: 17
(KERNEL32:mem/global.c:412) Memory Load: 17
(MSVCRT:io/open.c:103) not valid fd 0, g_fdend 5, fdinfo 7802d2f0, bucket 7802d2
f0, fdflags 0
(MSVCRT:io/open.c:700) _setmode: inval fd (0)
(shellole.c:237:SHELL32_DllGetClassObject) failed for CLSID=
{645ff040-5081-101b-9f08-00aa002f954e} (unknown)
(shellole.c:167:SHCoCreateInstance) LoadFromShell failed for CLSID=
{645ff040-5081-101b-9f08-00aa002f954e} (unknown)
(shellole.c:237:SHELL32_DllGetClassObject) failed for CLSID=
{645ff040-5081-101b-9f08-00aa002f954e} (unknown)
(shellole.c:167:SHCoCreateInstance) LoadFromShell failed for CLSID=
{645ff040-5081-101b-9f08-00aa002f954e} (unknown)
E_ACCESSDENIED - WIN32 access denied error
Context: ShellFolder::ShellFolder(IShellFolder*, LPCITEMIDLIST)
Location: utility/shellclasses.cpp:280
Context Trace:
- ShellFolder::ShellFolder(IShellFolder*, LPCITEMIDLIST)
- ShellDirectory::read_directory()
- Entry::read_directory_base()
- Entry::smart_scan()
- explorer_main
- WinMain()
- main
mm/mm.c:337
Unhandled exception
Address:
467ae6 C:\ReactOS\explorer.exe
CS:EIP 1b:467ae6
DS 23 ES 23 FS 3b GS 23
EAX: 00000000 EBX: 00a88f58 ECX: 007fe234
EDX: 00a88f28 EBP: 007fe404 ESI: 007ff6ac ESP: 007fe3fc
EDI: 007ff638 EFLAGS: 00010202
Frames:
400000+3aeae C:\ReactOS\explorer.exe
400000+7d49f C:\ReactOS\explorer.exe
400000+13aa5 C:\ReactOS\explorer.exe
400000+bed0 C:\ReactOS\explorer.exe
400000+c467 C:\ReactOS\explorer.exe
400000+295a9 C:\ReactOS\explorer.exe
400000+29262 C:\ReactOS\explorer.exe
400000+3e258 C:\ReactOS\explorer.exe
900000+12a8f C:\ReactOS\system32\user32.dll
900000+13a6e C:\ReactOS\system32\user32.dll
7c900000+9ea2 C:\ReactOS\system32\ntdll.dll
(ntuser/class.c:114) Failed to lookup class atom!
(ntuser/class.c:114) Failed to lookup class atom!
(ntuser/class.c:114) Failed to lookup class atom!
(ntuser/class.c:114) Failed to lookup class atom!
(ntuser/class.c:114) Failed to lookup class atom!
(ntuser/class.c:114) Failed to lookup class atom!
(KERNEL32:mem/global.c:412) Memory Load: 17
(KERNEL32:mem/global.c:412) Memory Load: 17
(cm/registry.c:885) Hive is still in use (hc 18, rc 10623)
(cm/ntfunc.c:2370) CmiDisconnectHive() failed (Status c0000001)
(profile.c:899) RegUnLoadKeyW() failed (Error 31)
ex/power.c:90
Drive E is HD vfat32, D is HD ext2 ( no problem there ), I can select F
and G w/o any problems (Zip Drives)
Just logs out and blue screens when selecting E.
James
frik85(a)svn.reactos.com wrote:
> Remove all hardcode english phrases from the source code and add the phrases to the resource file.
>
>
> Updated files:
> trunk/reactos/subsys/system/taskmgr/De.rc
> trunk/reactos/subsys/system/taskmgr/En.rc
> trunk/reactos/subsys/system/taskmgr/affinity.c
> trunk/reactos/subsys/system/taskmgr/applpage.c
> trunk/reactos/subsys/system/taskmgr/column.c
> trunk/reactos/subsys/system/taskmgr/debug.c
> trunk/reactos/subsys/system/taskmgr/endproc.c
> trunk/reactos/subsys/system/taskmgr/priority.c
> trunk/reactos/subsys/system/taskmgr/resource.h
> trunk/reactos/subsys/system/taskmgr/run.c
> trunk/reactos/subsys/system/taskmgr/taskmgr.c
> trunk/reactos/subsys/system/taskmgr/trayicon.c
>
Hi,
The tabs list only ones and the process list is all zero's. The
columns tags in the process list have no data at all. Everything
else is okay.
James
In ca. 16 h I will do SVN update again for the build 0.2.6 RC2
So think wether your patch should be submittet now or later.
How about your feelings? Will RC2 be == final actually RC2
Please don't do this. shell32 is a component shared with Wine. I'd very much
prefer to get the new icons into Wine. If that's not possible at least
follow the way Wine does things (i.e. ascii-encoding the .ico files in the
.rc), as it will make the job of keeping ReactOS and Wine in sync easier.
Thanks, Gé van Geldorp.
-----Original Message-----
From: ros-diffs-bounces(a)reactos.com [mailto:ros-diffs-bounces@reactos.com]
On Behalf Of greatlrd(a)svn.reactos.com
Sent: Monday, March 28, 2005 18:51
To: ros-diffs(a)reactos.com
Subject: [ros-diffs] [greatlrd] 14366: did foget the icon form mf
did foget the icon form mf
Added: trunk/reactos/lib/shell32/res/folder.ico
Added: trunk/reactos/lib/shell32/res/folder_open.ico
Added: trunk/reactos/lib/shell32/res/mycomputer.ico
Hi,
I would like it if I can build ros outside from the source tree. This
makes it possible to build ros with different configurations from the
same (highly modified) source tree.
- Hartmut
Hi. This is what I've changed:
1. Implement ClearCommError. I din't test it too much, but it should be ok.
I've reveresed WinXP's ClearCommError to ensure that my
implementation is correct :)
2. Correct badly implemented apis. For Example:
ClearCommBreak(HANDLE hFile)
{
BOOL result = FALSE;
DWORD dwBytesReturned;
if (hFile == INVALID_HANDLE_VALUE) {
return FALSE;
}
result = DeviceIoControl(hFile, IOCTL_SERIAL_SET_BREAK_OFF, NULL, 0,
NULL, 0, &dwBytesReturned, NULL);
return TRUE;
}
Check for INVALID_HANDLE_VALUE is not needed here. I removed all these
checks from
everywhere in comm.c. Function will return TRUE even if DeviceIoControl
fails. This is wrong.
Modified functions:
ClearCommBreak, EscapeCommFunction, GetCommMask, GetCommModemStatus
GetCommState, GetCommTimeouts, PurgeComm, SetCommBreak, SetCommMask,
SetCommTimeouts, SetCommState, SetupComm, TransmitCommChar, WaitCommEvent
Hi,
in a documentation I saw that I probably had a bug in the patch for the
serial port type detection. The attached patch should fix the problem.
This comment in this patch also explains what is/was my problem with the
value(s) specified in the documentation.
Regards,
Mark
Index: drivers/dd/serial/legacy.c
===================================================================
--- drivers/dd/serial/legacy.c (revision 14297)
+++ drivers/dd/serial/legacy.c (working copy)
@@ -62,7 +62,11 @@
{
case 0x00:
return Uart16450;
+ case 0x40:
case 0x80:
+ /* Not sure about this but the documentation says that 0x40
+ * indicates an unusable FIFO but my tests only worked
+ * with 0x80 */
return Uart16550;
}
Hi,
in KeRundownThread is an ASSERT statement. What is the reason for that?
ApcDisable is never changed. It is always 1 for mutex objects and always
0 for mutant objects. If a mutant object is on the list, ros does crash.
- Hartmut
Index: ntoskrnl/ke/kthread.c
===================================================================
--- ntoskrnl/ke/kthread.c (revision 14297)
+++ ntoskrnl/ke/kthread.c (working copy)
@@ -360,7 +360,7 @@
/* Get the Mutant */
Mutant = CONTAINING_RECORD(CurrentEntry, KMUTANT, MutantListEntry);
- ASSERT(Mutant->ApcDisable);
+// ASSERT(Mutant->ApcDisable);
--- Jason Filby <jason.filby(a)gmail.com> wrote:
> None of the links go anywhere yet. ezPublish will be phased out and
> most of the content hosted in a wiki (editable only by people trusted
> in the project).
>
> The wiki/forums/blogs would require a bit of a face-lift so as to look similar.
>
> Comments?
I like it except I think the description of what ReactOS is needs to say something like "A effort
to create a FreeSoftware replacement for Microsoft Windows(TM) that is compatbile with existing
hardware and software". It does not violate trademark as we are describing what we do.
Thanks
Steven
__________________________________
Do you Yahoo!?
Yahoo! Small Business - Try our new resources site!
http://smallbusiness.yahoo.com/resources/
hbirr(a)svn.reactos.com wrote:
>- Guarded the calls to IoSetCancelRoutine with IoAcquireCancelSpinLock/IoReleaseCancelSpinLock.
>- Used a fastmutex as lock for the data queue.
>- Used paged pool for the data buffers.
>- Allowed the server to read (and to wait) on a listening pipe.
>- Implemented the non blocking read operations.
>
>Updated files:
>trunk/reactos/drivers/fs/np/create.c
>trunk/reactos/drivers/fs/np/fsctrl.c
>trunk/reactos/drivers/fs/np/npfs.c
>trunk/reactos/drivers/fs/np/npfs.h
>trunk/reactos/drivers/fs/np/rw.c
>
>
This change seems to break RPC connection reads. I'm currently busy
working on other things so I can't look at the problem. Any help is
appreciated... (little test application attached, source available on
request or in PSDK examples)
- Filip
Hi,
Am I correct in understanding we are going to need a real rpc implementation to correctly support
Plug and Play as well as Services, DCOM and SMB related stuff? I know the Wine DCOM and Service
Code does everything over named pipes on the local system but I assume we want to do things
"properly". Should we look at doing a mingw build of FreeDCE or the DEC-RPC? I am happy to try and
help import any code if it will help.
Thanks
Steven
__________________________________
Do you Yahoo!?
Yahoo! Small Business - Try our new resources site!
http://smallbusiness.yahoo.com/resources/