reactos.git
13 years ago[Win32k]
Michael Martin [Thu, 19 Aug 2010 10:52:36 +0000 (10:52 +0000)]
[Win32k]
- For SetTimer nIDEvent can be 0 in which case return 1. Zero still needs to be used for nIDEvent when killing the timer. Fixes bug 5553.
- Modify windowless timers to use IDEvent values decrementing from the max number of windowless timers vice incrementing from 1. Done to match windows behavior.

svn path=/trunk/; revision=48568

13 years ago[NTOSKRNL]
Timo Kreuzer [Thu, 19 Aug 2010 10:03:03 +0000 (10:03 +0000)]
[NTOSKRNL]
- Add missing parentheses. Fixes "cont"

svn path=/trunk/; revision=48567

13 years ago[NTOSKRNL]
Timo Kreuzer [Thu, 19 Aug 2010 09:03:36 +0000 (09:03 +0000)]
[NTOSKRNL]
Fix handling of next instruction in kdbg.
Patch by Daniel Zimmermann, modified by Aleksey Bragin

See issue #4457 for more details.

svn path=/trunk/; revision=48566

13 years ago[NTOSKRNL]
Timo Kreuzer [Thu, 19 Aug 2010 08:50:23 +0000 (08:50 +0000)]
[NTOSKRNL]
- Implement support for /BURNMEMORY option.
- Don't stop boot on bad memory type
Patch by Jay Smith, modified by Aleksey, even more modified by me.

See issue #4957 for more details.

svn path=/trunk/; revision=48565

13 years ago[NETSTAT]
Cameron Gutman [Thu, 19 Aug 2010 06:25:20 +0000 (06:25 +0000)]
[NETSTAT]
- Allocate memory for the TCP table properly
- Only netstat -a should show UDP connections
- Patch by Jan Roeloffzen [jroeloffzen at hotmail dot com]

svn path=/trunk/; revision=48564

13 years ago[IPHLPAPI]
Cameron Gutman [Thu, 19 Aug 2010 06:05:35 +0000 (06:05 +0000)]
[IPHLPAPI]
- Copy our TCP table into the caller's buffer if we actually get one (not yet!)
- Return ERROR_NO_DATA if we fail to get anything from TCP/IP
- Fixes bug #4185

svn path=/trunk/; revision=48563

13 years ago[NTOSKRNL]
Timo Kreuzer [Thu, 19 Aug 2010 05:10:16 +0000 (05:10 +0000)]
[NTOSKRNL]
- Initialize the Parent member of the new Vad to NULL. This also initializes the Balance to 0 aka RtlBalancedAvlTree
Should fix the failed assertion that randomly occurs.

svn path=/trunk/; revision=48562

13 years ago[IP]
Cameron Gutman [Thu, 19 Aug 2010 02:41:54 +0000 (02:41 +0000)]
[IP]
- Fix a major bug in socket closure. Prior to this, a socket with pending IRPs that could not be satisfied when the socket was closed would be destroyed without completing the pending requests. Now, we check all of our IRP queues if we get a SEL_FIN signal and kill all the requests that cannot be satisfied immediately.
- Maybe it's just me but Firefox 2 seems much more responsive after this fix (like actually usable!)

svn path=/trunk/; revision=48561

13 years ago[FASTFAT]
Timo Kreuzer [Wed, 18 Aug 2010 23:21:15 +0000 (23:21 +0000)]
[FASTFAT]
Make our FAT driver PNP aware.
On PNP requests it should handle, it will return STATUS_NOT_IMPLEMENTED.
On the others, it will pass them to lower driver.
This is the first step outside the kernel into getting IoGetRelatedTargetDevice (and so notifications) working.
It doesn't work at the moment, as class2 doesn't handle PNP.

[NTOSKRNL]
Some fixes to IRP cancelation process:
- Renamed IopRemoveThreadIrp() to IopDisassociateThreadIrp() to match Windows 2k3
- Made dead IRP global, to make its debug easier.
- IopDisassociateThreadIrp(), Handle dead IRP at dispatch level, using IoCompletionLock.
- IopDisassociateThreadIrp(), Use the proper error code to write the entry to logs.
- IoCancelIrp(), removed non needed ASSERT, which is even not present on Windows, removed corresponding var as well.
- IoCancelIrp(), fixed parameters to KeBugCheckEx() call.
- IoCancelThreadIo() is pageable.
- IoCancelThreadIo() under Windows isn't using given thread, but using current. Do the same here.
All that stuff doesn't fix bug #5550, it comes from outside.

Patch by Pierre Schweitzer, modified by me to make it compile. If it breaks anything, don't blame me!

svn path=/trunk/; revision=48560

13 years ago[NTOSKRNL]
Timo Kreuzer [Tue, 17 Aug 2010 16:04:46 +0000 (16:04 +0000)]
[NTOSKRNL]
- Simplified IopGetRelatedTargetDevice implementation
- Added notification in case of success in NtSetVolumeInformationFile()
Patch by Pierre Schweitzer

