Cameron Gutman [Thu, 11 Mar 2010 22:36:22 +0000 (22:36 +0000)]
- Use the possible resources not the current resources for IRP_MN_QUERY_RESOURCE_REQUIREMENTS
- Initialize MaximumVector for IRQs, MaximumChannel for DMA, and Alignment for Port
svn path=/trunk/; revision=46121
Amine Khaldi [Thu, 11 Mar 2010 22:33:08 +0000 (22:33 +0000)]
[NTIFS]
- Group related definitions
- Add ExInitializePushLock, SeReportSecurityEventWithSubCategory, SeAccessCheckFromState, SeStopImpersonatingClient and TOKEN_* definitions
- Update SE_EXPORTS
svn path=/branches/header-work/; revision=46120
Cameron Gutman [Thu, 11 Mar 2010 22:15:21 +0000 (22:15 +0000)]
- Fix the resource parsing loops to correct a memory corruption issue
- Return the correct failure status if ExAllocatePool fails
svn path=/trunk/; revision=46119
Johannes Anderwald [Thu, 11 Mar 2010 21:52:15 +0000 (21:52 +0000)]
[KSPROXY]
- Fix trunk
svn path=/trunk/; revision=46118
Sir Richard [Thu, 11 Mar 2010 21:41:19 +0000 (21:41 +0000)]
[WIN32K]: Enable the alignment code and reduce the number of hacks, leaving only one for 1bpp top-down output (Freetype?) which doesn't seem to like when the lDelta is aligned to the correct bit-boundary. This should fix the crashes and graphic cltches recently introduced.
svn path=/trunk/; revision=46117
Johannes Anderwald [Thu, 11 Mar 2010 21:38:13 +0000 (21:38 +0000)]
[KSPROXY]
- Recreate resource file with visual studio
- Fix compilation with msvc
- Copy extra format buffer in IEnumMediaTypes::Next
- Create the pin handle in IPin::ReceiveConnection
- Implement IPin::Disconnect for the input pin
- Enumerate media formats and pass it to constructor of CEnumMediaTypes
- Check if the passed format is null in CInputPin::CheckFormat
- Copy extra format buffer after KSDATAFORMAT in the pin connection request
- Implement KsGetMediaType function
- Implement ISpecifyPropertyPages, IKsPropertySet, IKsControl, IStreamBuilder, IKsPinFactory for the output pin
- Implement IPin::ReceiveConnection, IPin::EnumMediaTypes for output pin
- Stub interfaces for IReferenceClock, IMediaSeeking, IKsTopology, IKsAggregateControl, IKsClockPropertySet, ISpecifyPropertyPages, IPersistStream for proxy filter
- Implement IAMDeviceRemoval, IKsControl, IAMFilterMiscFlags, IKsPropertySet interface for proxy filter
svn path=/trunk/; revision=46116
Johannes Anderwald [Thu, 11 Mar 2010 21:15:46 +0000 (21:15 +0000)]
[PSDK]
- Add a few types required for ksproxy
svn path=/trunk/; revision=46115
Dmitry Gorbachev [Thu, 11 Mar 2010 20:59:47 +0000 (20:59 +0000)]
Comment out RegisterServiceProcess' stub.
svn path=/trunk/; revision=46114
Dmitry Gorbachev [Thu, 11 Mar 2010 20:59:24 +0000 (20:59 +0000)]
Output PCH even when full dependencies are enabled.
svn path=/trunk/; revision=46113
Kamil Hornicek [Thu, 11 Mar 2010 19:42:59 +0000 (19:42 +0000)]
[SHELL32]
- according to msdn ppidl should be set to NULL if an error occurs
- fixes shlfolder winetest crash
svn path=/trunk/; revision=46112
Sir Richard [Thu, 11 Mar 2010 19:26:00 +0000 (19:26 +0000)]
[WIN32K]: Revert accidental changes to IntCreateBitmap.
svn path=/trunk/; revision=46111
Kamil Hornicek [Thu, 11 Mar 2010 18:48:46 +0000 (18:48 +0000)]
- missed this one.. fix build?
svn path=/trunk/; revision=46110
Kamil Hornicek [Thu, 11 Mar 2010 18:40:26 +0000 (18:40 +0000)]
- fix build
svn path=/trunk/; revision=46109
evb [Thu, 11 Mar 2010 18:19:58 +0000 (18:19 +0000)]
- Remove bits saying dithering supported, since code patented and removed (also, ReactOS win32k not support dithering calls!).
svn path=/trunk/; revision=46108
Sir Richard [Thu, 11 Mar 2010 18:19:02 +0000 (18:19 +0000)]
[FRAMEBUF]: Use precompiled header.
svn path=/trunk/; revision=46107
evb [Thu, 11 Mar 2010 17:56:27 +0000 (17:56 +0000)]
- Added support IOCTRL_QUERY_PUBLIC_ACCESS_RANGES, IOCTRL_SET_PALETTE_REGISTERS, IOCTRL_QUERY_CURRENT_MODE, used by test Standard VGA-only display driver.
- Code from NT4 DDK Cirrus miniport with some mods by me.
svn path=/trunk/; revision=46106
Amine Khaldi [Thu, 11 Mar 2010 17:51:43 +0000 (17:51 +0000)]
[NTIFS]
- Group related definitions
- Add InterlockedPushListSList, ExAdjustLookasideDepth and ExDisableResourceBoost
- Add some asserts
svn path=/branches/header-work/; revision=46105
Sir Richard [Thu, 11 Mar 2010 17:49:44 +0000 (17:49 +0000)]
[WIN32K]: EngCreateBitmap/IntCreateBitmap don't make much sense (code written back in 2004...). RLEs don't have scanlines by definitions, bit depth alignments and sizing is not done, newer display formats (compressed) are not supported correctly, zero-width surfaces fail because the size is ignored during scanline calculation, etc. These bugs caused eVb's test VGA display driver to fail as it needs to create a zero-depth shadow surface, which would end up with pv0Bits == NULL in the current implementation (and crash during ROPs/BitBLTs). Attempted to rewrite as much of it to 1) make Windows drivers work with it 2) continue the current hacks needed for ReactOS drawing. Note that the broken IntCreateBitmap is still used by non EngXXX interfaces to reduce the change of breakage, but keep in mind the function is entirely wrong.
svn path=/trunk/; revision=46104
Sir Richard [Thu, 11 Mar 2010 17:46:15 +0000 (17:46 +0000)]
[WIN32K]: Stop memory corruption when InstalledDisplayDrivers has more than one driver in the list. Note that driver loading is inherently broken right now, as the list of drivers is not parsed properly (this breaks eVb's VGA/VBE driver).
svn path=/trunk/; revision=46103
Aleksey Bragin [Thu, 11 Mar 2010 17:37:30 +0000 (17:37 +0000)]
[COMDLG32]
- Sync to Wine-1.1.40.
svn path=/trunk/; revision=46102
Aleksey Bragin [Thu, 11 Mar 2010 17:32:43 +0000 (17:32 +0000)]
[PSDK]
- Add GdiConvertToDevmodeW declaration (needed for comdlg32). Arwinss PSDK changes should really be merged in.
svn path=/trunk/; revision=46101
Amine Khaldi [Thu, 11 Mar 2010 17:27:44 +0000 (17:27 +0000)]
[NTDDK]
- Continue moving ntddk related definitions from winddk.h, fixing the conflicts caused by r46097
- pKdUnmapVirtualAddress and pKdMapPhysicalMemory64 : Add missing FlushCurrentTLB
- Update HAL_DISPATCH and HalDispatchTable definitions
- DDKAPI -> NTAPI
- IMAGE_INFO : Add missing ExtendedInfoPresent
- Update (X86) KPCR definition
svn path=/branches/header-work/; revision=46100
Sylvain Petreolle [Thu, 11 Mar 2010 16:36:11 +0000 (16:36 +0000)]
[WLANSVC]
Correctly start and report status to the service manager.
svn path=/trunk/; revision=46099
Kamil Hornicek [Thu, 11 Mar 2010 14:57:05 +0000 (14:57 +0000)]
[SHELL32]
- partial Wine sync, fixes crashing shlfileop winetest:
Use the current directory when copying to an empty destination.
Fix a memory leak in SHFileOperationW.
Vincent Povirk <vincent at codeweavers dot com>
svn path=/trunk/; revision=46098
Timo Kreuzer [Thu, 11 Mar 2010 14:49:41 +0000 (14:49 +0000)]
[FREELDR] Include ntddk.h instead of winddk.h
[RAMDISK] Add missing DO_XIP definition (not in WDK/DDK)
[FASTFAT] Remove duplicate VOLUME_IS_DIRTY definition
[HAL] Add case stubs for missing HAL_QUERY_INFORMATION_CLASS members
[NDK] Fix DbgPrompt prototype
[NTDDK]
- Move from winddk.h: _KUSER_SHARED_DATA (updated), pHalIoAssignDriveLetters, PHAL_RESET_DISPLAY_PARAMETERS, HAL_DISPATCH, HalDispatchTable, PCREATE_PROCESS_NOTIFY_ROUTINE, PCREATE_THREAD_NOTIFY_ROUTINE, IMAGE_INFO, PLOAD_IMAGE_NOTIFY_ROUTINE, BUS_DATA_TYPE (updated), PROCESSINFOCLASS (updated), THREADINFOCLASS (updated), DISK_SIGNATURE, PTIMER_APC_ROUTINE, Exfi386InterlockedIncrementLong, Exfi386InterlockedDecrementLong, Exfi386InterlockedExchangeUlong
- Add pHalGetAcpiTable, PCI_ERROR_HANDLER_CALLBACK, pHalSetPciErrorHandlerCallback
[WDM] Add _DECL_HAL_KE_IMPORT, Reorder sections (types before functions)
svn path=/branches/header-work/; revision=46097
Kamil Hornicek [Thu, 11 Mar 2010 11:47:13 +0000 (11:47 +0000)]
fix build?
svn path=/trunk/; revision=46096
Kamil Hornicek [Thu, 11 Mar 2010 11:34:29 +0000 (11:34 +0000)]
[KERNEL32] GetConsoleProcessList is implemented, this prevents the console winetest from crashing
svn path=/trunk/; revision=46095
Timo Kreuzer [Thu, 11 Mar 2010 11:32:54 +0000 (11:32 +0000)]
[KTMTYPES]
Fix the UOW hack, use special case for C++
Thanks to Dmitry Gorbachev for the solution.
svn path=/branches/header-work/; revision=46094
Aleksey Bragin [Thu, 11 Mar 2010 10:28:34 +0000 (10:28 +0000)]
[OLEAUT32]
- Sync to Wine-1.1.40.
svn path=/trunk/; revision=46093
James Tabor [Thu, 11 Mar 2010 03:29:01 +0000 (03:29 +0000)]
- Fix test build!
svn path=/trunk/; revision=46092
James Tabor [Thu, 11 Mar 2010 03:28:32 +0000 (03:28 +0000)]
- Fix build!
svn path=/trunk/; revision=46091
James Tabor [Thu, 11 Mar 2010 02:43:51 +0000 (02:43 +0000)]
- Add new menu structures.
svn path=/trunk/; revision=46090
Timo Kreuzer [Thu, 11 Mar 2010 00:47:36 +0000 (00:47 +0000)]
[KMTYPES]
Add a compilation hack for gcc
svn path=/branches/header-work/; revision=46089
Amine Khaldi [Thu, 11 Mar 2010 00:35:13 +0000 (00:35 +0000)]
[NTDDK]
- Move several ntddk.h related definition from winddk.h
- Add IRP_MN_FLUSH_AND_PURGE and several DO_* definition
- Update HAL_QUERY_INFORMATION_CLASS and HAL_SET_INFORMATION_CLASS members
- Fix DEBUG_DEVICE_DESCRIPTOR structure definition
svn path=/branches/header-work/; revision=46088
Amine Khaldi [Wed, 10 Mar 2010 23:49:42 +0000 (23:49 +0000)]
[NTDDK]
- Move several ntddk.h related definition from winddk.h
- Group related definitions
svn path=/branches/header-work/; revision=46086
Amine Khaldi [Wed, 10 Mar 2010 23:45:06 +0000 (23:45 +0000)]
[NTDDK]
- Move several ntddk.h related definition from winddk.h
- Group related definitions
- MmAllocateNonCachedMemory : ULONG NumberOfBytes -> SIZE_T NumberOfBytes
- DbgPrompt : Add NTSYSAPI and MaximumResponseLength -> Length
- RtlLargeIntegerDivide : static __inline -> __inline
svn path=/branches/header-work/; revision=46085
Amine Khaldi [Wed, 10 Mar 2010 23:09:27 +0000 (23:09 +0000)]
[NTDDK]
- Move several ntddk.h related definition from winddk.h
- Group related definitions
- ZwSetTimer : BOOLEAN WakeTimer -> BOOLEAN ResumeTimer
- IoWritePartitionTableEx : *PartitionBuffer -> *DriveLayout
- HalPutDmaAdapter : AdapterObject -> DmaAdapter
- MmAllocateNonCachedMemory : ULONG NumberOfBytes -> SIZE_T NumberOfBytes
svn path=/branches/header-work/; revision=46083
Cameron Gutman [Wed, 10 Mar 2010 22:25:40 +0000 (22:25 +0000)]
- We forget that AE_BUFFER_OVERFLOW is normal and expected since our buffer length is 0 so don't fail if that status is returned
- For any device that actually had resources we would return STATUS_SUCCESS without building a resource list and if the device didn't have resources we would end up freeing a NULL pointer, storing stack trash in Irp->IoStatus.Information, and then returning STATUS_SUCCESS
- Fixes reporting device resources (and possibly the VBox additions crash with ACPI enabled)
svn path=/trunk/; revision=46080
Timo Kreuzer [Wed, 10 Mar 2010 22:23:12 +0000 (22:23 +0000)]
[NTIFS] Add back some members of OBJECT_INFORMATION_CLASS, with a comment that they are missing in WDK
svn path=/branches/header-work/; revision=46079
Timo Kreuzer [Wed, 10 Mar 2010 22:05:56 +0000 (22:05 +0000)]
Add extern "C"
svn path=/branches/header-work/; revision=46078
Christoph von Wittich [Wed, 10 Mar 2010 21:52:40 +0000 (21:52 +0000)]
[OLE32_WINETEST]
sync OLE32_WINETEST with wine 1.1.40
svn path=/trunk/; revision=46077
Christoph von Wittich [Wed, 10 Mar 2010 21:52:00 +0000 (21:52 +0000)]
[PSDK]
add extern GUID_NULL
svn path=/trunk/; revision=46076
Sylvain Petreolle [Wed, 10 Mar 2010 21:49:42 +0000 (21:49 +0000)]
[ACPI]
Fix implicit declaration warnings
svn path=/trunk/; revision=46075
Timo Kreuzer [Wed, 10 Mar 2010 21:44:50 +0000 (21:44 +0000)]
Add kmtypes.h
svn path=/branches/header-work/; revision=46074
Cameron Gutman [Wed, 10 Mar 2010 21:11:23 +0000 (21:11 +0000)]
- Quit building a useless IO_RESOURCE_REQUIREMENTS_LIST (and leaking memory) in response to IRP_MN_QUERY_RESOURCES
- Actually store the IO_RESOURCE_REQUIREMENTS_LIST in Irp->IoStatus.Information in response to IRP_MN_QUERY_RESOURCE_REQUIREMENTS so the PnP manager can use it (and fixes another memory leak)
svn path=/trunk/; revision=46073
Daniel Reimer [Wed, 10 Mar 2010 20:44:19 +0000 (20:44 +0000)]
Sync sccbase, slbcsp, usp10, wldap32, wuapi and xinput1_3 to Wine 1.1.40
Theres more, like: comctl32, comdlg32, oleaut32, riched20, sti, version, winemp3.acm, wininet and winhttp which is above my skills or looks strange, like its not really synched (winemp3.acm!!) Feel free to play with them.
svn path=/trunk/; revision=46072
Timo Kreuzer [Wed, 10 Mar 2010 20:41:13 +0000 (20:41 +0000)]
[NTDEF] Add PROCESSOR_NUMBER
[NTDDK] Define only CONTEXT, not PCONTEXT, it is already defined by wdm.h, add missing #endif, move OSVERSIONINFO*, CONFIGURATION_TYPE, CONFIGURATION_INFORMATION,PIO_QUERY_DEVICE_ROUTINE, DRIVER_REINITIALIZE and PHYSICAL_MEMORY_RANGE from winddk, add RTL_SPLAY_LINKS
svn path=/branches/header-work/; revision=46071
Sir Richard [Wed, 10 Mar 2010 18:29:10 +0000 (18:29 +0000)]
[NTOS]: List still-running processes at kernel shutdown. Useful for debugging shutdown code later.
svn path=/trunk/; revision=46069
Sir Richard [Wed, 10 Mar 2010 18:28:45 +0000 (18:28 +0000)]
[SCM]: Fix SCM shutdown. Now all services are stopped (in my working copy with the CSRSS shutdown code).
svn path=/trunk/; revision=46068
Sir Richard [Wed, 10 Mar 2010 18:28:03 +0000 (18:28 +0000)]
[DDK]: Add MEMORY_BARRIER missing from ioaccess.h.
svn path=/trunk/; revision=46067
Amine Khaldi [Wed, 10 Mar 2010 17:42:51 +0000 (17:42 +0000)]
[NTDDK]
- Move several ntddk.h related definition from winddk.h
- Group related definitions
- Add CONTEXT_XSTATE definition
- RtlUpperString and RtlCopyString : constify SourceString
- RtlCompareString and RtlEqualString : constify the first two params
- Update guards around IoAllocateAdapterChannel
- Remove duplicate IoRegisterBootDriverReinitialization
svn path=/branches/header-work/; revision=46064
Daniel Reimer [Wed, 10 Mar 2010 17:03:25 +0000 (17:03 +0000)]
Sync mscms, msg711.acm, msgm32.acm, msimtf. msnet32, msrle32, mssip32, msvcrt20, msvfw32, msvidc32 and nddeapi to Wine 1.1.40
Even more will come.
svn path=/trunk/; revision=46063
Daniel Reimer [Wed, 10 Mar 2010 16:21:22 +0000 (16:21 +0000)]
Sync avifil32, hnetcfg, initpki, localspl, localui, mciavi32, mciqtz32, mciseq and mlang to Wine 1.1.40
More will come.
svn path=/trunk/; revision=46062
Sylvain Petreolle [Wed, 10 Mar 2010 16:18:32 +0000 (16:18 +0000)]
[WLANSVC]
- Add required libary iphlpapi
svn path=/trunk/; revision=46061
Amine Khaldi [Wed, 10 Mar 2010 16:10:32 +0000 (16:10 +0000)]
[NTIFS]
Remove RTL_SPLAY_LINKS definition
svn path=/branches/header-work/; revision=46060
Daniel Reimer [Wed, 10 Mar 2010 15:00:25 +0000 (15:00 +0000)]
Updated README.WINE.
Additionally I added a * to all Autosyncs which lie a bit back already. Will look through them and check which are still recent.
svn path=/trunk/; revision=46058
Aleksey Bragin [Wed, 10 Mar 2010 14:28:56 +0000 (14:28 +0000)]
[OLE32]
- Sync to Wine-1.1.40. Along with improvements, it provides many memory corruption fixes.
svn path=/trunk/; revision=46056
James Tabor [Wed, 10 Mar 2010 10:19:49 +0000 (10:19 +0000)]
- [User32] Send WM_CANCELMODE in EnableWindow.
svn path=/trunk/; revision=46054
Sir Richard [Wed, 10 Mar 2010 06:50:15 +0000 (06:50 +0000)]
[KERNEL32]: Remove debug output.
svn path=/trunk/; revision=46053
Sir Richard [Wed, 10 Mar 2010 06:49:53 +0000 (06:49 +0000)]
[CSRSRV]: Move the new process/thread management functions into new, dedicated files. Export some of the functions, so that win32csr can use them by linking to csrsrv. Last change needed for barebones user-mode shutdown support.
svn path=/trunk/; revision=46052
Sir Richard [Wed, 10 Mar 2010 04:59:39 +0000 (04:59 +0000)]
[CSRSS]: Split off CSRSS into a more Windows-friendly model. CSRSS.EXE is simply a stub which loads CSRSRV.DLL, where all the actual code is present.
[CSRSRV]: Mostly moved all the current CSRSS code into CSRSRV, with some very minor changes to get it workking.
[CSRSRV]: Add some more code from Alex's CSRSRV, such as thread dereferencing/deallocation, hacked to work.
[CSRSRV]: Make CsrTerminateProcess destroy each CSR thread in that process, otherwise we were always leaking a handle, so processes never died. Because of this, primary tokens would remain "in use", and when umpnpmgr attempted to do a "Create Process as User" for the second+ time, the call would fail since the token from the first process was still around. This fixed that regression from the mailing list.
svn path=/trunk/; revision=46051
Timo Kreuzer [Wed, 10 Mar 2010 04:16:52 +0000 (04:16 +0000)]
[FREELDR] Define _BLDR_ for WDK header compatibility
[HAL] Define _NTHALDLL_ for WDK header compatibility, get rif of DECLSPEC_IMPORT header hack
[NDK/RTL] Fix some Rtl prototypes (PCHAR -> PCCH)
[NDK] Fix ZwOpenEvent prototype
[NTIFS] Fix definition of NTKERNELAPI, move some types, fix PRTL_ALLOCATE_STRING_ROUTINE, PRTL_REALLOCATE_STRING_ROUTINE, PRTL_FREE_STRING_ROUTINE, define CTL_CODE, DEVICE_TYPE_FROM_CTL_CODE, FILE_ANY_ACCESS, FILE_SPECIAL_ACCESS, FILE_READ_ACCESS, FILE_WRITE_ACCESS identical to wdm.h, remove duplicate RtlGenerate8dot3Name, remove ZwOpenEvent
[NTPOAPI] Guard some types with #ifndef _PO_DDK_
[WDM] Create reactos compatible definition of NTKERNELAPI, add KDPC_WATCHDOG_INFORMATION, BATTERY_REPORTING_SCALE, fix ALIGN_UP_POINTER_BY, guard some types with #ifndef _PO_DDK_, update POWER_INFORMATION_LEVEL, make some FILE_DEVICE_ definitions identical to ntifs.h, fix HalAllocateCommonBuffer
svn path=/branches/header-work/; revision=46050
Sir Richard [Wed, 10 Mar 2010 04:12:25 +0000 (04:12 +0000)]
[NTOS]: No good deed goes unpunished. Continuing the novel/saga from a couple of days ago, it seems that now that impersonation works, various code paths are being tickled into existence. For example, it would seem parts of the system now attempt setting primary tokens. This would cause an assertion, since PspAssignPrimaryToken incorrectly dereferenced the token (leading to a double-dereference) due to an off-by-! mistake.
svn path=/trunk/; revision=46049
Sir Richard [Wed, 10 Mar 2010 03:35:18 +0000 (03:35 +0000)]
[CSRSS]: Differentiate between first-try and second-try shutdown. In the first try, the console server should defer to the user/win32k server to attempt shutdown for a non-console app. However, if we end up with a second try because this did not happen, then the console server takes matters in its own hands and calls the CTRL-C handler (with some exceptions, such as system/service apps, or apps not belonging to the LUID).
svn path=/trunk/; revision=46048
Sir Richard [Wed, 10 Mar 2010 03:32:17 +0000 (03:32 +0000)]
[KERNEL32]: As indicated by the comment, kernel32 should always connect to the console server, even for non-console apps (the latter will just basically ignore the request). This is needed to (at minimum) setup the Ctrl-C handler, as otherwise, only "true console" apps will have a handler, even though internally, all apps have such a handler. This is what CSRSS needs to call internally for shutting down non-GUI apps, for example. (The default CTRL-C handler will just call ExitProcess).
svn path=/trunk/; revision=46047
Timo Kreuzer [Wed, 10 Mar 2010 00:56:07 +0000 (00:56 +0000)]
merge r46045
svn path=/trunk/; revision=46046
Timo Kreuzer [Wed, 10 Mar 2010 00:31:06 +0000 (00:31 +0000)]
[ASM]
Don't check for _MSC_VER to decide if the assembly source is going to be compiled with ML or AS, instead check for _USE_ML
Fixes compiling .S files with AS, when using MSVC
svn path=/branches/header-work/; revision=46045
Hervé Poussineau [Tue, 9 Mar 2010 22:36:52 +0000 (22:36 +0000)]
Link SCSI miniport drivers only to scsiport
svn path=/trunk/; revision=46044
James Tabor [Tue, 9 Mar 2010 21:14:52 +0000 (21:14 +0000)]
- [User32] sync spy to wine 1.1.40
svn path=/trunk/; revision=46043
Sir Richard [Tue, 9 Mar 2010 20:23:22 +0000 (20:23 +0000)]
[KERNEL32/CSRSS]: Register new Win32 threads with CSRSS. Add a bunch of lookup, creation, allocation, hashing and CSR thread management routines from the unused CSRSRV in trunk.
[CSRSS]: Bang in the new thread support in a bunch of places, including creating static server threads. It's very hacked and handle duplication doesn't work 100% reliably, but it gets the job done.
[CSRSS]: Add CsrGetProcessLuid, CsrImpersonateClient, CsrRevertToSelf, CsrShutdownProcesses, CsrFindProcessForShutdown required for user-mode shutdown. Right now we are able to reliably enumerate user apps (in the user LUID) and then service/system apps (in the LOCAL SYSTEM LUID).
svn path=/trunk/; revision=46042
Sir Richard [Tue, 9 Mar 2010 20:13:19 +0000 (20:13 +0000)]
[KERNEL32]: Bug fix CTRL-C handler registration/deregistration/notification, needed for correct console shutdown behavior.
svn path=/trunk/; revision=46041
Sir Richard [Tue, 9 Mar 2010 18:22:25 +0000 (18:22 +0000)]
[CSRSS]: Fix yet another bug in the unused csrss code.
svn path=/trunk/; revision=46040
Amine Khaldi [Tue, 9 Mar 2010 18:03:40 +0000 (18:03 +0000)]
[NTIFS]
- Group related definitions
- Add missing *_INCREMENT, SYSTEM_PAGE_PRIORITY_BITS, SYSTEM_PAGE_PRIORITY_LEVELS and INVALID_PROCESSOR_INDEX definitions
- KAPC_STATE : ApcListHead[2] -> ApcListHead[MaximumMode]
- KQUEUE : make CurrentCount volatile
- Add several missing Ke* functions declarations
svn path=/branches/header-work/; revision=46039
Sylvain Petreolle [Tue, 9 Mar 2010 17:21:29 +0000 (17:21 +0000)]
Convert battery.inf to UTF-16
Add French translation.
Add battery.inf and fdc.inf to syssetup process.
Floppy disk controllers and batteries now appear correctly in device manager.
Dedicated to aicom ;)
svn path=/trunk/; revision=46038
Amine Khaldi [Tue, 9 Mar 2010 17:12:58 +0000 (17:12 +0000)]
[NTIFS]
- Group related definitions
- Add REPARSE_*, FILE_PIPE_CLIENT_PROCESS_BUFFER_EX, VIRTUAL_STORAGE_TYPE, STORAGE_QUERY_DEPENDENT_VOLUME_* and PUBLIC_OBJECT_* structures
- Add LINK_TRACKING_INFORMATION_TYPE, LINK_TRACKING_INFORMATION and REMOTE_LINK_TRACKING_INFORMATION enums
- Update OBJECT_INFORMATION_CLASS and FILE_PIPE_CLIENT_PROCESS_BUFFER definitions
- Add REPARSE_GUID_DATA_BUFFER_HEADER_SIZE, IsReparseTag*, FSCTL_LMR_* and FSCTL_PIPE_* macros
- Add missing MAXIMUM_REPARSE_DATA_BUFFER_SIZE, IO_REPARSE_TAG_*, FILE_PIPE_COMPUTER_NAME_LENGTH and QUERY_DEPENDENT_VOLUME_REQUEST_FLAG_* definitions
svn path=/branches/header-work/; revision=46037
Amine Khaldi [Tue, 9 Mar 2010 16:31:24 +0000 (16:31 +0000)]
[NTIFS]
- More work on FS related structures and definitions
svn path=/branches/header-work/; revision=46036
Amine Khaldi [Tue, 9 Mar 2010 16:02:52 +0000 (16:02 +0000)]
[NTIFS]
- Add several missing FS related enums, structures and definitions
svn path=/branches/header-work/; revision=46035
Amine Khaldi [Tue, 9 Mar 2010 15:06:29 +0000 (15:06 +0000)]
[NTIFS]
- Group related definitions
- Add CSV_NAMESPACE_INFO, FSCTL_QUERY_FAT_BPB_BUFFER and several missing FS related structures and definitions
- Add a bunch of FSCTL_* macros
svn path=/branches/header-work/; revision=46034
Amine Khaldi [Tue, 9 Mar 2010 13:53:15 +0000 (13:53 +0000)]
[NTIFS]
- Group related definitions
- Add several missing Nt* function declarations
- Add REMOTE_PROTOCOL_FLAG_LOOPBACK, REMOTE_PROTOCOL_FLAG_OFFLINEseveral and several FILE_* definitions
- Add missing FILE_* structures
svn path=/branches/header-work/; revision=46033
Amine Khaldi [Tue, 9 Mar 2010 13:11:21 +0000 (13:11 +0000)]
- Add a couple of Lsa* function declarations
- Add missing MSV1_0* related definitions, enums, structs and macros
svn path=/branches/header-work/; revision=46030
Sir Richard [Tue, 9 Mar 2010 10:35:58 +0000 (10:35 +0000)]
[NTOS]: While attempting to ressucitate the user-mode shutdown code in CSRSS (disabled since 2006), it seemed clear that one of the main steps is to obtain the caller's LUID in order to kill the right processes. This LUID is obtained from the current thread's token, and we know it's the callers since we're supposed to impersonate the caller. Unfortunately, impersonation failed, making the whole process fail.
Impersonation failed because NtImpersonateThread was actually inverting the THREAD_IMPERSONATE rights, asking the client thread for the server's permissions, and vice versa. Fixing this resulted in yet another failure.
Analysis of this failure showed that even opening the server (ie: current) thread for THREAD_DIRECT_IMPERSONATION failed, which is unusual since the current thread should have access to all its rights. This is determined in PspCreateThread when the ETHREAD->GrantedAccess field is set.
Continuing onto this path, tracing revealed that GrantedAccess was merely 0x1607F and not 0x1F3FF as expected, meaning that not all rights were given, including the impersonate right (0x200), explaining the failure, but not the deeper reason behind it.
Attempting to identify which code path set this GrantedAccess, the SepAccessCheck routine came to light. A bug there caused MAXIMUM_ALLOWED accesses to fail in certain scenarios, such as when the object had no security descriptor, because MAXIMUM_ALLOWED would be granted as an absolute value, when instead of it is a flag that should grant GENERIC_ALL. Fixing that bug, the failure continued.
Further analysis identified that the Administrators SID was being found with GENERIC_READ + WRITE + EXECUTE access, and no SID was found for GENERIC_ALL access. This happened when searching the system token's default DACL, which is assigned to the kernel (but for kernel-mode callers, this check was skipped), smss, winlogon, etc.
The code for creating this system token was heavily hacked, so the function to create the system token, as well as NtCreateToken were refactored to use a common piece of token-creating code. Furthermode, the system token was correctly created with Local System as the user, and Administrators as one of the groups. Finally, SeDefaultDacl was used (already setup properly) instead of a badly configured Default DACL. The new shared code also correctly sets the SE_GROUP_ENABLED flag on all SE_GROUP_MANDATORY groups, and scans tokens to set the TOKEN_HAS_ADMIN_GROUP and TOKEN_HAS_TRAVERSE_PRIVILEGE flags which were not previously set.
With the correct system token and default DACL, the Local System SID was now found, but the failure continued. This was revealed to be due to an even deeper rooted problem, as the SepIsSidInToken routine checked for SE_GROUP_ENABLED before listing a SID as "present". Although this is correct for actual groups, the User SID will never have the SE_GROUP_ENABLED flag as it is not a group. This caused any granted access ACE belonging to a user (instead of a group) to be ignored, causing either access check failures, or limited rights returned (in the MAXIMUM_ALLOWED case).
Upon fixing this bug, the NtImpersonateThread call finally returned success, since the rights were now correct. Promptly upon calling NtOpenThreadToken to query the LUID however, the system ASSERTED with FALSE.
The code at fault was a line in NtOpenThreadTokenEx which forcefully ASSERTed if the impersonation code path was taken, presumably because this was never tested, and ReactOS would actually always fail impersonation attempts due to the bugs fixed above. This routine was thus quickly reworked to fix some mistakes (such as forgetting to actually impersonate the client, incorrect referencing/dereferencing of thread/tokens, and assumptions about DACL creation success).
Having fixed the NtOpenThreadTokenEx routine, the LUID query now went through for the impersonated token, but soon causing a user-mode crash, due to an incorrect parameter reference in the CsrGetProcessLuid function in the csrsrv code by Alex (which I copy/pasted to reduce code duplication).
Fixing this final bug finally allowed the correct LUID to be queried and I was able to continue development of not-yet-commited user-mode shutdown code.
svn path=/trunk/; revision=46028
Sir Richard [Tue, 9 Mar 2010 09:26:46 +0000 (09:26 +0000)]
[WIN32K]: Stub-plement NtUserSetInformationThread for UserInitiateShutdown and UserEndShutdown. I think we're supposed to notify Winlogon at some point, and check for races. Part of new shutdown code.
svn path=/trunk/; revision=46027
James Tabor [Tue, 9 Mar 2010 03:48:43 +0000 (03:48 +0000)]
- [User32_winetest] Restore Timer test.
svn path=/trunk/; revision=46026
James Tabor [Tue, 9 Mar 2010 03:48:05 +0000 (03:48 +0000)]
- [User32] Fix timer crash when calling proc.
svn path=/trunk/; revision=46025
Timo Kreuzer [Tue, 9 Mar 2010 03:00:48 +0000 (03:00 +0000)]
merge r46023
svn path=/branches/header-work/; revision=46024
Sir Richard [Tue, 9 Mar 2010 02:29:25 +0000 (02:29 +0000)]
[SETUPLDR]: Fix build breakage caused by hpoussin, by linking minihal into setupldr as well.
svn path=/trunk/; revision=46023
Timo Kreuzer [Tue, 9 Mar 2010 00:45:15 +0000 (00:45 +0000)]
revert part of 46020, adding back po types
svn path=/branches/header-work/; revision=46022
Amine Khaldi [Tue, 9 Mar 2010 00:19:55 +0000 (00:19 +0000)]
Sync with trunk head
svn path=/branches/header-work/; revision=46021
Timo Kreuzer [Tue, 9 Mar 2010 00:17:56 +0000 (00:17 +0000)]
- Move some definitions from wdm.h to ntpoapi.h
- Add ALIGN_DOWN_BY, ALIGN_UP_BY, ALIGN_DOWN_POINTER_BY, ALIGN_UP_POINTER_BY
- fix pshpack1.h inclusion
- PCHAR -> PSTR in RtlAssert
svn path=/branches/header-work/; revision=46020
Amine Khaldi [Mon, 8 Mar 2010 23:02:39 +0000 (23:02 +0000)]
[NTIFS]
- Group related definitions
- Add NtSetInformationThread function declaration
- Add SE_ADT_PARAMETER_TYPE enum
- Add SE_ADT_OBJECT_TYPE, SE_ADT_PARAMETER_ARRAY_ENTRY, SE_ADT_ACCESS_REASON and SE_ADT_PARAMETER_ARRAY structures
- Add SE_MAX_AUDIT_PARAMETERS, SE_MAX_GENERIC_AUDIT_PARAMETERS, SE_ADT_PARAMETERS_* and SE_ADT_PARAMETER_* definitions
- Add LSAP_SE_ADT_PARAMETER_ARRAY_TRUE_SIZE macro
svn path=/branches/header-work/; revision=46019
Amine Khaldi [Mon, 8 Mar 2010 22:30:14 +0000 (22:30 +0000)]
[NTIFS]
- Group related definitions
- Add several Rtl* function declarations
- Add RTL_SYSTEM_VOLUME_INFORMATION_FOLDER, DEVICE_TYPE, FILE_DEVICE_*, METHOD_* and FILE_*_ACCESS definitions
- Add CTL_CODE, DEVICE_TYPE_FROM_CTL_CODE and METHOD_FROM_CTL_CODE macros
svn path=/branches/header-work/; revision=46018
Hervé Poussineau [Mon, 8 Mar 2010 22:04:38 +0000 (22:04 +0000)]
[freeldr] Load an additional SCSI driver if present (NTBOOTSYS.SYS on boot partition), to increase number of known storage devices.
Works only with very simple miniport drivers.
svn path=/trunk/; revision=46017
Hervé Poussineau [Mon, 8 Mar 2010 21:42:18 +0000 (21:42 +0000)]
[headers] Fix type of PRTL_HEAP_PARAMETERS in ifssupp.h. Will be required soon
svn path=/trunk/; revision=46016
Hervé Poussineau [Mon, 8 Mar 2010 21:40:29 +0000 (21:40 +0000)]
Fix include directories
svn path=/trunk/; revision=46015
Amine Khaldi [Mon, 8 Mar 2010 21:38:43 +0000 (21:38 +0000)]
[NTIFS]
- Group related definitions
- Add several Rtl* function declarations (See diff for details)
- Add MAX_UNICODE_STACK_BUFFER_LENGTH definition
- RtlConvertSidToUnicodeString : DestinationString -> UnicodeString
svn path=/branches/header-work/; revision=46014
James Tabor [Mon, 8 Mar 2010 21:24:47 +0000 (21:24 +0000)]
[User32]
- David Hedberg Fix return value for EDIT_EM_Scroll and case where EM_SCROLL with page down results in trying to scroll up past the beginning. Sync to wine 1.1.40.
svn path=/trunk/; revision=46013
James Tabor [Mon, 8 Mar 2010 21:20:18 +0000 (21:20 +0000)]
- [User32_winetest]
- Msg : Remove more tests from service. test_timers crashed on a callback which passed months ago. The rest are related to TrackMouseEvent and capture.
svn path=/trunk/; revision=46012
Cameron Gutman [Mon, 8 Mar 2010 21:09:25 +0000 (21:09 +0000)]
[CMBATT]
- Add initial cmbatt driver which mostly stubs
- All it does right now is register a battery device with the battc driver
[BATTC]
- Add a nearly complete battc driver (the only stuff missing is WMI)
- Tested with our stubbed cmbatt driver but testing on Windows would be nice too
[BATTERY.INF]
- Added battery.inf to install battery devices
[MISC]
- Add cmbatt.sys, battc.sys, and battery.inf to bootcd
- We still need to implement compbatt.sys
- PS: Janderwald, you stole my commit number ;)
svn path=/trunk/; revision=46011
Daniel Reimer [Mon, 8 Mar 2010 21:08:20 +0000 (21:08 +0000)]
Polish translation update by Maciej Bialas.
svn path=/trunk/; revision=46010
James Tabor [Mon, 8 Mar 2010 21:04:00 +0000 (21:04 +0000)]
- Fix a crash in user32 winetest msg.
svn path=/trunk/; revision=46009