Re: Read of memory location 0x7ffe0000 in windows NT
On Tue, Apr 02, 2002 at 12:11:09AM +0200, Laurent Pinchart wrote: Hi everybody, I've stumbled accross some code which reads a dword at memory location 0x7ffe000, which causes the program to crash and the wine debugger to start. After some investigation, it seems that reading the memory location 0x7ffe should return KeTickCount.LowPart to the user process. Has anyone ever heard about that ? I was wondering if it was a native windows NT behaviour, or if it was done by a special kernel-space exception handler installed by the program. It's a native NT thing; a page of memory at that address is shared between user and kernel space. The definition in the w2k ddk.
Re: Read of memory location 0x7ffe0000 in windows NT
Hi everybody, I've stumbled accross some code which reads a dword at memory location 0x7ffe000, which causes the program to crash and the wine debugger to start. After some investigation, it seems that reading the memory location 0x7ffe should return KeTickCount.LowPart to the user process. Has anyone ever heard about that ? I was wondering if it was a native windows NT behaviour, or if it was done by a special kernel-space exception handler installed by the program. It's a native NT thing; a page of memory at that address is shared between user and kernel space. The definition in the w2k ddk. I found it, thank you very much. BTW does anyone know where I can find information about KeTickCount ? I'd like to understand the meaning and purpose of the 3 fields (LowPart, High1Time, High2Time). There's nothing about it in the MSDN. Laurent Pinchart
Where is cprof
I've seen that the Wine development team has also developed a profiler for multi-threaded programs. I'd be very interested in using it to profile an application which I'm developing (with no connection with wine itlself). Unfortunately the site which is suppose to be the cprof home is at Corel, which I understand is no longer in business. Where can I found a workable version of cprof? Many thanks for any reoply. l.f. -- -- -- ) Luca FiniTel: +39 055 2752 307 ___|\ Osservatorio Astrofisico di Arcetri Fax: +39 055 2752 292 / | | |-_ L.go E.Fermi, 5 +- (___|___//___) 50125 Firenze / WWW: http://www.arcetri.astro.it/~lfini (_) (_) Italia/ e-mail: [EMAIL PROTECTED] -+
Re: dynamic .fon conversion
On Sat, Mar 30, 2002 at 02:08:37AM -0800, Francois Gouget wrote: On Sat, 30 Mar 2002, David Chow wrote: Hi, I am new to Wine develop, I wish to investigate and join, the following is the topic I am interested in. Does Wine develpers planning to implement .fon files support? I mean loading it dynamically? Since Xfree86 4 supports true type fonts, and most of the Linux distribution are now using XFree86-4 . We can actually load these fonts into the Xsever dynamically at run time providing we have some dynamic conversion between the font files. This issue was raised during WineConf. Wine is now able to use FreeType to perform client-side rendering of TrueType fonts. This results in fonts that look really great, and you can even get anti-aliasing. Now, IIRC (Huw will correct me if I'm wrong), it was said that FreeType also supports Postscript fonts and .fon fonts. So the way to go would be to extend Wine's FreeType support to .fon fonts. Yes, that's the idea. At the moment we ignore any font that isn't sfnt format (that's anything that isn't TT or OpenType). The issues are that we need to implement something sensible for GetGlyphOutline and GetOutlineTextMetrics for bitmap or Type1 fonts. Huw.
Re: Unicode, i18n support
misunderstood me and decided that I propose to use code page 20866 instead of 1251 for russian locale under Wine. But that's not the case. I only proposed to create filenames on disk in encoding used natively in Linux. I think that the right way is to have code conversion option in wine.config, as one of Wine mount options. That way we will be able to handle most weird configuration (like UTF-8 on native Linux, cp 1251 on removable media). -- Waldek Hebisch [EMAIL PROTECTED]or [EMAIL PROTECTED]
Re: dynamic .fon conversion
Huw D M Davies [EMAIL PROTECTED] wrote: Now, IIRC (Huw will correct me if I'm wrong), it was said that FreeType also supports Postscript fonts and .fon fonts. So the way to go would be to extend Wine's FreeType support to .fon fonts. Yes, that's the idea. At the moment we ignore any font that isn't sfnt format (that's anything that isn't TT or OpenType). The issues are that we need to implement something sensible for GetGlyphOutline and GetOutlineTextMetrics for bitmap or Type1 fonts. I would expect that for at least very first time that functions will fail for bitmap fonts and return glyph data in GGO_BEZIER format for Type1 fonts. Later we can add cubic - quadratic spline conversion routines and some special handling for bitmap fonts. Most applications don't use or provide advanced vector graphics at all. As a side effect of adding support for bitmap fonts will be retired x11drv font support. and a possibility for real WYSIWYG in printing. -- Dmitry.
[PATCH] NtQueryInformationProcess ProcessDebugPort
Hi, Here's a small patch which implements NtQueryInformationProcess properly for ProcessInformationClass set to ProcessDebugPort. It fixes cases when ProcessInformationLength != 4, but doesn't check if a debugger is present or not. Should it ? I don't expect that anyone would like to run Visual Studio on Wine to debug a Win32 program :-) Laurent Pinchart --- dlls/ntdll/nt.c 9 Mar 2002 23:39:09 - 1.38 +++ dlls/ntdll/nt.c 2 Apr 2002 17:15:43 - -116,13 +116,32 IN ULONG ProcessInformationLength, OUT PULONG ReturnLength) { - FIXME((0x%08x,0x%08x,%p,0x%08lx,%p),stub!\n, - ProcessHandle,ProcessInformationClass,ProcessInformation,ProcessInformationLength,ReturnLength - ); - /* These are not the debuggers you are looking for. */ - if (ProcessInformationClass == ProcessDebugPort) - /* set it to 0 aka no debugger to satisfy copy protections */ - memset(ProcessInformation,0,ProcessInformationLength); + NTSTATUS ret = STATUS_SUCCESS; + ULONG len = 0; + + switch (ProcessInformationClass) { + case ProcessDebugPort: + /* These are not the debuggers you are looking for. */ + /* set it to 0 aka no debugger to satisfy copy protections */ + if (ProcessInformationLength == 4) + { + memset(ProcessInformation,0,ProcessInformationLength); + len = 4; + } + else + retv = STATUS_INFO_LENGTH_MISMATCH; + break; + default: + FIXME((0x%08x,0x%08x,%p,0x%08lx,%p),stub!\n, + ProcessHandle,ProcessInformationClass, + ProcessInformation,ProcessInformationLength, + ReturnLength + ); + break; + } + + if (ReturnLength) + *ReturnLength = len; return 0; }
Re: [PATCH] NtQueryInformationProcess ProcessDebugPort
On April 2, 2002 12:17 pm, Laurent Pinchart wrote: Hi, Here's a small patch which implements NtQueryInformationProcess properly for ProcessInformationClass set to ProcessDebugPort. It fixes cases when ProcessInformationLength != 4, but doesn't check if a debugger is present or not. Should it ? I don't expect that anyone would like to run Visual Studio on Wine to debug a Win32 program :-) Why not??? I think that would be wy cool! -- Dimi.
Re: error: no implementation for WININET.dll.102(InternetGetConnectedState)
okay - Alexandre's solution did it. After turning on --debugmsg +loaddll, I noticed that wininet.dll was being loaded from c:\windows\system. I'm running wine from a UNIX partition. adding wininet = builtin, native to config fixed the problem. thanks, Jason
wine/debugger/stabs.c patch breaks FreeBSD
The following patch to wine/debugger/stabs.c breaks FreeBSD: revision 1.45 date: 2002/04/02 02:38:37; author: julliard; state: Exp; lines: +2 -0 Check ELF signature before processing file. stabs.c: In function `DEBUG_ProcessElfFile': stabs.c:1232: `ELFMAG' undeclared (first use in this function) stabs.c:1232: (Each undeclared identifier is reported only once stabs.c:1232: for each function it appears in.) stabs.c:1232: `SELFMAG' undeclared (first use in this function) In /usr/include/sys/elf_common FreeBSD has /* Values for the magic number bytes. */ #define ELFMAG0 0x7f #define ELFMAG1 'E' #define ELFMAG2 'L' #define ELFMAG3 'F' but not ELFMAG and nothing similiar to SELFMAG. Gerald -- Gerald Jerry [EMAIL PROTECTED] http://www.dbai.tuwien.ac.at/~pfeifer/
wine/dlls/winedos/dosvm.c breaks FreeBSD
The following patch breaks building on FreeBSD 4.5: revision 1.15 date: 2002/04/01 20:56:15; author: julliard; state: Exp; lines: +15 -4 Jukka Heinonen [EMAIL PROTECTED] Routine DOSVM_Wait now wakes up if new events are queued and it returns if it processed any queued events. with the following error: /usr/bin/gcc -c -I. -I. -I../../include -I../../include -g -O2 -Wall -mpreferred-stack-boundary=2 -fPIC -D__WINE__ -D_REENTRANT -I/usr/X11R6/include -o dosvm.o dosvm.c dosvm.c: In function `DOSVM_Init': dosvm.c:687: `event_notifier' undeclared (first use in this function) dosvm.c:687: (Each undeclared identifier is reported only once dosvm.c:687: for each function it appears in.) gmake: *** [dosvm.o] Error 1 because event_notifier is defined within an #ifdef MZ_SUPPORTED covering most of this file which is not active on FreeBSD, but -- after this patch -- referenced in code that *is* active on FreeBSD. I'd appreciate could you have a look... Gerald -- Gerald Jerry [EMAIL PROTECTED] http://www.dbai.tuwien.ac.at/~pfeifer/
MaskBlt function almost working
Hello All, I have come across a function called MaskBlt which I have tried to implement in the grphics/bitblt.c The functions works, but still has a few problems and was wondering if someone had any experience with this function so that I can try to see how to fix it. -- #defineFORE_ROP3(ROP4)(0x00FF(ROP4)) //#defineBACK_ROP3(ROP4)(ROP3FromIndex(SwapROP3_SrcDst (((ROP4)24 #defineBACK_ROP3(ROP4)(ROP3FromIndex(SwapROP3_SrcDst ((ROP4)24))) // //See the Raster operations in MSDN // DWORD ROP3FromIndex(DWORD dwIndex) { static DWORD ROP3Table[256] = { 0x0042, 0x00010289, 0x00020C89, 0x000300AA, 0x00040C88, 0x000500A9, 0x00060865, 0x000702C5, 0x00080F08, 0x00090245, 0x000A0329, 0x000B0B2A, 0x000C0324, 0x000D0B25, 0x000E08A5, 0x000F0001, 0x00100C85, 0x001100A6, 0x00120868, 0x001302C8, 0x00140869, 0x001502C9, 0x00165CCA, 0x00171D54, 0x00180D59, 0x00191CC8, 0x001A06C5, 0x001B0768, 0x001C06CA, 0x001D0766, 0x001E01A5, 0x001F0385, 0x00200F09, 0x00210248, 0x00220326, 0x00230B24, 0x00240D55, 0x00251CC5, 0x002606C8, 0x00271868, 0x00280369, 0x002916CA, 0x002A0CC9, 0x002B1D58, 0x002C0784, 0x002D060A, 0x002E064A, 0x002F0E2A, 0x0030032A, 0x00310B28, 0x00320688, 0x00330008, 0x003406C4, 0x00351864, 0x003601A8, 0x00370388, 0x0038078A, 0x00390604, 0x003A0644, 0x003B0E24, 0x003C004A, 0x003D18A4, 0x003E1B24, 0x003F00EA, 0x00400F0A, 0x00410249, 0x00420D5D, 0x00431CC4, 0x00440328, 0x00450B29, 0x004606C6, 0x0047076A, 0x00480368, 0x004916C5, 0x004A0789, 0x004B0605, 0x004C0CC8, 0x004D1954, 0x004E0645, 0x004F0E25, 0x00500325, 0x00510B26, 0x005206C9, 0x00530764, 0x005408A9, 0x00550009, 0x005601A9, 0x00570389, 0x00580785, 0x00590609, 0x005A0049, 0x005B18A9, 0x005C0649, 0x005D0E29, 0x005E1B29, 0x005F00E9, 0x00600365, 0x006116C6, 0x00620786, 0x00630608, 0x00640788, 0x00650606, 0x00660046, 0x006718A8, 0x006858A6, 0x00690145, 0x006A01E9, 0x006B178A, 0x006C01E8, 0x006D1785, 0x006E1E28, 0x006F0C65, 0x00700CC5, 0x00711D5C, 0x00720648, 0x00730E28, 0x00740646, 0x00750E26, 0x00761B28, 0x007700E6, 0x007801E5, 0x00791786, 0x007A1E29, 0x007B0C68, 0x007C1E24, 0x007D0C69, 0x007E0955, 0x007F03C9, 0x008003E9, 0x00810975, 0x00820C49, 0x00831E04, 0x00840C48, 0x00851E05, 0x008617A6, 0x008701C5, 0x008800C6, 0x00891B08, 0x008A0E06, 0x008B0666, 0x008C0E08, 0x008D0668, 0x008E1D7C, 0x008F0CE5, 0x00900C45, 0x00911E08, 0x009217A9, 0x009301C4, 0x009417AA, 0x009501C9, 0x00960169, 0x0097588A, 0x00981888, 0x00990066, 0x009A0709, 0x009B07A8, 0x009C0704, 0x009D07A6, 0x009E16E6, 0x009F0345, 0x00A000C9, 0x00A11B05, 0x00A20E09, 0x00A30669, 0x00A41885, 0x00A50065, 0x00A60706, 0x00A707A5, 0x00A803A9, 0x00A90189, 0x00AA0029, 0x00AB0889, 0x00AC0744, 0x00AD06E9, 0x00AE0B06, 0x00AF0229, 0x00B00E05, 0x00B10665, 0x00B21974, 0x00B30CE8, 0x00B4070A, 0x00B507A9, 0x00B616E9, 0x00B70348, 0x00B8074A, 0x00B906E6, 0x00BA0B09, 0x00BB0226, 0x00BC1CE4, 0x00BD0D7D, 0x00BE0269, 0x00BF08C9, 0x00C000CA, 0x00C11B04, 0x00C21884, 0x00C3006A, 0x00C40E04, 0x00C50664, 0x00C60708, 0x00C707AA, 0x00C803A8, 0x00C90184, 0x00CA0749, 0x00CB06E4, 0x00CC0020, 0x00CD0888, 0x00CE0B08, 0x00CF0224, 0x00D00E0A, 0x00D1066A, 0x00D20705, 0x00D307A4, 0x00D41D78, 0x00D50CE9, 0x00D616EA, 0x00D70349, 0x00D80745, 0x00D906E8, 0x00DA1CE9, 0x00DB0D75, 0x00DC0B04, 0x00DD0228, 0x00DE0268, 0x00DF08C8, 0x00E003A5, 0x00E10185, 0x00E20746, 0x00E306EA, 0x00E40748, 0x00E506E5, 0x00E61CE8, 0x00E70D79, 0x00E81D74, 0x00E95CE6, 0x00EA02E9, 0x00EB0849, 0x00EC02E8, 0x00ED0848, 0x00EE0086, 0x00EF0A08, 0x00F00021, 0x00F10885, 0x00F20B05, 0x00F3022A, 0x00F40B0A, 0x00F50225, 0x00F60265, 0x00F708C5, 0x00F802E5, 0x00F90845, 0x00FA0089, 0x00FB0A09, 0x00FC008A, 0x00FD0A0A, 0x00FE02A9, 0x00FF0062, }; return ROP3Table[dwIndex0xFF]; } BYTE SwapROP3_SrcDst(BYTE bRop3) { // swap 1,2 bit and 5,6 bit typedef struct { unsigned bit0 : 1; unsigned bit1 : 1; unsigned bit2 : 1;
Re: error: no implementation for WININET.dll.102(InternetGetConnectedState)
On April 2, 2002 11:49 am, Jason M Bell wrote: okay - Alexandre's solution did it. After turning on --debugmsg +loaddll, I noticed that wininet.dll was being loaded from c:\windows\system. I'm running wine from a UNIX partition. adding wininet = builtin, native to config fixed the problem. Shouldn't we default to builtin? -- Dimi.
Re: MaskBlt function almost working
On April 2, 2002 12:48 pm, Lonnie Cumberland wrote: Hello All, [...] By the way, I found this function at: http://www.codeproject.com/bitmap/maskblt.asp and modified it to work with wine. What about the license? Is it LGPL compatible? -- Dimi.
Re: MaskBlt function almost working
-BEGIN PGP SIGNED MESSAGE- Moin, On 02-Apr-02 Tels carved into stone: -BEGIN PGP SIGNED MESSAGE- Moin, On 02-Apr-02 Dimitrie O. Paun carved into stone: On April 2, 2002 12:48 pm, Lonnie Cumberland wrote: Hello All, [...] By the way, I found this function at: http://www.codeproject.com/bitmap/maskblt.asp and modified it to work with wine. What about the license? Is it LGPL compatible? I have searched the entire site and I couldn't find a single bit about the licence that submitted (or otherwise available code at that site) falls under. It is heavy MS-centric, so I guess it is not very /L?GPL/ friendly. Best bet would probably be to send them an email and ask ;) Ah, I overread this in the FAQ: If you post to CodeProject then you retain copyright of your article and code. You also give CodeProject permission to use it in a fair manner and also permit all developers to freely use the code in their own applications. Note that we do not accept time limited or shareware contributions: All code that is available from our site must be available for use for free. IANLSBIPAH (I am no Licence specialist, but I play one at home) so somebody else could chime in and tell us if that is compatible. Also aksing the original author nonetheless because it is kind and friendly wouldn#t hurt, either. Cheers, Tels - -- Why do you go so slowly? Do you think this is some kind of game? PGP key available on http://bloodgate.com/tels.asc or via email. perl -MDev::Bollocks -e'print Dev::Bollocks-rand(),\n' widespreadedly synthesize second-generation markets -BEGIN PGP SIGNATURE- Version: GnuPG v1.0.6 (GNU/Linux) Comment: When cryptography is outlawed, bayl bhgynjf jvyy unir cevinpl. iQEVAwUBPKoBpHcLPEOTuEwVAQEhKgf+OyAxJsidtYoY9O+5r7OjYK9RcKFVF8ED SiwlbJsohA7Ip681sFovCrcixli/11LuImHSbHCBhgunocq/fAmsSUbhR7gYcd0F irzaDbRFFHvVUadLBdCecDeaI4FBKK22+dW7zl2uiShfQMb+BgkAsWtOmwBBRLlW 2qaStWbbNXL+XbHal/m9qGlQ+G4zHOpd7mz0li8B/NMWdbmIv5pFYP2Fs+hKE5t4 1546AShXiFyj36cdB9iB71BK2nmYtiECB0b4G7HhR8foT7JDfIZUxP+0LrC14pfh ITOczNEbZzaVs+lIg3tSdM6nymzaCHHIQWsxXMbtgJwbDd4RJcoxFA== =FMIm -END PGP SIGNATURE-
Re: [PATCH] NtQueryInformationProcess ProcessDebugPort
It fixes cases when ProcessInformationLength != 4, but doesn't check if a debugger is present or not. Should it ? I don't expect that anyone would like to run Visual Studio on Wine to debug a Win32 program :-) sdk's windbg already work, so why no VC++ debugger ? btw, your patch will not compile (ret/retv) A+
Re: wine/debugger/stabs.c patch breaks FreeBSD
Gerald Pfeifer a écrit : The following patch to wine/debugger/stabs.c breaks FreeBSD: revision 1.45 date: 2002/04/02 02:38:37; author: julliard; state: Exp; lines: +2 -0 Check ELF signature before processing file. that should fix it in a portable manner Index: debugger/stabs.c === RCS file: /home/cvs/cvsroot/wine/wine/debugger/stabs.c,v retrieving revision 1.45 diff -u -r1.45 stabs.c --- debugger/stabs.c2 Apr 2002 02:38:37 - 1.45 +++ debugger/stabs.c2 Apr 2002 19:29:41 - -1229,7 +1229,10 * table. */ ehptr = (Elf32_Ehdr*) addr; -if (memcmp( ehptr-e_ident, ELFMAG, SELFMAG )) goto leave; +if (ehptr-e_ident[0] != ELFMAG0 || +ehptr-e_ident[1] != ELFMAG1 || +ehptr-e_ident[2] != ELFMAG2 || +ehptr-e_ident[3] != ELFMAG3) goto leave; spnt = (Elf32_Shdr*) (addr + ehptr-e_shoff); shstrtab = (addr + spnt[ehptr-e_shstrndx].sh_offset);
Re: create process test (for review)
Alexandre Julliard a écrit : Eric Pouech [EMAIL PROTECTED] writes: +static int get_file_name(char* buf, size_t len, const char* hint) +{ +char* ptr; +if (strcmp(winetest_platform, windows)) +{ +sprintf(buf, %s/%s, base, hint); +for (ptr = buf; *ptr; ptr++) +if (*ptr == '\\') *ptr = '/'; +} +else +{ +sprintf(buf, %s\\%s, base, hint); +for (ptr = buf; *ptr; ptr++) +if (*ptr == '/') *ptr = '\\'; +} +//fprintf(stderr, resfile=%s\n, buf); +return 0; +} You should never do that kind of things. The platform must be used exclusively for todo tests, not for changing the test behavior. And backslashes should work fine under Wine too. the point here is not really part of the test. I needed a way to send back information from the child to the parent. To minimize the scope of the test, I didn't want to use too many Windows functions here, and decided to use libc file IO for that. The encoding here is just to use the same absolute filename (absolute because tests may change the current directory, so relative paths are no good, name with libc semantics) of course, I could use regular windows file name (or even another way of sharing information (registry, anon map, pipe...)), but I wanted the test to be as independent as possible on other APIs so, my final questions: what is your direction here: to test a specific API, should we limit the scaffholding (provide by other APIs), or should we just use them as freely as needed My point here is that the more APIs we use, the more regressions we'll have in the tests after one evilish modification, hence complicating its search. A+
multiple instance freezes
Hello All, I was trying to do a test of my Wine install, which is the latest stable release, by starting up 2 different instances of Wine and StarOffice 6.0 Beta for Windows as 2 different users. what I have found is that the the first user running Wine SO6.0 will start up just fine and even run with no problems. The second test user can also start up the application but within just a few seconds it freezes and I can do nothing. Each test user has a complete directory structure for the windows to run and I am not using any of the real windows stuff, just that which came with wine. I also find that the first user application can still run. Is there something going on with the shared libraries of Wine and the wine server? Best regards, Lonnie -- Lonnie Cumberland OutStep Technologies Incorporated EMAIL: [EMAIL PROTECTED] : [EMAIL PROTECTED] The Basis Express Virtual Office Data Backup and Recovery Services URL: http://www.basis-express.com The Virtual Office without boundaries!!!
warn:wave:OSS_OpenDevice Another thread is trying to access audio...
Hi, attached patch fixes counter-strike/multiplayer halflife for latest wine snapshots CVS. It's probably not the Right Way (TM) but it works for me, and it seems that it doesn't broke anything. Jan Dvorak
codeweavers wine and StarOffice 6.0 Beta
Hello All, Just a note. I recently installed the codeweavers preview 5 wine version as a test and found that it will not even run the windows StarOffice 6.0 Beta so something has changed between that version and the WineHQ version. I was unable to get any debug information as well because it froze my screen. Cheers, Lonnie -- Lonnie Cumberland OutStep Technologies Incorporated EMAIL: [EMAIL PROTECTED] : [EMAIL PROTECTED] The Basis Express Virtual Office Data Backup and Recovery Services URL: http://www.basis-express.com The Virtual Office without boundaries!!!
Re: create process test (for review)
Eric Pouech [EMAIL PROTECTED] writes: so, my final questions: what is your direction here: to test a specific API, should we limit the scaffholding (provide by other APIs), or should we just use them as freely as needed I don't see any problem in using other APIs, that's just another way to get them some more testing. And it is very important that the tests behave exactly the same under Windows and Wine so that any difference can be found. If we start having different code paths on different platforms we can never be sure that we are actually testing the same thing. -- Alexandre Julliard [EMAIL PROTECTED]
Re: IE6ALL.zip
For me I installed IE6 with a few native DLLs. But sometimes Web sites are opening into a loop. They just appear as entirely loaded, but continue to download things and end with unknown error as said by IE. Even problems appear in 'About' box... What do you need IE6 for ? --- Lonnie Cumberland [EMAIL PROTECTED] a écrit : Hello All, I have been trying to get the ie6 setup to run but keep running into many functions that do not seem to be implemented yet. Has anyone gotten IE6 installed under wine? If so then is there some where that I can just download the installed directories and unpack them in my wine-c structure? Thanks, Lonnie -- Lonnie Cumberland OutStep Technologies Incorporated EMAIL: [EMAIL PROTECTED] : [EMAIL PROTECTED] The Basis Express Virtual Office Data Backup and Recovery Services URL: http://www.basis-express.com The Virtual Office without boundaries!!! ___ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com
Re: [PATCH] NtQueryInformationProcess ProcessDebugPort
sdk's windbg already work, so why no VC++ debugger ? Then we'll probably have to implement NtQueryInformationProcess completely for ProcessDebugPort. Does anyone know what it should return ? The debugger process handle ? btw, your patch will not compile (ret/retv) Sorry, I sent the wrong file. Here's the correct version. Laurent Pinchart --- nt.c 9 Mar 2002 23:39:09 - 1.38 +++ nt.c 2 Apr 2002 21:59:41 - -116,15 +116,34 IN ULONG ProcessInformationLength, OUT PULONG ReturnLength) { - FIXME((0x%08x,0x%08x,%p,0x%08lx,%p),stub!\n, - ProcessHandle,ProcessInformationClass,ProcessInformation,ProcessInformationLength,ReturnLength - ); - /* These are not the debuggers you are looking for. */ - if (ProcessInformationClass == ProcessDebugPort) - /* set it to 0 aka no debugger to satisfy copy protections */ - memset(ProcessInformation,0,ProcessInformationLength); + NTSTATUS ret = STATUS_SUCCESS; + ULONG len = 0; - return 0; + switch (ProcessInformationClass) { + case ProcessDebugPort: + /* These are not the debuggers you are looking for. */ + /* set it to 0 aka no debugger to satisfy copy protections */ + if (ProcessInformationLength == 4) + { + memset(ProcessInformation,0,ProcessInformationLength); + len = 4; + } + else + ret = STATUS_INFO_LENGTH_MISMATCH; + break; + default: + FIXME((0x%08x,0x%08x,%p,0x%08lx,%p),stub!\n, + ProcessHandle,ProcessInformationClass, + ProcessInformation,ProcessInformationLength, + ReturnLength + ); + break; + } + + if (ReturnLength) + *ReturnLength = len; + + return ret; } /**
Re: create process test (for review)
On Mon, 1 Apr 2002, Eric Pouech wrote: as already discussed a bit, here's a first shot at testing CreateProcess patch is made of two parts: - extension to existing C test framework to pass argc/argv to any test function - the test itself Just a minor point, but maybe you could replace: ok(cmpChildInt(StartupInfoA, cb, startup.cb), NULL); with ok(cmpChildInt(StartupInfoA, cb, startup.cb), StartupInfoA.cb); or even: #define okChildInt(section,key,expected) \ do { \ int res=GetPrivateProfileIntA(section,key,!expected,resfile); \ ok(res==expected, section key : got %d instead of %d, \ res, expected); \ } while (0) ... okChildInt(StartupInfoA, cb, startup.cb); The nice thing is that if something goes wrong, all the relevant information is printed. I found that this makes it easier when developping a test. Same thing for cmpChildString, etc. -- Francois Gouget [EMAIL PROTECTED]http://fgouget.free.fr/ Demander si un ordinateur peut penser revient à demander si un sous-marin peut nager.
Re: error: no implementation for WININET.dll.102(InternetGetConnectedState)
I also have a suggestion for this: we could put ALL emulated dlls in the default config file with something = builtin, native and # the ones that aren't enough implemented/tested. Comments ? adding wininet = builtin, native to config fixed the problem. Shouldn't we default to builtin? -- Dimi. ___ Do You Yahoo!? -- Une adresse yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com
Re: Unicode, i18n support
On Tue, 2 Apr 2002, Waldek Hebisch wrote: misunderstood me and decided that I propose to use code page 20866 instead of 1251 for russian locale under Wine. But that's not the case. I only proposed to create filenames on disk in encoding used natively in Linux. I think that the right way is to have code conversion option in wine.config, as one of Wine mount options. That way we will be able to handle most weird configuration (like UTF-8 on native Linux, cp 1251 on removable media). So if I understand correctly, Linux does not provide a uniform interface to the filesystem. I.e. if I do 'touch ~/foo' where foo contains weird characters I must make sure these are the right characters for the codepage used by ~, and then if I do 'touch /mnt/win98/foo', then I must change 'foo' so that its characters now match the 1251 codepage, and I may have to rewrite foo yet again for 'touch /zipdrive/foo'. Urgh. This is certainly ugly. I thought that Linux would be taking UTF-8 or something like it for all filesystems and then do the codepage conversions itself depending on the underlying filesystem. I thought that this was the point of having all the codepage information in the kernel for fat filesystems. -- Francois Gouget [EMAIL PROTECTED]http://fgouget.free.fr/ Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it ;) -- Linus Torvalds
Regression: Wine won't compile with latest cvs shlwapi
I can't get recent cvs versions to compile. After running cvs update -PAd and ./tools/installwine I get these messages gcc: Internal compiler error: program cc1 got fatal signal 11 make[2]: *** [ordinal.o] Error 1 make[2]: Leaving directory `/usr/local/src/wine/dlls/shlwapi' make[1]: *** [shlwapi/shlwapi.dll.so] Error 2 make[1]: Leaving directory `/usr/local/src/wine/dlls' make: *** [dlls] Error 2 Compilation failed, aborting install. At first I thought it might be something wrong with my system so I backed out cvs to March 1st 2002 and everything worked. I talked to Lawson on wine-users and he says I should look at http://www.bitwizard.nl/sig11/ (This link is about mostly about compiling a kernal but it applies to compiling wine as well) I have looked at it and tried most of the things suggested in it. I still stop in exactly the same place. Things i have tried I ran dd if=/dev/hda7 of=/dev/null bs=1024k count=96 and re-ran make I lowered my clock speed from 200mhz to 133mhz I have 4 72 pin simms, 2-16's and 2-32's I have tried compiling with each set individualy I have increased my swap space None of this helped. In the mean time I have done some regression testing using CVS cvs update -D 2002-03-19 19:31:04 CST ./configure make depend make compiles with no errors cvs update -D 2002-03-19 19:33:40 CST ./configure make depend make results with this gcc: Internal compiler error: program cc1 got fatal signal 11 make[2]: *** [ordinal.o] Error 1 make[2]: Leaving directory `/usr/local/src/wine/dlls/shlwapi' make[1]: *** [shlwapi/shlwapi.dll.so] Error 2 make[1]: Leaving directory `/usr/local/src/wine/dlls' make: *** [dlls] Error 2 Compilation failed, aborting install. This is the patch that was commited at 19:33:39 CST http://www.winehq.com/hypermail/wine-cvs/2002/03/0072.html Now I'm not the shapest knife in the drawer in fact I can be quite dull but this is a very strong indication that this patch is the one that is causing the problem. What do I need to do now? Tony Lambregts
Re: Regression: Wine won't compile with latest cvs shlwapi
On April 2, 2002 05:34 pm, Tony Lambregts wrote: This is the patch that was commited at 19:33:39 CST http://www.winehq.com/hypermail/wine-cvs/2002/03/0072.html Hey!!! wine-cvs archive is down! ;( -- Dimi.
Re: Regression: Wine won't compile with latest cvs shlwapi
No it's not. You just happened to catch it in the 5 seconds it took me to change a symlink. Good timing on your part I would say. :-D On Tue, 2002-04-02 at 16:57, Dimitrie O. Paun wrote: On April 2, 2002 05:34 pm, Tony Lambregts wrote: This is the patch that was commited at 19:33:39 CST http://www.winehq.com/hypermail/wine-cvs/2002/03/0072.html Hey!!! wine-cvs archive is down! ;( -- Dimi. -- __ _WebGeek/NetAdmin CodeWeavers -= http://www.codeweavers.com | \| |_ __ ___ __ __ _ _ _ -= http://www.dracowulf.com | .` / -_) | | / ' \/ _` | ' \ -= mailto:[EMAIL PROTECTED] |_|\_\___|\_/\_/|_|_|_\__,_|_||_| -= ICQ: 1842980 Yahoo: laxdragon
Re: Read of memory location 0x7ffe0000 in windows NT
I've stumbled accross some code which reads a dword at memory location 0x7ffe000, which causes the program to crash and the wine debugger to start. After some investigation, it seems that reading the memory location 0x7ffe should return KeTickCount.LowPart to the user process. Has anyone ever heard about that ? I was wondering if it was a native windows NT behaviour, or if it was done by a special kernel-space exception handler installed by the program. It's a native NT thing; a page of memory at that address is shared between user and kernel space. The definition in the w2k ddk. I found it, thank you very much. Could anyone tell me where I should look to implement that shared page in wine ? In the page fault exception handler ? Any information will be welcome. BTW does anyone know where I can find information about KeTickCount ? I'd like to understand the meaning and purpose of the 3 fields (LowPart, High1Time, High2Time). There's nothing about it in the MSDN. It looks like KeTickCount.LowPart is a 10ms counter. Anyone can confirm ? Laurent Pinchart
Re: wine/debugger/stabs.c patch breaks FreeBSD
On Tue, 2 Apr 2002, Eric Pouech wrote: The following patch to wine/debugger/stabs.c breaks FreeBSD: revision 1.45 date: 2002/04/02 02:38:37; author: julliard; state: Exp; lines: +2 -0 Check ELF signature before processing file. that should fix it in a portable manner Thanks! I verified that this builds fine on FreeBSD, but also noticed that Alexandre has committed a somewhat different patch. (Both of these patches work for me, so I don't know which one's preferrable...) Gerald -- Gerald Jerry [EMAIL PROTECTED] http://www.dbai.tuwien.ac.at/~pfeifer/
Re: Regression: Wine won't compile with latest cvs shlwapi
Tony Lambregts wrote: gcc: Internal compiler error: program cc1 got fatal signal 11 I talked to Lawson on wine-users and he says I should look at http://www.bitwizard.nl/sig11/ (This link is about mostly about compiling a kernal but it applies to compiling wine as well) I have looked at it and tried most of the things suggested in it. I still stop in exactly the same place. [snip] What do I need to do now? If you can get cc1 to die with SIGSEGV reproducibly in same place, then you have most probably found a compiler bug. The first question is of course, which version of gcc are you using? Did you build it yourself or is it the one that came with your distro (which one?)? What is the output of gcc -v rpm -qf `which gcc` Bye, Ulrich -- Dr. Ulrich Weigand [EMAIL PROTECTED]
Race condition in TemrinateThread
I've discovered a race condition in TerminateThread. Basically, if a thread is terminated before it has fully started, than the thread leaves a wine process around when the process exits. I wouldn't have figured this out if it weren't for the OpenThread code which was just added (it slowed down my test enough that with '--winver win2000' the thread was able to start, whereas with '--winver win98' it couldn't (due to testing OpenThread before calling TerminateThread when in win2k mode). It should be duplicatable by simply calling thread=CreateThread(); TerminateThread(thread,0); with no wait between them. Anyhow, I really have no idea how to locate this, but I'd be happy to try if someone can give me a hand. Thanks, .Geoff
Re: error: no implementation for WININET.dll.102(InternetGetConnectedState)
Sylvain Petreolle [EMAIL PROTECTED] writes: we could put ALL emulated dlls in the default config file with something = builtin, native and # the ones that aren't enough implemented/tested. Comments ? That wouldn't help; sometimes builtins work better and sometimes they don't, it depends on the application and on the Windows version of the native dlls. There isn't a single configuration that works better in all cases. -- Alexandre Julliard [EMAIL PROTECTED]
Re: Regression: Wine won't compile with latest cvs shlwapi
Ulrich Weigand wrote: Tony Lambregts wrote: gcc: Internal compiler error: program cc1 got fatal signal 11 I talked to Lawson on wine-users and he says I should look at http://www.bitwizard.nl/sig11/ (This link is about mostly about compiling a kernal but it applies to compiling wine as well) I have looked at it and tried most of the things suggested in it. I still stop in exactly the same place. [snip] What do I need to do now? If you can get cc1 to die with SIGSEGV reproducibly in same place, then you have most probably found a compiler bug. The first question is of course, which version of gcc are you using? Did you build it yourself or is it the one that came with your distro (which one?)? What is the output of gcc -v rpm -qf `which gcc` Bye, Ulrich Redhat 6.0 gcc -v Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) Tony Lambregts
Re: Regression: Wine won't compile with latest cvs shlwapi
Tony Lambregts [EMAIL PROTECTED] writes: I can't get recent cvs versions to compile. After running cvs update -PAd and ./tools/installwine I get these messages gcc: Internal compiler error: program cc1 got fatal signal 11 make[2]: *** [ordinal.o] Error 1 make[2]: Leaving directory `/usr/local/src/wine/dlls/shlwapi' make[1]: *** [shlwapi/shlwapi.dll.so] Error 2 make[1]: Leaving directory `/usr/local/src/wine/dlls' make: *** [dlls] Error 2 That's most likely the usual gcc bug with local WINAPI function pointers. I've merged a patch to shlwapi that should work around this. -- Alexandre Julliard [EMAIL PROTECTED]
Re: error: no implementation for WININET.dll.102(InternetGetConnectedState)
Dimitrie O. Paun [EMAIL PROTECTED] writes: That's true, but if we default to builtin, we expose more of _our_ bugs, and hopefully we get them fixed faster. Not necessarily; many bugs appear only when using a mix of natives and builtins, since this is where the compatibility requirements are the most strict. -- Alexandre Julliard [EMAIL PROTECTED]
Re: ExitProcess crashes apps
This problem looks related to bug #460, which also has this error message: err:win:WIN_FindWndPtr window 10021 belongs to other process err:win:WIN_FindWndPtr window 10021 belongs to other process http://wine.codeweavers.com/bugzilla/show_bug.cgi?id=460 On Wednesday 03 April 2002 01:18 pm, you wrote: Hi After just compiling and installing current cvs wine I get an unhandled exception every time an app closes. The culprit seems to be somewhere in kernel32.ExitProcess: Here is the relay output of the uninstaller that comes with wine (last 50 lines) Enrico [EMAIL PROTECTED] 08070840:Ret x11drv.SelectPen() retval=00e6 ret=4070c3e1 08070840:Call x11drv.SelectBrush(403b44b0,075a) ret=4070c3b2 08070840:Ret x11drv.SelectBrush() retval=075a ret=4070c3b2 08070840:Call x11drv.SelectPen(403b44b0,008a) ret=4070c3e1 08070840:Ret x11drv.SelectPen() retval=008a ret=4070c3e1 08070840:Call x11drv.SelectBrush(403b44b0,006e) ret=4070c3b2 08070840:Ret x11drv.SelectBrush() retval=006e ret=4070c3b2 08070840:Call x11drv.SetDeviceClipping(403b44b0) ret=406fecee 08070840:Ret x11drv.SetDeviceClipping() retval= ret=406fecee 08070840:Call x11drv.SelectBrush(403b44b0,006e) ret=4070c3b2 08070840:Ret x11drv.SelectBrush() retval=006e ret=4070c3b2 08070840:Call x11drv.GetDeviceCaps(403b44b0,0022) ret=407019ed 08070840:Ret x11drv.GetDeviceCaps() retval=79f7 ret=407019ed 08070840:Call x11drv.SelectFont(403b44b0,00a2) ret=4070c24c 08070840:Ret x11drv.SelectFont() retval=0001 ret=4070c24c 08070840:Call x11drv.SelectPen(403b44b0,008a) ret=4070c3e1 08070840:Ret x11drv.SelectPen() retval=008a ret=4070c3e1 08070840:Call x11drv.SetBkColor(403b44b0,00ff) ret=40701a8a 08070840:Ret x11drv.SetBkColor() retval=00ff ret=40701a8a 08070840:Call x11drv.SetTextColor(403b44b0,) ret=40701b3a 08070840:Ret x11drv.SetTextColor() retval= ret=40701b3a 08070840:Ret window proc 0x405e96f4 (hwnd=00010025,msg=BM_SETSTATE,wp=,lp=) retval= 08070840:Call window proc 0x405e96f4 (hwnd=00010025,msg=WM_CAPTURECHANGED,wp=,lp=) 08070840:Ret window proc 0x405e96f4 (hwnd=00010025,msg=WM_CAPTURECHANGED,wp=,lp=) retval= 08070840:Call window proc 0x4001c7f8 (hwnd=00010021,msg=WM_COMMAND,wp=0002,lp=00010025) 08070840:Call user32.PostQuitMessage() ret=4001ce19 08070840:Ret user32.PostQuitMessage() retval=0001 ret=4001ce19 08070840:Ret window proc 0x4001c7f8 (hwnd=00010021,msg=WM_COMMAND,wp=0002,lp=00010025) retval= 08070840:Ret window proc 0x405e96f4 (hwnd=00010025,msg=WM_LBUTTONUP,wp=,lp=000a0057) retval= 08070840:Ret user32.DispatchMessageA() retval= ret=4001c311 08070840:Call user32.GetMessageA(40586e18,,,) ret=4001c31d 08070840:Call x11drv.MsgWaitForMultipleObjectsEx(,,,, ) ret=405deb9a 08070840:Ret x11drv.MsgWaitForMultipleObjectsEx() retval=0102 ret=405deb9a 08070840:Ret user32.GetMessageA() retval= ret=4001c31d 08070840:Call kernel32.ExitProcess() ret=4001b07c 08070840:Call PE DLL (proc=0x405e5140,module=405c5000,type=0,res=0x1) 08070840:Ret PE DLL (proc=0x405e5140,module=405c5000,type=0,res=0x1) retval=1 08070840:Call PE DLL (proc=0x40829860,module=4081e000,type=0,res=0x1) 080a9e40:Ret x11drv.MsgWaitForMultipleObjectsEx() retval=0001 ret=405deec9 080a9e40:Call x11drv.MsgWaitForMultipleObjectsEx(,,,, ) ret=405deb9a 080a9e40:Ret x11drv.MsgWaitForMultipleObjectsEx() retval=0102 ret=405deb9a 080a9e40:Call x11drv.MsgWaitForMultipleObjectsEx(0001,403b3070,,, ) ret=405deec9 08070840:Ret PE DLL (proc=0x40829860,module=4081e000,type=0,res=0x1) retval=1 08070840:Call PE DLL (proc=0x406ee894,module=406e1000,type=0,res=0x1) 08070840:Ret PE DLL (proc=0x406ee894,module=406e1000,type=0,res=0x1) retval=1 08070840:Call PE DLL (proc=0x407749e0,module=40764000,type=0,res=0x1) 08070840:Ret PE DLL (proc=0x407749e0,module=40764000,type=0,res=0x1) retval=1 wine: Unhandled exception, starting debugger... err:win:WIN_FindWndPtr window 10021 belongs to other process err:win:WIN_FindWndPtr window 10021 belongs to other process -- Jason Phillips ZIPPY SAYS: -- I am covered with pure vegetable oil and I am writing a best seller!
Re: [PATCH] NtQueryInformationProcess ProcessDebugPort
sdk's windbg already work, so why no VC++ debugger ? Then we'll probably have to implement NtQueryInformationProcess completely for ProcessDebugPort. Does anyone know what it should return ? The debugger process handle ? the debugport value is not intented for ring3 use. so any non null value would do when the debugger is present. A+