svn path=/trunk/; revision=48559

13 years ago[NTOSKRNL]
Timo Kreuzer [Mon, 16 Aug 2010 20:18:25 +0000 (20:18 +0000)]
[NTOSKRNL]
- Fixed IoGetRequestorProcess, IoGetRequestorProcessId, IoGetRequestorSessionId
- Pass user buffer in NtNotifyChangeDirectoryFile
- Fixed magic value in IoGetPagingIoPriority
Patch by Pierre Schweitzer

svn path=/trunk/; revision=48557

13 years ago[NTDLL]
Timo Kreuzer [Mon, 16 Aug 2010 01:57:09 +0000 (01:57 +0000)]
[NTDLL]
LdrPerformRelocations: Delta is a LONG_PTR rather than ULONG_PTR

See issue #5577 for more details.

svn path=/trunk/; revision=48556

13 years ago[WIN32K]
Timo Kreuzer [Mon, 16 Aug 2010 01:29:13 +0000 (01:29 +0000)]
[WIN32K]
- Remove IntEngExtEscape stub. This function is completely useless. If the driver doesn't provide a DrvEscape, the function should simply fail and must return 0, not -1.
- If a NULL surface is passed, pass on NULL pso to the driver function

See issue #4563 for more details.

svn path=/trunk/; revision=48555

13 years ago[user32_winetest]
Timo Kreuzer [Mon, 16 Aug 2010 00:06:55 +0000 (00:06 +0000)]
[user32_winetest]
Skip 2 tests that hang on reactos. Patch by Giannis Adamopoulos

svn path=/trunk/; revision=48554

13 years ago[NTOSKRNL]
Aleksey Bragin [Sun, 15 Aug 2010 08:48:03 +0000 (08:48 +0000)]
[NTOSKRNL]
- Revert 48546. The code was correct, and there is more of same code in other places which firstly cancels the IRP and then moves to the next entry. The actual bug is somewhere else.
See issue #5550 for more details.

svn path=/trunk/; revision=48551

13 years ago- IRP_MN_QUERY_RESOURCE_REQUIREMENTS half support now, PciQueryRequirements, PciAlloc...
evb [Sat, 14 Aug 2010 18:06:19 +0000 (18:06 +0000)]
- IRP_MN_QUERY_RESOURCE_REQUIREMENTS half support now, PciQueryRequirements, PciAllocateIoRequrementsList, full implement, but PciBuildRequirementsList return 0 always for now
- Debug helpers: PciDebugPrintIoResReqList, PciDebugPrintIoResource, PciDebugCmResourceTypeToText
Now hit assert Assertion '(DeviceNode->Flags & DNF_ADDED)' failed at ntoskrnl/io/pnpmgr/pnpmgr.c line 201, too night to debug, maybe tomorow

svn path=/trunk/; revision=48550

