August 2010 Archives by subject
Starting: Sun Aug 1 15:56:23 UTC 2010
Ending: Sat Aug 28 14:32:37 UTC 2010
Messages: 48
- [ros-dev] [ros-diffs] [akhaldi] 48502: [PSDK] - Move INPUTCONTEXT and ImmLockIMC to the wine imm.h - Add wingdi.h inclusion.
James Tabor
- [ros-dev] [ros-diffs] [akhaldi] 48535: [CMAKE] - Add calc tobuild.
Timo Kreuzer
- [ros-dev] [ros-diffs] [akhaldi] 48535: [CMAKE] - Add calc tobuild.
Aleksey Bragin
- [ros-dev] [ros-diffs] [akhaldi] 48535: [CMAKE] - Add calc to build.
Colin Finck
- [ros-dev] [ros-diffs] [cgutman] 48522: [MSAFD] - Update lpcbBytesReturned when FIONREAD is called - Fix the value inside lpErrno when XxxSocketInformation() fails - Pass the unrecognized IOCTLs to the winsock helper (no behavior change for this yet because wsh
Gabriel ilardi
- [ros-dev] [ros-diffs] [cgutman] 48593: [DHCPCSVC] - Write the DNS servers in
Aleksey Bragin
- [ros-dev] [ros-diffs] [cgutman] 48593: [DHCPCSVC] - Write the DNS servers in
Aleksey Bragin
- [ros-dev] [ros-diffs] [cgutman] 48593: [DHCPCSVC] - Write the DNS servers in
Pierre Schweitzer
- [ros-dev] [ros-diffs] [cgutman] 48593: [DHCPCSVC] - Write the DNS servers in
Olaf Siejka
- [ros-dev] [ros-diffs] [cgutman] 48593: [DHCPCSVC] - Write the DNS servers in a REG_MULTI_SZ value [IPHLPAPI] - Rewrite the registry reading code - Use HeapFree to free memory from the allocated from heap
Timo Kreuzer
- [ros-dev] [ros-diffs] [jgardou] 48359: [WIN32K] - Rewrite NtGdiGetDIBitsInternal, with WINE as a reference. - Get back DIB Section creation to classic BITMAPINFO. This si the beginnig of the end for all this BITMAPV5INFO stuff. It is horrible, BITMAPCOREINFO->
Timo Kreuzer
- [ros-dev] [ros-diffs] [jgardou] 48359: [WIN32K] - Rewrite NtGdiGetDIBitsInternal, with WINE as a reference. - Get back DIB Section creation to classic BITMAPINFO. This si the beginnig of the end for all this BITMAPV5INFO stuff. It is horrible, BITMAPCOREINFO->
Jérôme Gardou
- [ros-dev] [ros-diffs] [jgardou] 48359: [WIN32K] - Rewrite NtGdiGetDIBitsInternal, with WINE as a reference. - Get back DIB Section creation to classic BITMAPINFO. This si the beginnig of the end for all this BITMAPV5INFO stuff. It is horrible, BITMAPCOREINFO->
Timo Kreuzer
- [ros-dev] [ros-diffs] [jgardou] 48465: [WIN32K] - Rewrite NtGdiStretchDIBitsInternal : clearer, faster, stronger (+1 wine test)
Jérôme Gardou
- [ros-dev] [ros-diffs] [jgardou] 48465: [WIN32K] - Rewrite NtGdiStretchDIBitsInternal : clearer, faster, stronger (+1 wine test)
Timo Kreuzer
- [ros-dev] [ros-diffs] [sir_richard] 48475: (huge bunch of text)
Sven Barth
- [ros-dev] [ros-diffs] [sir_richard] 48475: [KERNEL32]: While working on the CMAKE branch, Amine and myself discovered a rather serious issue in kernel32 (and perhaps other libraries as well). Unlike rbuild, CMake does not allow you to export non-existant DLL functions (try it: add "poopyhead" in kernel32's exports under RBuild, and will it export "poopyhead", God knowing what that will actually link to). As an additional feature on top of the "allow non-existing functions to be exported" "feature", because rbuild generates and links STDCALL function names without the proper decoration (vs. enforcing decoration at linking, but only removing it at export-time), this allows the definition (as an export) of a STDCALL function that is completely different from the actual function itself. For example, the 5-parameter Foo function is normally Foo at 20, while the 3-parameter Foo function woudl be Foo at 12. Linking one against the other would fail (say, 2 parameters were added to Foo in a newer version). However, under RBUILD, both of these would appear as "Foo", and the linker/compiler would happilly connect the caller of Foo at 3 (that has pushed 3 parameters) to the receiving side of Foo at 5 (that is about to pop 5 parameters). Even -if- decorations WERE to be applied, Foo at 12 would STILL succeed, because of the first feature, which would enable the export of Foo at 12 even though no such function exist. In a further, bizare, twist of fate, the behavior of this RBUILD "feature", when the target function is not found, is to link the exported DLL TO ITSELF. Therefore, one can see how, previously to this patch, kernel32.dll would import a dozen functions from itself (all the non-existing functions). To really seal the deal, the behavior of exported functions used by kernel32, but that are actually forwarded to another DLL deserves a special mention. GetLastError, for example, merely forwards to RtlGetLastWin32Error, so it is normal behavior to use a #define in the C code so that all internal calls to the function are routed correctly. This did not happen, so instead, kernel32 tried importing/linking/exporting GetLastError, but this symbol is not found in the binary, because it is only a forwarder. This caused kernel32 to import from itself (the behavior when an exported symbol is not found). When importing from itself, the loader would now find the _forwarded_ for GetLastError, and correctly link with ntdll. What should be a one-liner of assembly (inline TEB access) thus became a triple-call indirection (GetLastError at 0->StubLastError at 0->__impGetLastError at 0->__impRtlGetLastWin32Error->RtlGetLastWin32Error. While analyzing these issues, we also realized a strange macro SetLastErrorByStatus that manually tried to perform what there already exists a function for: RtlSetLastNtStatusFromWin32Error. And, in an exciting coda, we also realized that our Server 2003 Kernel32 exports more than a dozen Windows 95 APIs, through an auto-stub generation mechanism within winebuild, that gets linked as an object behind the scenes. [KERNEL32]: Removed all Win95 exports, cleaned up exports. [KERNEL32]: Fixed up set/get error macros by making them inline and/or calling the correct ntdll function. [KERNEL32]: Removed bizare calls to Wine-internal/specific APIs from our core Win32 DLL. [KERNEL32]: Wrote stubs for all functions which should be exported, and set the correct number of parameters for them. [KERNEL32]: Kernel32 is smaller, loads faster, does not export Windows 95 functions, does not export non-existing functions, and does not import from itself anymore. Note: This is one of the many failings of RBUILD the CMAKE system has helped us discover. I believe these issues are serious enough to warrant an immediate sync with trunk, but rest assured, there are many more completely broken, infinitely-regressing things that we discovered while switching to CMAKE.
Aleksey Bragin
- [ros-dev] [ros-diffs] [sir_richard] 48475: [KERNEL32]: While working on the CMAKE branch, Amine and myself discovered a rather serious issue in kernel32 (and perhaps other libraries as well). [...]
Colin Finck
- [ros-dev] [ros-diffs] [sir_richard] 48475: [KERNEL32]: While working on the CMAKE branch, Amine and myself discovered a rather serious issue in kernel32 (and perhaps other libraries as well). Unlike rbuild, CMake does not allow you to export non-existant DLL functions (try it: add "poopyhead" in kernel32's exports under RBuild, and will it export "poopyhead", God knowing what that will actually link to). As an additional feature on top of the "allow non-existing functions to be exported" "feature", because rbuild generates and links STDCALL function names without the proper decoration (vs. enforcing decoration at linking, but only removing it at export-time), this allows the definition (as an export) of a STDCALL function that is completely different from the actual function itself. For example, the 5-parameter Foo function is normally Foo at 20, while the 3-parameter Foo function woudl be Foo at 12. Linking one against the other would fail (say, 2 parameters were added to Foo in a newer version). However, under RBUILD, both of these would appear as "Foo", and the linker/compiler would happilly connect the caller of Foo at 3 (that has pushed 3 parameters) to the receiving side of Foo at 5 (that is about to pop 5 parameters). Even -if- decorations WERE to be applied, Foo at 12 would STILL succeed, because of the first feature, which would enable the export of Foo at 12 even though no such function exist. In a further, bizare, twist of fate, the behavior of this RBUILD "feature", when the target function is not found, is to link the exported DLL TO ITSELF. Therefore, one can see how, previously to this patch, kernel32.dll would import a dozen functions from itself (all the non-existing functions). To really seal the deal, the behavior of exported functions used by kernel32, but that are actually forwarded to another DLL deserves a special mention. GetLastError, for example, merely forwards to RtlGetLastWin32Error, so it is normal behavior to use a #define in the C code so that all internal calls to the function are routed correctly. This did not happen, so instead, kernel32 tried importing/linking/exporting GetLastError, but this symbol is not found in the binary, because it is only a forwarder. This caused kernel32 to import from itself (the behavior when an exported symbol is not found). When importing from itself, the loader would now find the _forwarded_ for GetLastError, and correctly link with ntdll. What should be a one-liner of assembly (inline TEB access) thus became a triple-call indirection (GetLastError at 0->StubLastError at 0->__impGetLastError at 0->__impRtlGetLastWin32Error->RtlGetLastWin32Error. While analyzing these issues, we also realized a strange macro SetLastErrorByStatus that manually tried to perform what there already exists a function for: RtlSetLastNtStatusFromWin32Error. And, in an exciting coda, we also realized that our Server 2003 Kernel32 exports more than a dozen Windows 95 APIs, through an auto-stub generation mechanism within winebuild, that gets linked as an object behind the scenes. [KERNEL32]: Removed all Win95 exports, cleaned up exports. [KERNEL32]: Fixed up set/get error macros by making them inline and/or calling the correct ntdll function. [KERNEL32]: Removed bizare calls to Wine-internal/specific APIs from our core Win32 DLL. [KERNEL32]: Wrote stubs for all functions which should be exported, and set the correct number of parameters for them. [KERNEL32]: Kernel32 is smaller, loads faster, does not export Windows 95 functions, does not export non-existing functions, and does not import from itself anymore. Note: This is one of the many failings of RBUILD the CMAKE system has helped us discover. I believe these issues are serious enough to warrant an immediate sync with trunk, but rest assured, there are many more completely broken, infinitely-regressing things that we discovered while switching to CMAKE.
Timo Kreuzer
- [ros-dev] [ros-diffs] [tkreuzer] 48461: [NTOSKRNL] - Fixed FsRtlIsNameInExpression to make it properly handle * in expressions - Fix formatting - Patch by Pierre Schweitzer - Fixes everything See issue #5541 for more details.
Ged Murphy
- [ros-dev] [ros-diffs] [tkreuzer] 48461: [NTOSKRNL] - Fixed FsRtlIsNameInExpression to make it properly handle * in expressions - Fix formatting - Patch by Pierre Schweitzer - Fixes everything See issue #5541 for more details.
Colin Finck
- [ros-dev] [ros-diffs] [tkreuzer] 48576: [WIN32K] - co_IntTranslateMouseMessage: properly initialize *HitTest and only send WM_NCHITTEST when the message is going to be removed - co_IntPeekMessage: Prevent possible use of uninitialized HitTest by ProcessMou
Monkey Libre
- [ros-dev] Bugzilla interface
Timo Kreuzer
- [ros-dev] Bugzilla interface
Ged Murphy
- [ros-dev] Bugzilla interface
Aleksey Bragin
- [ros-dev] Bugzilla interface
Javier Agustìn Fernàndez Arroyo
- [ros-dev] Bugzilla interface
Javier Agustìn Fernàndez Arroyo
- [ros-dev] Bugzilla interface
Ged Murphy
- [ros-dev] Bugzilla interface
Javier Agustìn Fernàndez Arroyo
- [ros-dev] Bugzilla interface
Ged Murphy
- [ros-dev] Bugzilla interface
Javier Agustìn Fernàndez Arroyo
- [ros-dev] Bugzilla interface
James Holland
- [ros-dev] Bugzilla interface
Olaf Siejka
- [ros-dev] Bugzilla Workflow project
Olaf Siejka
- [ros-dev] MyReactOS: A Proof of Concept
victor martinez
- [ros-dev] MyReactOS: A Proof of Concept
Adam Kachwalla
- [ros-dev] MyReactOS: A Proof of Concept
Aleksey Bragin
- [ros-dev] Re : Fedora 13 Build Error
James Tabor
- [ros-dev] Regarding 48632
Ros Arm
- [ros-dev] Regarding 48632
Michael Martin
- [ros-dev] Truncating ros-diffs subject lines
Colin Finck
- [ros-dev] Truncating ros-diffs subject lines
James Tabor
- [ros-dev] Truncating ros-diffs subject lines
Sven Barth
- [ros-dev] Truncating ros-diffs subject lines
ShadowFlare
- [ros-dev] Truncating ros-diffs subject lines
Colin Finck
- [ros-dev] Trunk locked
Aleksey Bragin
- [ros-dev] Trunk locked
Timo Kreuzer
- [ros-dev] Trunk locked
Olaf Siejka
Last message date:
Sat Aug 28 14:32:37 UTC 2010
Archived on: Sat Aug 28 19:39:50 UTC 2010
This archive was generated by
Pipermail 0.09 (Mailman edition).