13 years ago- IRP_MN_QUERY_RESOURCES support for PDO (PciQueryResources, PciAllocateCmResourceLis...
evb [Sat, 14 Aug 2010 17:33:10 +0000 (17:33 +0000)]
- IRP_MN_QUERY_RESOURCES support for PDO (PciQueryResources, PciAllocateCmResourceList), now remain IRP_MN_QUERY_RESOURCE_REQUIREMENTS to last device stack interogration from PNPMGR

svn path=/trunk/; revision=48549

13 years ago- Add support for PnP IRP to PDO: IRP_MN_QUERY_BUS_INFORMATION (PciQueryBusInformatio...
evb [Sat, 14 Aug 2010 17:09:20 +0000 (17:09 +0000)]
- Add support for PnP IRP to PDO: IRP_MN_QUERY_BUS_INFORMATION (PciQueryBusInformation), IRP_MN_QUERY_ID (PciQueryId), IRP_MN_QUERY_DEVICE_TEXT (PciQueryDeviceText), IRP_MN_QUERY_CAPABILITIES (PciQueryCapabilities), IRP_MN_QUERY_DEVICE_RELATIONS (PciQueryTargetDeviceRelations implement, PciQueryEjectionRelations, stub)
- Stub support for PnP IRP to PDO: IRP_MN_QUERY_RESOURCE_REQUIREMENTS (PciQueryRequirements), IRP_MN_QUERY_RESOURCES(PciQueryResources)
- Add support for PnP IRP to FDO: IRP_MN_QUERY_CAPABILITIES (handle in PciFdoIrpQueryDeviceCapabilities)
- Build device capability UI number (PciDetermineSlotNumber), use PIR$ (seem support broken, need to check loader) or device property for bus not root
- Use parent attachee device and this PDO for build device/system wake states, latency, device/system power mappings
- PCI-ID manage support: PciInitIdBuffer, PciIdPrintf, PciIdPrintfAppend
- Debug helper: PciDebugDumpQueryCapabilities
- Thanks richard for advise + beer
PCI-X driver now pass 10000 codes lines!

svn path=/trunk/; revision=48548

13 years ago[NTOSKRNL]
Cameron Gutman [Sat, 14 Aug 2010 14:55:12 +0000 (14:55 +0000)]
[NTOSKRNL]
- Move to the next entry in the thread IRP list before calling IoCancelIrp because if everything works as expected and IoCompleteRequest is called, we could end up with the IRP ripped out from under us before can move to the next element
- See issue #5550 for details.

svn path=/trunk/; revision=48546

13 years ago[WS2_32]
Cameron Gutman [Sat, 14 Aug 2010 13:48:31 +0000 (13:48 +0000)]
[WS2_32]
- Create a temporary variable and pass that to WSAIoctl for the bytes returned value instead of passing argp and corrupting the value we just retrieved

svn path=/trunk/; revision=48545

13 years ago[WINLOGON]
Aleksey Bragin [Fri, 13 Aug 2010 22:02:17 +0000 (22:02 +0000)]
[WINLOGON]
- NtInitializeRegistry expects not just CM_BOOT_FLAG_ACCEPTED, but a number of the accepted control set to be added to it. After fixing this, NtInitializeRegistry won't fail with STATUS_INVALID_PARAMETER (someone should check return status for errors...) anymore. As a result lazy flushing is enabled.

svn path=/trunk/; revision=48536

13 years ago[FASTFAT_NEW]
Aleksey Bragin [Thu, 12 Aug 2010 21:59:22 +0000 (21:59 +0000)]
[FASTFAT_NEW]
- Implement asynchronous and delayed close operations.
- Fix a logical bug in FatiClose code, which led to always closing the file object (and freeing respective FCB/VCB/CCB), and then checking flags and queuing a delayed close. Instead, it should only try to close if it's not marked as a delayed close.
- Support stuff added (queues, mutex for closing lists, etc).
- Misc cleanup, debug silencing.

svn path=/trunk/; revision=48525

13 years ago- I hate catching these things as the commit is going out
Cameron Gutman [Thu, 12 Aug 2010 13:15:35 +0000 (13:15 +0000)]
- I hate catching these things as the commit is going out

svn path=/trunk/; revision=48523

13 years ago[MSAFD]
Cameron Gutman [Thu, 12 Aug 2010 13:13:19 +0000 (13:13 +0000)]
[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 wshtcpip's WSHIoctl is unimplemented)

svn path=/trunk/; revision=48522

13 years ago[FASTFAT_NEW]
Aleksey Bragin [Wed, 11 Aug 2010 12:18:24 +0000 (12:18 +0000)]
[FASTFAT_NEW]
- Plug in a commented out notification call in case of cleanup.
- Implement a case of device info query.
- Implement lock control.

svn path=/trunk/; revision=48518

13 years ago[NTOSKRNL]
Timo Kreuzer [Wed, 11 Aug 2010 01:22:06 +0000 (01:22 +0000)]
[NTOSKRNL]
Stop using the new paged pool code, before ExpLoadInitialProcess is called. For so far unknown reasons, it causes evil things to happen. Fixes "Assertion NewSize < pool->UserSize failed"
See issue #5551 for more details.

svn path=/trunk/; revision=48517

13 years ago[DDK]
Amine Khaldi [Tue, 10 Aug 2010 20:50:55 +0000 (20:50 +0000)]
[DDK]
- De-duplicate __GNU_EXTENSION.
- Apply a consistent formatting.

svn path=/trunk/; revision=48514

13 years ago[FASTFAT]
Aleksey Bragin [Tue, 10 Aug 2010 20:08:31 +0000 (20:08 +0000)]
[FASTFAT]
Pierre Schweitzer
- Fix volume opening on FAT volume. Commented out a directory check as it doesn't match realized tests, in spite of what's in WDK.

svn path=/trunk/; revision=48513

13 years ago[XDK]
Amine Khaldi [Tue, 10 Aug 2010 13:53:10 +0000 (13:53 +0000)]
[XDK]
- Introduce some _ANONYMOUS_STRUCT and NONAMELESSUNION based definitions.
[DDK]
- Update XDK generated headers to reflect the recent changes.
- Update some header guards.
- Add some missing new lines at the end of files.
- Fix PUSB_DEVICE_HANDLE guard.
- Introduce some _ANONYMOUS_STRUCT and NONAMELESSUNION based definitions.
[PSDK]
- Update some header guards.
- Add missing new line at the end of driverspecs.h
[NDIS]
- Update the ndis header guard.

svn path=/trunk/; revision=48511

13 years ago[PSDK]
Amine Khaldi [Tue, 10 Aug 2010 11:27:27 +0000 (11:27 +0000)]
[PSDK]
- Add some missing headers' headers.

svn path=/trunk/; revision=48510

13 years ago[PSDK]
Amine Khaldi [Tue, 10 Aug 2010 10:25:10 +0000 (10:25 +0000)]
[PSDK]
- Add WINELIB_NAME_AW and DECL_WINELIB_TYPE_AW to the wine specific imm.h.

svn path=/trunk/; revision=48509

13 years ago[WS2_32]
Cameron Gutman [Tue, 10 Aug 2010 07:14:42 +0000 (07:14 +0000)]
[WS2_32]
- Fix a crash when running with ws2_32 debugging on

svn path=/trunk/; revision=48507

13 years agoAdd include guards in wine/ddk/imm.h and inlude it from wine/imm.h
Timo Kreuzer [Tue, 10 Aug 2010 01:08:03 +0000 (01:08 +0000)]
Add include guards in wine/ddk/imm.h and inlude it from wine/imm.h

svn path=/trunk/; revision=48503

13 years ago[PSDK]
Amine Khaldi [Tue, 10 Aug 2010 00:46:27 +0000 (00:46 +0000)]
[PSDK]
- Move INPUTCONTEXT and ImmLockIMC to the wine imm.h
- Add wingdi.h inclusion.

svn path=/trunk/; revision=48502

13 years ago[WIN32K] Fix NtGdiMaskBlt to handle patterns correctly, use SRCAND, which is more...
Timo Kreuzer [Mon, 9 Aug 2010 23:28:19 +0000 (23:28 +0000)]
[WIN32K] Fix NtGdiMaskBlt to handle patterns correctly, use SRCAND, which is more optimized, instead of DSTERASE, and set fore and background colors correctly to not destroy alpha channel.
[SHELL32] Use MaskBlt to draw the shortcut overlay
Finally fixes bug 5455. Forever. (I hope.)

svn path=/trunk/; revision=48501

13 years ago[PSDK]
Amine Khaldi [Mon, 9 Aug 2010 22:53:07 +0000 (22:53 +0000)]
[PSDK]
- Add some missing imm.h definitions.
[IMM32]
- Fix imm.h inclusion.
[IPHLPAPI]
- Fix tdiinfo.h inclusion.

svn path=/trunk/; revision=48500

13 years ago[DDK]
Amine Khaldi [Mon, 9 Aug 2010 22:20:05 +0000 (22:20 +0000)]
[DDK]
- Move several headers to PSDK where they belong.
[PSDK]
- ddrawi.h : Fix pUnkOuter.

svn path=/trunk/; revision=48499

13 years ago[FASTFAT_NEW]
Aleksey Bragin [Mon, 9 Aug 2010 21:33:17 +0000 (21:33 +0000)]
[FASTFAT_NEW]
- Implement opening an existing DCB.
- Add a bunch of useful macros and helper functions and use them throughout the code.
- Implement in-memory setendoffile set information class. On-disk to be done.
- Implement user fs ctrl wrapper with stubs.
- Fill up QueryVolumeInfo with classes it should handle. Silence up a warning about classes it should reject.

svn path=/trunk/; revision=48498

13 years ago[DDK]
Amine Khaldi [Mon, 9 Aug 2010 20:58:47 +0000 (20:58 +0000)]
[DDK]
- Move several headers to PSDK where they belong.
- Add _ANONYMOUS_UNION.
- De-duplicate __GNU_EXTENSION definition from several headers.
- Remove semicolons after the closing bracket of extern "C"
- Add a missing one in ioaccess.h
- Apply a consistent formatting.
[PSDK]
- De-duplicate __GNU_EXTENSION definition from several headers.
- Add missing extern "C" opening bracket in ddkernel.h and remove the semicolon from the closing one.
- Add __GNU_EXTENSION definition to ddraw.h and remove the semicolon after the closing bracket of extern "C"
- Add missing extern "C" closing bracket in ddrawi.h
- Remove semicolons after the closing brackets of extern "C" in dinput.h, dmemmgr.h and sti.h
- Apply a consistent formatting.
[DXSDK]
- Move ddraw.h to PSDK.

svn path=/trunk/; revision=48497

13 years agoCarlo Bramix
Aleksey Bragin [Mon, 9 Aug 2010 20:41:41 +0000 (20:41 +0000)]
Carlo Bramix
- Prevent possible out-of-bounds access.
See issue #5505 for more details.

svn path=/trunk/; revision=48495

13 years agoPierre Schweitzer
Aleksey Bragin [Mon, 9 Aug 2010 20:38:12 +0000 (20:38 +0000)]
Pierre Schweitzer
- A better fix for CdfsIsNameLegalDOS8Dot3.

See issue #2404 for more details.

svn path=/trunk/; revision=48494

13 years ago[DHCPCSVC]
Cameron Gutman [Mon, 9 Aug 2010 20:37:32 +0000 (20:37 +0000)]
[DHCPCSVC]
- Set the SO_BROADCAST option to 1 before we send data to the broadcast address so we don't get stonewalled by mswsock
- DHCP is now compatible with mswsock_new

svn path=/trunk/; revision=48493

13 years agoSupport PCI device resource dicsovery for limit and current now, so bridge + device...
evb [Mon, 9 Aug 2010 19:07:52 +0000 (19:07 +0000)]
Support PCI device resource dicsovery for limit and current now, so bridge + device BAR functionning
PciScanBus second pass enabled: PciProcessBus, most stubs now until VGA/ISA system tested
PciClassifyDeviceType implement as helper function
PCI Enumeration 100% complete!

svn path=/trunk/; revision=48492

13 years ago[WS2_32]
Cameron Gutman [Mon, 9 Aug 2010 15:42:51 +0000 (15:42 +0000)]
[WS2_32]
- Check the return value of WSPSelect instead of the error number because the error number doesn't have to be initialized if the function doesn't return SOCKET_ERROR

svn path=/trunk/; revision=48491

13 years ago[FASTFAT_NEW]
Aleksey Bragin [Sun, 8 Aug 2010 10:43:28 +0000 (10:43 +0000)]
[FASTFAT_NEW]
- Implement close and cleanup infrastructure.
- Add necessary FCB and VCB counters.
- Add missing op and file locks initialization.
- A lot of small cleanups, improvements, and other things, bringing fastfat_new much closer to a minimally working state.

svn path=/trunk/; revision=48487

13 years agoPierre Schweitzer
Aleksey Bragin [Sun, 8 Aug 2010 08:24:19 +0000 (08:24 +0000)]
Pierre Schweitzer
- Implemented CdfsIsNameLegalDOS8Dot3 and use it to check filenames. It avoids
calling Rtl* functions that need NLS. (Modified merge of 35501).
See issue #2404 for more details.

svn path=/trunk/; revision=48486

13 years ago[TASKMGR]
Timo Kreuzer [Sun, 8 Aug 2010 03:41:33 +0000 (03:41 +0000)]
[TASKMGR]
- Use messages instead of events to notify the update threads
- Fixes a handle leak
- Fix some typos
- Patch by Carlo Bramini (carlo.bramix at libero dot it)

See issue #3104 for more details.

svn path=/trunk/; revision=48484

13 years ago[KERNEL32] Convert default locales to actual locale identifiers, before passing to...
Timo Kreuzer [Sat, 7 Aug 2010 22:41:23 +0000 (22:41 +0000)]
[KERNEL32] Convert default locales to actual locale identifiers, before passing to IsValidLocale(). Fixes corrupted file size strings in explorer.
[SHLWAPI] Fix some comments (As usual: "should be sent to wine")
Patch by Rafal HarabieÅ„, <rafalh1992 AT o2 DOT pl>

See issue #5557 for more details.

svn path=/trunk/; revision=48482

13 years ago[DDK]
Timo Kreuzer [Sat, 7 Aug 2010 21:29:00 +0000 (21:29 +0000)]
[DDK]
Make functions in ntstrsafe.h static, so they can be used in more than one file. Maybe that encourages people using it instead of unsafe and banned apis.

svn path=/trunk/; revision=48481

13 years ago[NTOSKRNL]
Timo Kreuzer [Sat, 7 Aug 2010 21:22:00 +0000 (21:22 +0000)]
[NTOSKRNL]
Deferred success...

svn path=/trunk/; revision=48480

13 years ago[NTOS]: Aleksey wants an easy way to see debug messages coming from one process vs...
Sir Richard [Sat, 7 Aug 2010 16:16:17 +0000 (16:16 +0000)]
[NTOS]: Aleksey wants an easy way to see debug messages coming from one process vs. another, which is an obvious idea that should've done a long time ago. Now you can see who is generating a given debug message (including the thread).

svn path=/trunk/; revision=48479

13 years ago[KERNEL32]
Timo Kreuzer [Sat, 7 Aug 2010 16:07:13 +0000 (16:07 +0000)]
[KERNEL32]
Go back to spec file. Don't worry it's fixed.

svn path=/trunk/; revision=48478

13 years ago[KERNEL32]: Aleksey wants debug channels, I agree this is the way forward. Leverage...
Sir Richard [Sat, 7 Aug 2010 16:01:30 +0000 (16:01 +0000)]
[KERNEL32]: Aleksey wants debug channels, I agree this is the way forward. Leverage existing NT infrastructure to enable Windows-compatible debug channel support, instead of using a UNIX-based 3rd party library. Same debug channel names as before have been re-added, but using NT Debug Filters.

svn path=/trunk/; revision=48477

13 years ago[KERNEL32]
Aleksey Bragin [Sat, 7 Aug 2010 09:10:06 +0000 (09:10 +0000)]
[KERNEL32]
- That's what happens when most of the commit's changes are not related to most of the commit message. Fixes build.

svn path=/trunk/; revision=48476

13 years ago[KERNEL32]: While working on the CMAKE branch, Amine and myself discovered a rather...
Sir Richard [Sat, 7 Aug 2010 05:02:58 +0000 (05:02 +0000)]
[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@20, while the 3-parameter Foo function woudl be Foo@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@3 (that has pushed 3 parameters) to the receiving side of Foo@5 (that is about to pop 5 parameters).
            Even -if- decorations WERE to be applied, Foo@12 would STILL succeed, because of the first feature, which would enable the export of Foo@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@0->StubLastError@0->__impGetLastError@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.

svn path=/trunk/; revision=48475

13 years ago[IPHLPAPI]
Cameron Gutman [Fri, 6 Aug 2010 23:01:10 +0000 (23:01 +0000)]
[IPHLPAPI]
- Comment out the GetAdaptersAddresses code and add the stub back
- Fixes Firefox 3.x (bug 5399)

svn path=/trunk/; revision=48474

13 years ago[CRT]
Timo Kreuzer [Fri, 6 Aug 2010 22:42:07 +0000 (22:42 +0000)]
[CRT]
- Remove "implementations" of __lc_collate_cp, __lc_handle and __lc_codepage. These are not functions, but varuables, implemented as MSVCRT_*
- add ___lc_codepage_func and ___lc_handle_func taken from wine
- Fix msvcrt spec file
- Fixes compilation with gcc 4.5.1

svn path=/trunk/; revision=48473

13 years ago- (Hack)fix build.
Aleksey Bragin [Fri, 6 Aug 2010 12:04:12 +0000 (12:04 +0000)]
- (Hack)fix build.

svn path=/trunk/; revision=48469

13 years ago[CDFS]
Aleksey Bragin [Thu, 5 Aug 2010 21:57:02 +0000 (21:57 +0000)]
[CDFS]
- MAXIMUM_VOLUME_LABEL_LENGTH is in bytes, not in characters. Fix struct definition and access beyond the buffer. Spotted by Carlo Bramini.
- Trim trailing spaces from the volume label name, instead of stopping at the first encountered space. Fix by Carlo Bramini.
See issue #5505 for more details.

svn path=/trunk/; revision=48468

13 years ago- Sync ole32 and oleaut32 regtests to Wine-1.3.
Aleksey Bragin [Thu, 5 Aug 2010 21:28:34 +0000 (21:28 +0000)]
- Sync ole32 and oleaut32 regtests to Wine-1.3.

svn path=/trunk/; revision=48467

13 years ago- Sync ole32 and oleaut32 to Wine-1.3.
Aleksey Bragin [Thu, 5 Aug 2010 21:19:46 +0000 (21:19 +0000)]
- Sync ole32 and oleaut32 to Wine-1.3.

svn path=/trunk/; revision=48466

13 years ago[SHELL32]
Timo Kreuzer [Thu, 5 Aug 2010 14:42:56 +0000 (14:42 +0000)]
[SHELL32]
When creating a shortcut icon and we have 32 bpp, use GdiAlphaBlend to create the final bitmap. This is neccessary, since we want to support alpha channels and those are destroyed when using SRCPAINT or any similar ROPs on the alpha bitmap (not a bug, Windows works like that, too). We could use MaskBlt, if it would work correctly, but on reactos it destroys the alpha channel as well (bug!), it's also most likely slower then the current solution.
Fixes broken overlay icons.
See issue #5455 for more details.

svn path=/trunk/; revision=48463

13 years ago[WIN32K]
Timo Kreuzer [Thu, 5 Aug 2010 14:32:30 +0000 (14:32 +0000)]
[WIN32K]
- Copy the alpha channel as well when doing RGB<->BGR color translations.

svn path=/trunk/; revision=48462

13 years ago[NTOSKRNL]
Timo Kreuzer [Thu, 5 Aug 2010 12:23:23 +0000 (12:23 +0000)]
[NTOSKRNL]
- Fixed FsRtlIsNameInExpression to make it properly handle * in expressions
- Fix formatting
- Patch by Pierre Schweitzer
- Fixes everything

See issue #5541 for more details.

svn path=/trunk/; revision=48461

13 years ago[KERNEL32]
Timo Kreuzer [Wed, 4 Aug 2010 13:33:37 +0000 (13:33 +0000)]
[KERNEL32]
Fix a check in ContainsPath. Patch by Gabriel Ilardi.

See issue #5478 for more details.

svn path=/trunk/; revision=48456

13 years ago[FASTFAT]
Timo Kreuzer [Wed, 4 Aug 2010 13:06:47 +0000 (13:06 +0000)]
[FASTFAT]
- Fix a check in VfatCreateFile. Patch by Pierre Schweitzer.

See issue #4571 for more details.

svn path=/trunk/; revision=48453

13 years ago[GDI32]
Timo Kreuzer [Wed, 4 Aug 2010 00:01:30 +0000 (00:01 +0000)]
[GDI32]
Fix parameter check in GetTextExtentExPointA/W. Patch by Kamil Hornicek. Fixes bug 5486, bug 5507 and bug 5511

svn path=/trunk/; revision=48446

13 years agoAdd some tests for GetTextExtentExPoint. Dedicated to Pigglesworth
Timo Kreuzer [Tue, 3 Aug 2010 23:15:20 +0000 (23:15 +0000)]
Add some tests for GetTextExtentExPoint. Dedicated to Pigglesworth

svn path=/trunk/; revision=48445

13 years ago[WIN32K]
Timo Kreuzer [Tue, 3 Aug 2010 21:36:39 +0000 (21:36 +0000)]
[WIN32K]
Protect access to the result pointer from KeUserModeCallback with SEH. Fixes a possible kernel mode crash.

svn path=/trunk/; revision=48437

13 years ago[KERNEL32]
Aleksey Bragin [Tue, 3 Aug 2010 20:23:43 +0000 (20:23 +0000)]
[KERNEL32]
- Sync lcformat.c to Wine-1.3. This fixes (a number of potential) problems introduced by new nls data files being synced recently and led to crashes on locales having different months genitives. Original issue confirmed by Sergey Gusev <evilslon@mail.ru> and Igor Paliychuk.

svn path=/trunk/; revision=48433

13 years ago[CRT]
Timo Kreuzer [Tue, 3 Aug 2010 16:09:33 +0000 (16:09 +0000)]
[CRT]
Implement a proper version of _assert. It nows shows a message box with the details and let's the user choose to either abort, debug or ignore the assertion.
See bug 5486, bug 5507, bug 5511

svn path=/trunk/; revision=48432

13 years ago[WS2_32]: Fix buffer overrun in getservbyname. Patch by Alexander Yastrebov - menone7...
Cameron Gutman [Mon, 2 Aug 2010 21:31:50 +0000 (21:31 +0000)]
[WS2_32]: Fix buffer overrun in getservbyname. Patch by Alexander Yastrebov - menone7 at gmail dot com

svn path=/trunk/; revision=48424

13 years agoXcode....
Cameron Gutman [Mon, 2 Aug 2010 21:26:12 +0000 (21:26 +0000)]
Xcode....

svn path=/trunk/; revision=48423

13 years ago[NTOS]: Fix kernel memory corruption when dequeuing a PnP event
Cameron Gutman [Mon, 2 Aug 2010 21:22:34 +0000 (21:22 +0000)]
[NTOS]: Fix kernel memory corruption when dequeuing a PnP event

svn path=/trunk/; revision=48422

13 years ago[PSDK]
Timo Kreuzer [Mon, 2 Aug 2010 14:29:09 +0000 (14:29 +0000)]
[PSDK]
add missing LPCOLORREF to windef.h

svn path=/trunk/; revision=48414

13 years agoThere is nothing to say about this...
Cameron Gutman [Mon, 2 Aug 2010 03:52:52 +0000 (03:52 +0000)]
There is nothing to say about this...

svn path=/trunk/; revision=48410

13 years ago[AFD]: BytesAvailable needs to be updated even when peeking so we don't run off the...
Cameron Gutman [Sun, 1 Aug 2010 23:52:23 +0000 (23:52 +0000)]
[AFD]: BytesAvailable needs to be updated even when peeking so we don't run off the end of our buffer

svn path=/trunk/; revision=48405

13 years agoForgetting to save really sucks. Sorry again for the wasted commit.
Cameron Gutman [Sun, 1 Aug 2010 23:46:57 +0000 (23:46 +0000)]
Forgetting to save really sucks. Sorry again for the wasted commit.

svn path=/trunk/; revision=48404

13 years ago[AFD]: Fix read data corruption when peeking at network data (TDI_RECEIVE_PEEK is...
Cameron Gutman [Sun, 1 Aug 2010 23:42:33 +0000 (23:42 +0000)]
[AFD]: Fix read data corruption when peeking at network data (TDI_RECEIVE_PEEK is specified for a stream socket)

svn path=/trunk/; revision=48403

13 years agoFix a typo
Cameron Gutman [Sun, 1 Aug 2010 23:20:31 +0000 (23:20 +0000)]
Fix a typo

svn path=/trunk/; revision=48402

13 years agoFix a copy-paste mistake and remove an unused variable
Cameron Gutman [Sun, 1 Aug 2010 21:08:53 +0000 (21:08 +0000)]
Fix a copy-paste mistake and remove an unused variable

svn path=/trunk/; revision=48401

13 years ago[AFD]: Revert r42674 and part of r47156
Cameron Gutman [Sun, 1 Aug 2010 21:00:40 +0000 (21:00 +0000)]
[AFD]: Revert r42674 and part of r47156

svn path=/trunk/; revision=48400

13 years ago[DHCPCSVC]: Revert part of r48215
Cameron Gutman [Sun, 1 Aug 2010 20:34:10 +0000 (20:34 +0000)]
[DHCPCSVC]: Revert part of r48215

svn path=/trunk/; revision=48399

13 years ago[rtl]
Giannis Adamopoulos [Sun, 1 Aug 2010 16:34:22 +0000 (16:34 +0000)]
[rtl]
- Use __inline instead of __inline__ to fix compilation with msvc

svn path=/trunk/; revision=48398

13 years ago[hal]
Giannis Adamopoulos [Sun, 1 Aug 2010 16:27:48 +0000 (16:27 +0000)]
[hal]
- define REGISTERCALL in order to replace __attribute__((regparm(3))) and fix compilation with msvc. It was used only as an optimization so it is safe to be defined as FASTCALL for msvc. For gcc it is still defined as __attribute__((regparm(3)))

svn path=/trunk/; revision=48397

13 years ago[INCLUDE/WINE]
Aleksey Bragin [Sat, 31 Jul 2010 22:39:22 +0000 (22:39 +0000)]
[INCLUDE/WINE]
- Update Wine-specific headers to Wine-1.3.
- Remove unneeded 16 bit header, and add a bit of stuff into another legacy header.
- Indicate in config.h that there is a freetype library present.

svn path=/trunk/; revision=48388

13 years ago[PSDK]
Aleksey Bragin [Sat, 31 Jul 2010 22:36:22 +0000 (22:36 +0000)]
[PSDK]
- Make some winuser.h functions conforming to MS PSDK.

svn path=/trunk/; revision=48387

13 years ago- Fix build, sorry.
Aleksey Bragin [Sat, 31 Jul 2010 22:20:34 +0000 (22:20 +0000)]
- Fix build, sorry.

svn path=/trunk/; revision=48386

13 years ago[LSASRV]
Eric Kohl [Sat, 31 Jul 2010 22:02:13 +0000 (22:02 +0000)]
[LSASRV]
Add more well known sids to the lookup list.

svn path=/trunk/; revision=48385

13 years ago[PSDK]
Aleksey Bragin [Sat, 31 Jul 2010 21:40:40 +0000 (21:40 +0000)]
[PSDK]
- Get back to old/compatible way of declaring dummy unions and structs for IMAGE_RESOURCE_DIRECTORY_ENTRY. Also, second nameless structure is called DUMMYSTRUCTNAME3 to be compatible with Wine's code which, for some reason, expects WORD Id wrapped into yet another struct, depending on endiannes.

svn path=/trunk/; revision=48384

13 years ago[freeldr]
Gabriel Ilardi [Sat, 31 Jul 2010 21:00:40 +0000 (21:00 +0000)]
[freeldr]
- Patch by Carlo Bramini reviewed by lassy:
The CF must be tested when reading time because the legacy DS12x87
chip shows a condition where it's updating its time registers and if it's the
case then the call should be retried later. Now the time is valid when both CF flags for date and time are good at the same time.
It's better to send the correct value of CF with the proper field to the REGS structure instead of hoping that the flag won't be changed by compiled code.
In the Int386() function I did the fix for acquiring the status flags to send to the software interrupt.
I also think it is also a good idea to always clear the direction flag before
doing movsb/movsw/movsd in this function. Since we are working with DOS stuff,
the state of the direction register could be unknown, who knows what happens
after those INT opcodes. Afterall I don't think that adding these two "cld"
would be a big problem.
See issue #2786 for more details.

svn path=/trunk/; revision=48383

13 years ago[explorer]
Giannis Adamopoulos [Sat, 31 Jul 2010 12:16:03 +0000 (12:16 +0000)]
[explorer]
- Using msvc doesn't mean using ms sdks

svn path=/trunk/; revision=48381

13 years ago[PSDK]
Aleksey Bragin [Sat, 31 Jul 2010 12:02:46 +0000 (12:02 +0000)]
[PSDK]
- Fix GetTextCharsetInfo prototype according to MS Platform SDK.

svn path=/trunk/; revision=48379

13 years ago[LSASRV]
Eric Kohl [Sat, 31 Jul 2010 11:24:16 +0000 (11:24 +0000)]
[LSASRV]
- Move all includes into a common header file.
- Create a (still incomplete) well-known-sid lookup table and use it in LsarLookupSids.
- Add missing file headers.

svn path=/trunk/; revision=48378

13 years ago[LSASRV]
Eric Kohl [Sat, 31 Jul 2010 09:06:42 +0000 (09:06 +0000)]
[LSASRV]
Replace hard-coded privilege names by privilege names from the PSDK.

svn path=/trunk/; revision=48377

13 years ago[browseui]
Giannis Adamopoulos [Sat, 31 Jul 2010 07:53:06 +0000 (07:53 +0000)]
[browseui]
- keep the hacky declaration of SHANDLE_PTR and make it work with msvc as well
- Make BEGIN_MSG_MAP compatible with msvc

svn path=/trunk/; revision=48376

13 years ago[PSDK]
Eric Kohl [Sat, 31 Jul 2010 07:09:40 +0000 (07:09 +0000)]
[PSDK]
Add missing privilege names.

svn path=/trunk/; revision=48375

13 years ago[shell32]
Giannis Adamopoulos [Fri, 30 Jul 2010 18:37:51 +0000 (18:37 +0000)]
[shell32]
- Fix a compilation error with msvc

svn path=/trunk/; revision=48371

13 years ago[ndis.h]
Giannis Adamopoulos [Fri, 30 Jul 2010 17:05:17 +0000 (17:05 +0000)]
[ndis.h]
- Fix compilation with msvc

svn path=/trunk/; revision=48370

13 years ago[TASKMGR]
Gabriel Ilardi [Thu, 29 Jul 2010 20:17:09 +0000 (20:17 +0000)]
[TASKMGR]
- Make the caption the same as the app title so that bring to focus can work as expected in Slovak and other languages as well. Add a note for translators.
See issue #5533 for more details.

svn path=/trunk/; revision=48367