Klemens Friedl [Wed, 14 Jun 2006 20:07:20 +0000 (20:07 +0000)]
german translation update
patch created by EmuandCo and DangerGround
svn path=/trunk/; revision=22348
Hervé Poussineau [Wed, 14 Jun 2006 09:36:15 +0000 (09:36 +0000)]
Fix SESSION5_INITIALIZATION_ERROR by reverting part of 22219. The code is the same as in pre-22219 era, but separated in different files
Thanks Alex for reporting the faulty revision
svn path=/trunk/; revision=22347
Alex Ionescu [Wed, 14 Jun 2006 06:48:28 +0000 (06:48 +0000)]
- Handle mount failure (such as when a CDROM isn't actually inside the drive) instead of assuming success and setting a NULL device object. Fixes regression seen by Arty/James when winefiling, dir d:-ing or hardware device wizarding.
svn path=/trunk/; revision=22346
Alex Ionescu [Wed, 14 Jun 2006 04:02:02 +0000 (04:02 +0000)]
- Fix some referencing/bugs in Ob functions that I wrote which were known fixmes.
- Remove every instance of ObDereferenceObject after an ObInsertObject that I could find. This temporarily will make the object leaks even worse, but it's better to increase leaks and then fix the ref bug, then to decrease references while missing spots that forgot to reference them (you'd end up with hard to debug randomly dying objects).
svn path=/trunk/; revision=22345
Ged Murphy [Tue, 13 Jun 2006 21:30:54 +0000 (21:30 +0000)]
fix checking of the properties dialog to see if it's open before sending messages to it. Stops the crash when starting or stopping services
svn path=/trunk/; revision=22344
Hervé Poussineau [Tue, 13 Jun 2006 21:23:25 +0000 (21:23 +0000)]
- Add a MSVCConfiguration class, to keep trace of parameters instead of parsing each time the configuration name
- When building with MSVC headers, win32api and Wine directories are omitted and some defines are added
svn path=/trunk/; revision=22343
Hervé Poussineau [Tue, 13 Jun 2006 17:39:17 +0000 (17:39 +0000)]
Add files to project only if the "If" condition is true.
svn path=/trunk/; revision=22342
Hervé Poussineau [Tue, 13 Jun 2006 17:37:27 +0000 (17:37 +0000)]
Fix formatting. No code change
svn path=/trunk/; revision=22341
James Tabor [Tue, 13 Jun 2006 15:13:02 +0000 (15:13 +0000)]
Adding future DefWnd calls to win32k.
svn path=/trunk/; revision=22340
Alex Ionescu [Tue, 13 Jun 2006 04:50:14 +0000 (04:50 +0000)]
- Enable ROS_LEAN_AND_MEAN if you want 50% smaller binaries and a 20MB reduction in memory usage.
- Create a new module type: exportdriver for drivers which also export files. Not supremely useful right now, but it helps us decrease compilation time of normal drivers by not running useless commands on them. Later we'll also strip out their export table. We can also make exportdrivers automatically read their .def file instead of specfiygone one.
svn path=/trunk/; revision=22339
Brandon Turner [Tue, 13 Jun 2006 00:26:08 +0000 (00:26 +0000)]
* When comparing two strings, you do not need to check what comes after them.
* You do not need to look for the next space in the "command" to run on if success, that will be handled later on, and causes it to skip over to much if it done in both spots
svn path=/trunk/; revision=22334
James Tabor [Mon, 12 Jun 2006 23:23:50 +0000 (23:23 +0000)]
Wine patch by Thomas Kho: Fix behavior when selecting disabled menu items.
svn path=/trunk/; revision=22333
Ged Murphy [Mon, 12 Jun 2006 22:40:56 +0000 (22:40 +0000)]
missed this little blighter ....
svn path=/trunk/; revision=22331
Ged Murphy [Mon, 12 Jun 2006 22:35:32 +0000 (22:35 +0000)]
- sync from Wine-0_9_5 to Wine-0_9_15
- there are a few small differences between ROS comctl32 and Wine comctl32, in listview.c and treeview.c. I've dropped the Wine versions in for now, as they appear to be trivial. I'll insert our small alterations after testing, if required. For now, we are using 100% Wine code.
- We are failing some comctl32 Wine tests in ROS, but passing more than previous.
Sync to Wine-0_9_15:
Mikoaj Zalewski <mikolaj@zalewski.pl>
- comctl32: header: Put the new item in place of the hot divider instead of swapping.
- comctl32: header: Draw the drag image and hot dividers while dragging an item.
- comctl32: header: Fix an order-related bug in HEADER_InternalHitTest.
- comctl32: header: Implement HDM_SETHOTDIVIDER.
- comctl32: header: Implement HDM_CREATEDRAGIMAGE.
- comctl32: listview: Apply the HDS_DRAGDROP header style if needed.
- comctl32: header: Update the rects in HEADER_Refresh if needed.
- comctl32: header: Ignore out-of-range iOrder in SetItemT.
Paul Vriens <Paul.Vriens@xs4all.nl>
- comctl32/header: Check Null before accessing struct member.
Alexandre Julliard <julliard@winehq.org>
- comctl32: Dialog procedures should be called with CallWindowProc.
Sync to Wine-0_9_14:
Mikoaj Zalewski <mikolaj@zalewski.pl>
- comctl32: header: Don't try to draw items outside the clipping rect.
- comctl32: header: Make the column resizing smooth in full drag mode.
Jonathan Ernst <jonathan@ernstfamily.ch>
- Update the address of the Free Software Foundation.
- Uniformization of French main menu accelerators.
Sync to Wine-0_9_13:
Mikoaj Zalewski <mikolaj@zalewski.pl>
- comctl32: Add Str_SetPtrWtoA analogue to Str_SetPtrAtoW.
qingdoa daoo <qingdao33122@yahoo.com>
- comctl32: Change return code comparison in AVI control.
- comctl32: Fix an unsigned comparison to zero.
- comctl32: Update first visible when appropiate in the TVI_SORT case.
Saulius Krasuckas <saulius2@ar.fi.lt>
- comctl32: Increase FILEVERSION up to 5.81.4704.1100.
Sync to Wine-0_9_12:
Mike Hearn <mike@plan99.net>
- comctl32: Add OOM codepath in imagelist control.
Antonio Codazzi <f_sophia@libero.it>
- comctl32: Italian language updates.
- comctl32: Esperanto language support.
Sync to Wine-0_9_11:
Rein Klazes <wijn@wanadoo.nl>
- comctl32: Do not free LPSTR_TEXTCALLBACK tooltip texts.
James Hawkins <truiken@gmail.com>
- comctl32: A couple fixes for tab icon offsets.
Thomas Weidenmueller <wine-patches@reactsoft.com>
- comctl32: Rebar size fix.
Mike McCormack <mike@codeweavers.com>
- comctl32: Having an MRU list without a compare function works in Windows.
Sync to Wine-0_9_10:
Andrñs Kovñcs <andras@csevego.net>
- comctl32: Added Hungarian translation.
Mike McCormack <mike@codeweavers.com>
- comctl32: Fix some gcc 4.1 warnings caused by windowsx.h macros.
Sync to Wine-0_9_9:
Vitaliy Margolen <wine-patch@kievinfo.com>
- comctl32: Remove/swap limits if min > max in MCM_SETRANGE.
We should swap min & max only when both limits are being
set. Otherwise limit that being set should invalidate other limit
(remove it).
- comctl32: Don't change month range in MCM_SETRANGE. Add tests for this.
Sync to Wine-0_9_8:
Vitaliy Margolen <wine-patch@kievinfo.com>
- comctl32: Fix invalid date/time check in MCM_SETRANGE: ignore time and fail on bad date.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Petr Tesarik <hat@tesarici.cz>
- comctl32: Czech language resources encoding fix.
Fatih Ac <fasici@linux-sevenler.org>
- comctl32: Turkish translation.
Sync to Wine-0_9_7:
Alexandre Julliard <julliard@winehq.org>
- Fixed creation of PS_ALTERNATE pens.
Sync to Wine-0_9_6:
Phil Krylov <phil@newstar.rinet.ru>
- comctl32: Call UpdateWindow() after changing statusbar text.
Thomas Weidenmueller <wine-patches@reactsoft.com>
- comctl32: Reduce memory usage of the syslink control.
- comctl32: Some painting fixes for the syslink control.
Mike McCormack <mike@codeweavers.com>
- comctl32: Invalidate the entire progress bar any time it changes.
svn path=/trunk/; revision=22329
Ged Murphy [Mon, 12 Jun 2006 20:26:30 +0000 (20:26 +0000)]
enable all tests
svn path=/trunk/; revision=22328
Johannes Anderwald [Mon, 12 Jun 2006 18:09:47 +0000 (18:09 +0000)]
fix build prob #take one
svn path=/trunk/; revision=22327
Ged Murphy [Mon, 12 Jun 2006 17:58:59 +0000 (17:58 +0000)]
fix build
svn path=/trunk/; revision=22326
Johannes Anderwald [Mon, 12 Jun 2006 17:51:03 +0000 (17:51 +0000)]
fix typo in solitaire.cpp
patch by Wildcat (bug 1555)
svn path=/trunk/; revision=22325
Johannes Anderwald [Mon, 12 Jun 2006 17:44:57 +0000 (17:44 +0000)]
set focus back after messagebox
fix formating of previous commit
svn path=/trunk/; revision=22324
Johannes Anderwald [Mon, 12 Jun 2006 17:40:35 +0000 (17:40 +0000)]
set focus back to computer name when invalid name was entered
bug report by keytotime (bug 1569)
svn path=/trunk/; revision=22323
Johannes Anderwald [Mon, 12 Jun 2006 17:30:21 +0000 (17:30 +0000)]
add freeldr_fdebug rbuild
svn path=/trunk/; revision=22322
Johannes Anderwald [Mon, 12 Jun 2006 17:28:08 +0000 (17:28 +0000)]
add norwegian translation
patch by LMH1 (bug 1575)
svn path=/trunk/; revision=22321
Johannes Anderwald [Mon, 12 Jun 2006 17:26:41 +0000 (17:26 +0000)]
add rbuild file
svn path=/trunk/; revision=22320
Alex Ionescu [Mon, 12 Jun 2006 05:58:08 +0000 (05:58 +0000)]
- Pretty much the last Ob implementation/optimization patch (Except for a minor fix by Thomas to fix handle sweeping), re-implemented the ObFindObject routine by using some code that I had written almost 2 years ago with help from Thomas and Filip, plus some fixes discovered today while testing.
- Fixed symbolic link and desktop/winsta parse procedures to become NT-compatible now that ObFindObject is as well. Also fixed file/device parse routine for these changes.
- ObFindObject now supports STATUS_REPARSE_OBJECT, and has an optimized path for parsing when a root directory is given, as well as is entirely unicode_string-based.
- Cleaned up ob.h and added ob_x.h for the inlined functions.
- Implemented new Ob tracing system.
svn path=/trunk/; revision=22319
Alex Ionescu [Sun, 11 Jun 2006 22:32:12 +0000 (22:32 +0000)]
- Fix a typo that had broken the build -- sorry.
svn path=/trunk/; revision=22318
Alex Ionescu [Sun, 11 Jun 2006 22:26:54 +0000 (22:26 +0000)]
- Bring out the champagne... one of my first-ever and most ancient ReactOS TODOs: the IopCreateFile hack has been totally removed and we now have a file/device parse routine. It's still nothing like NT's but it's not a hack anymore, and actually works like it should.
svn path=/trunk/; revision=22317
Eric Kohl [Sun, 11 Jun 2006 21:56:08 +0000 (21:56 +0000)]
Implement CM_Delete_DevNode_Key and add CM_Delete_DevNode_Key_Ex stub.
svn path=/trunk/; revision=22316
Aleksey Bragin [Sun, 11 Jun 2006 21:05:25 +0000 (21:05 +0000)]
Slightly update the doc to make it correspond to nowadays reality
svn path=/trunk/; revision=22315
Ged Murphy [Sun, 11 Jun 2006 15:51:13 +0000 (15:51 +0000)]
update the comctl32 wine tests
svn path=/trunk/; revision=22314
Maarten Bosma [Sun, 11 Jun 2006 15:16:48 +0000 (15:16 +0000)]
Fix size of the startmenu (e.g. Start->Programs) when there are very much entries. Tested under Windows. Fix by slawek from the German forum.
svn path=/trunk/; revision=22313
Eric Kohl [Sun, 11 Jun 2006 13:20:46 +0000 (13:20 +0000)]
Implement PNP_AddID.
svn path=/trunk/; revision=22310
Hervé Poussineau [Sun, 11 Jun 2006 13:00:47 +0000 (13:00 +0000)]
Fix non-optimized versions of InterlockedIncrement/InterlockedDecrement.
Fixes bug 916
svn path=/trunk/; revision=22309
Hervé Poussineau [Sun, 11 Jun 2006 12:27:27 +0000 (12:27 +0000)]
Move Interlocked* functions to architecture-relative directories. This prevents use of inlined assembler.
svn path=/trunk/; revision=22308
Hervé Poussineau [Sun, 11 Jun 2006 12:15:43 +0000 (12:15 +0000)]
[AUDIT]
According to Fireball, this file is clean because it contains only well-known interlocked operations taking up a few asm instructions
svn path=/trunk/; revision=22307
Hervé Poussineau [Sun, 11 Jun 2006 12:02:04 +0000 (12:02 +0000)]
Add some tests for interlocked functions
svn path=/trunk/; revision=22306
Alex Ionescu [Sun, 11 Jun 2006 08:25:10 +0000 (08:25 +0000)]
* Significant improve boot speed and debug log neatness:
- Get rid of a dozen of debug prints that have been straying along for a long time (some for years), most of which I must shamefully admit I am responsible for.
- Fix a critical bug subsystem bug in smss and don't hang the system 15 seconds on boot-up.
- Rebase some problematic modules (and fix wshtcpip's rbuild file) to avoid relocations on bootup and some process startup.
- Enable lsass startup in winlogon and the registry.
- Only show debug log header when actually debugging to a file.
svn path=/trunk/; revision=22305
Hervé Poussineau [Sun, 11 Jun 2006 07:57:37 +0000 (07:57 +0000)]
- Support more than one child
- vbemp shouldn't parse the EDID, so return it to videoprt
svn path=/trunk/; revision=22304
Alex Ionescu [Sun, 11 Jun 2006 06:52:56 +0000 (06:52 +0000)]
- Fix definitions of OB_QUERYNAME_METHOD and OB_OKAYTOCLOSE_METHOD. Add fixme for OB_SECURITY_METHOD, will change it later.
- Simplified NtDuplicateObject to a simple stub around ObDuplicateObject, there is no need to have lengthy hacks for NtCurrentProcess/NtCurrentThread().
- Cleanup ObDuplicateObject to use normal Ob routines instead of grovelling through handle table structures and manually touching the handle count: It now calls ObpIncrementHandleCount and all the underlying operations are done on the duplicated handle. Also access state creation is done if the duplicated handle has different desired access.
svn path=/trunk/; revision=22303
Aleksey Bragin [Sat, 10 Jun 2006 22:39:14 +0000 (22:39 +0000)]
- Further improvements to Ob tests (fixing obvious mistakes/etc), however reference tests still cause bugcheck, so they are disabled
- Clean-up is enabled now, so basically it's possible to run the test a number of times in win2k3, and every time it will go from scratch by creating everything. But I have a feeling that deleting object-types causes some type of corruption. To be investigated later.
svn path=/trunk/; revision=22302
Aleksey Bragin [Sat, 10 Jun 2006 21:17:43 +0000 (21:17 +0000)]
Alex finally paid attention to my code, so I'm fixing a few things...
svn path=/trunk/; revision=22301
Hervé Poussineau [Sat, 10 Jun 2006 20:51:18 +0000 (20:51 +0000)]
After some tests, change SetupDiClassNameFromGuidExW and SetupDiGetClassDescriptionExW to match Windows XP behavior
svn path=/trunk/; revision=22300
Hervé Poussineau [Sat, 10 Jun 2006 20:48:17 +0000 (20:48 +0000)]
Cleanup:
- Check that mandatory arguments are provided
- Better tracing system
- Prepend private function names with SETUP_
- Use MultiByteToUnicode instead of MultiByteToUnicode + HeapAlloc
- ...
svn path=/trunk/; revision=22299
Aleksey Bragin [Sat, 10 Jun 2006 20:41:54 +0000 (20:41 +0000)]
[FORMATTING]
Very small cleanup, formatting and typecasting change
svn path=/trunk/; revision=22298
Aleksey Bragin [Sat, 10 Jun 2006 20:32:25 +0000 (20:32 +0000)]
Revert accidental change of ntfs.sys driver's Start value made in last commit
svn path=/trunk/; revision=22297
Aleksey Bragin [Sat, 10 Jun 2006 18:05:44 +0000 (18:05 +0000)]
Add loading of kernel-mode regression testing driver into hivesys.inf (it's commented out of course by default).
To run km regression tests under windows, one should use kmtloader.exe app
To run them on reactos, one should copy kmtest.sys to reactos\system32\drivers, and uncomment entries in hivesys.inf
svn path=/trunk/; revision=22296
Aleksey Bragin [Sat, 10 Jun 2006 16:37:34 +0000 (16:37 +0000)]
- Add create/insert object tests
- Add simple referencing tests (now disabled)
- All tests pass currently on Windows 2003
svn path=/trunk/; revision=22295
Alex Ionescu [Sat, 10 Jun 2006 00:41:16 +0000 (00:41 +0000)]
- Update sweep callback to send the handle number. Patch by Thomas Weidenmueller (w3seek@reactos.org)
- Export ObCloseHandle since it's implemented now
- Implement ObpCreateUnnamedHandle and ObpIncrementUnnamedHandleCount as optimizations for ObInsertObject with unnamed objects.
svn path=/trunk/; revision=22294
Brandon Turner [Fri, 9 Jun 2006 15:59:56 +0000 (15:59 +0000)]
eol-style:native and some TCHAR fixes
svn path=/trunk/; revision=22293
Hervé Poussineau [Fri, 9 Jun 2006 14:16:39 +0000 (14:16 +0000)]
Add documentation to SetupDiBuildClassInfoList/SetupDiBuildClassInfoListExA/W
Patch by Christian Gmeiner on wine-patches ML
svn path=/trunk/; revision=22292
Alex Ionescu [Fri, 9 Jun 2006 08:49:03 +0000 (08:49 +0000)]
- Fix the CmpObjectDelete bugcheck by hacking away some code reponsible for it. The bugcheck is probably the result of the current ref-count bug.
- Remove some more code in IoCreateFile/IopCreateFile to help with deprecating it later.
svn path=/trunk/; revision=22291
Alex Ionescu [Fri, 9 Jun 2006 07:28:26 +0000 (07:28 +0000)]
- Add the OPEN_PACKET structure to internal headers. Used for the I/O Parse Routine.
- Gut down IopCreateFile to the strict minimum so that only the critical parts remain.
- NT Compatiblity fix in ObFindObject: stop parsing if remaining path is null, this means that the parse routine is done parsing and that -this- is the final object.
svn path=/trunk/; revision=22290
Aleksey Bragin [Thu, 8 Jun 2006 21:39:51 +0000 (21:39 +0000)]
- Added DPRINT logic in all files (to be used as "TRACE" to aid in debugging of tests)
- Added initial part of Ob tests which uses ObCreateObjectType, NtCreateDirectoryObject, ObCreateObject exported APIs.
svn path=/trunk/; revision=22289
Alex Ionescu [Thu, 8 Jun 2006 21:36:44 +0000 (21:36 +0000)]
- Remove the heart (but not the brain) of the IopCreateFile hack. A much 'nicer' hack now detects if a filename can't be found, and instead of inserting it into the object directory (wrong!), calling IopCreateFile (wrong!), then having it fail, only to then remove the newly inserted object entry (wrong wrong wrong!), IopCreateFile is now *only* called for real files, otherwise Ob detects the invalid name and fails nicely and quickly.
svn path=/trunk/; revision=22288
Alex Ionescu [Thu, 8 Jun 2006 20:58:21 +0000 (20:58 +0000)]
- Add Object Header Quota structure/define
- Give Files/Devices a parse routine and currently stubplement it for debugging purposes and trying to figure out a way to kill the IopCreateFile hack.
- Implement ObpChargeQuotaForObject. Using a memory breakpoint in WinDBG I've finally found where the OB_FLAG_CREATE_INFO flag gets masked out. Also attempted a very naive quota charging implementation, but it's a guess and probably wrong (but at least it does...something.)
svn path=/trunk/; revision=22287
Alex Ionescu [Thu, 8 Jun 2006 19:00:22 +0000 (19:00 +0000)]
- Kill a bunch of deprecated hacks, because removing hacks is always cool!
svn path=/trunk/; revision=22286
Alex Ionescu [Thu, 8 Jun 2006 18:24:37 +0000 (18:24 +0000)]
- [FORMATTING]:
- Get rid of ObpGetHandleCountByHandleTable and ObpGetNextHandleByProcessCount.
- Add some function comment headers.
- Move ObMakeTemporaryObject, NtMakeTemporaryObject, NtMakePermanentObject to oblife.c
- Move ObpDeleteNameCheck to obname.c
svn path=/trunk/; revision=22285
Alex Ionescu [Thu, 8 Jun 2006 18:09:01 +0000 (18:09 +0000)]
- Rename ObpDeleteHandle to ObpCloseHandleTableEntry and change semantics so that it deals directly with the entry and table. This re-factoring optimizes the case where we already have the entry and don't want to use the handle to get the kernel table and then attach/detach/enter/exit critcal regions (such as when sweeping).
- Implement ObCloseHandle, a new XP Export
- Take old NtClose code and write it in ObpCloseHandle, which is the master function that Ntclose/ObCloseHandle share.
- Complete patch requires ExSweepHandleTable to be modified to return the Handle instead of the entry, so that sweeping can be fixed to properly destroy handles and call their OkayToClose, instead of just decrementing a count.
svn path=/trunk/; revision=22284
Brandon Turner [Thu, 8 Jun 2006 13:07:05 +0000 (13:07 +0000)]
If treat a backspace more like a normal char.
svn path=/trunk/; revision=22283
Brandon Turner [Thu, 8 Jun 2006 12:59:32 +0000 (12:59 +0000)]
ReadConsole test to show how backspaces should be handled.
svn path=/trunk/; revision=22282
Alex Ionescu [Thu, 8 Jun 2006 06:31:16 +0000 (06:31 +0000)]
- [FORMATTING] Add function comment headers.
svn path=/trunk/; revision=22281
Alex Ionescu [Thu, 8 Jun 2006 06:17:46 +0000 (06:17 +0000)]
- ObFindObject should return the actual object being inserted, in the insert case (otherwise it always returns the root-directory instead...)
- Add check for optimized case for objects with no name and no security, but not implemented (ObpIncrementUnnamedHandleCount in Gl00my docs), since I need a better translation then babelfish's.
- Fix ObInsertObject to save the Security Descriptor in the Access State structure. Gl00my mentions this isn't absorbed by SeCreateAccessCheck and I just noticed that too.
- We only need to perform security checks for a new object, in ObInsertObject, not if the object already existed.
- Added proper backout+failure code in ObInsertObject if lookup failed, and also look out for mismatch/exists/collision cases (implemented using simple logic).
svn path=/trunk/; revision=22280
Alex Ionescu [Thu, 8 Jun 2006 05:41:39 +0000 (05:41 +0000)]
- Fix ObGetObjectSecurity to use the object type's pool type instead of assuming PagedPool.
- Re-wrote the way ObInsertObject handles security as described in Chapters 6 and 9 of Gl00my (ie: made it use ObGetObjectSecurity and ObAssignObjectSecurity; ironically, these functions already existed/are exported and could've been used since the start instead of duplicating code).
- Fix ObpReferenceCachedSecurityDescriptor only to touch the cached entry if it actually gets a non-NULL descriptor. Also improved it to return the referenced SD, instead of requiring the caller to do it manually.
svn path=/trunk/; revision=22279
Alex Ionescu [Thu, 8 Jun 2006 02:56:59 +0000 (02:56 +0000)]
- I just noticed that ObInsertObject never got updated to deal with the improvements in ObFindObject and ACCESS_STATE usage, so made the following fixes:
* Create the ACCESS_STATE structure much earlier.
* Actually send the access state and parse context to ObFindObject, when called from ObInsertObject (this should fix some hidden regressions, since they finally get an access state with access masks now).
* Remove some deprecated hacks.
* If inserting the handle failed, cleanup the name and remove it from the directory entry.
* Fix a memory leak because we weren't deleting the access state.
svn path=/trunk/; revision=22278
Alex Ionescu [Thu, 8 Jun 2006 02:36:12 +0000 (02:36 +0000)]
- Fixup some comments and add Eric Kohl's name to this file, since he had worked on some of the original calls.
- Minor/trivial fixes to some Object Security APIs that were left in the dark:
* Use PagedPool instead of NonPagedPool memory, and also tag the allocation for debugging.
* Send needed data to the security procedure instead of NULL/0, including the Generic Mapping, and the actual Security Decriptor.
* Only un-assign the descriptor in case of failure, not all the time (the whole point of the API is to assign it!)
* Tell the caller that memory was NOT allocated if we failed to get the security descriptor.
svn path=/trunk/; revision=22277
Alex Ionescu [Wed, 7 Jun 2006 23:59:15 +0000 (23:59 +0000)]
- Split ObpCreateHandle into two distinct operations: Incrementing and Creating (like we have Delete/Decrement). No code additions, just splitting.
- Because of the split, we can now directly only do an Increment when duplicating the handle, since we don't need to create a brand new one. Also, when inheriting, we can now properly do an increment as well, instead of simply manually increasing the handle count (because for each inherited handle, access checks and openprocedure should've still been called).
svn path=/trunk/; revision=22276
Hervé Poussineau [Wed, 7 Jun 2006 17:33:57 +0000 (17:33 +0000)]
Some 64 fixes
svn path=/trunk/; revision=22275
Hervé Poussineau [Wed, 7 Jun 2006 17:31:43 +0000 (17:31 +0000)]
Replace STDCALL by NTAPI
Some 64 bits fixes
svn path=/trunk/; revision=22274
Hervé Poussineau [Wed, 7 Jun 2006 17:30:06 +0000 (17:30 +0000)]
Allocate buffer for system directory on heap instead of stack
svn path=/trunk/; revision=22273
Hervé Poussineau [Wed, 7 Jun 2006 17:26:25 +0000 (17:26 +0000)]
- Implement DecryptFileA
- Fix some stubs
- Remove dead code
svn path=/trunk/; revision=22272
Hervé Poussineau [Wed, 7 Jun 2006 17:24:49 +0000 (17:24 +0000)]
- Implement FileEncryptionStatusA
- Fix FileEncryptionStatusW prototype
- Fix EncryptionDisable stub
svn path=/trunk/; revision=22271
Aleksey Bragin [Wed, 7 Jun 2006 13:08:28 +0000 (13:08 +0000)]
Add missing debug.h/NDEBUG construction, fixes compiling without CU
svn path=/trunk/; revision=22270
Aleksey Bragin [Wed, 7 Jun 2006 13:06:40 +0000 (13:06 +0000)]
[AUDIT]
base/system/smss.exe
- Unlock simple and trivial functions
- Unlock unimplemented funcs and non-code things
svn path=/trunk/; revision=22269
Aleksey Bragin [Wed, 7 Jun 2006 10:57:40 +0000 (10:57 +0000)]
Fix a typo in Internet Time tab. Spotted by hand.of.omega@gmail.com. Fixes bug 1562
svn path=/trunk/; revision=22268
Alex Ionescu [Wed, 7 Jun 2006 06:15:59 +0000 (06:15 +0000)]
- Final fixes to ObpCreateHandle that I can think of before splitting Create/Increment (might be lacking some security checks or trace/database functionality, but I haven't found any info on the latter, while the former I will stub, but I don't have the skills to imlement (ObAssignObjectSecurity)):
* Honour ObjectType passed to the function and fail if it doesn't match.
* Use table-based logic instead of process-based logic for Kernel vs User-mode handles (same change that's been done all over the place, since it requires only one dereference of the process object).
* Do the GENERIC/MAXIMUM_ALLOWED logic directly inside the ACCESS_STATE structure.
* This is where we should call the OpenProcedure (acc. to Gl00my), but this kills win32k -- investigate, #ifed out for now.
* Increase the object type's number of handles as well.
* Set the handle table entry's ObAttributes correctly; the old code seems to have been messing that up.
* Honour the AdditionalReferences parameter and do referencing bias if requested.
* Honour the ReturnedObject parameter to return the object pointer back to the caller.
* Add OBTRACEing to the function.
* If we failed because a handle couldn't be allocated, use the distinguied STATUS_INSUFFICIENT_RESOURCES error code instead of the generic STATUS_UNSCUCESFFUL, and backout all the changes we made by calling ObpDecrementHandleCount.
svn path=/trunk/; revision=22267
Alex Ionescu [Wed, 7 Jun 2006 05:37:04 +0000 (05:37 +0000)]
- Change ObpCreateHandle to the one documented and explained in the Gl00my documentation. It also fits the re-factored split create/increment model better, supports open reasons, and allows to do type-checking and extra object referencing from within one routine.
- Add code to ObOpenObjectByName to detect the OpenReason. Experimental, since I'm not sure when to clear the flag.
svn path=/trunk/; revision=22266
Alex Ionescu [Wed, 7 Jun 2006 05:04:43 +0000 (05:04 +0000)]
- Add some trace macros to monitor handle/pointer counts for fixing regressions/bugs later.
- Change ObpCreateHandle to use an ACCESS_STATE structure instead of DesiredAccess. This is to help moving to an updated model where creating and incrementing a handle are 2 operations, so that code can be refactored (similarly to how we now have Delete/Decrement as 2 operations).
- Fix functions that were not creating an ACCESS_STATE Structure to create one locally now, or use the one passed as a parameter, if available.
svn path=/trunk/; revision=22265
Alex Ionescu [Wed, 7 Jun 2006 01:47:33 +0000 (01:47 +0000)]
- Clone ObpCreateHandle to CmpCreateHandle. I am about to fix its implementation and since Cm* currently abuses Ob I feel it safer to give its own internal function.
- Make ObpCreateHandle internal to Ob as it should be. Change NtCreateProcessTokenEx to use ObOpenObjectByPointer, it has no business manually trying to create a handle. Same goes for ExpLoadInitialProcess.
svn path=/trunk/; revision=22264
James Tabor [Wed, 7 Jun 2006 01:45:18 +0000 (01:45 +0000)]
Quick patch.
svn path=/trunk/; revision=22263
James Tabor [Wed, 7 Jun 2006 01:28:44 +0000 (01:28 +0000)]
Cleanup coding of IntGdiPolyPolygon and IntGdiPolygon.
svn path=/trunk/; revision=22262
James Tabor [Wed, 7 Jun 2006 01:22:47 +0000 (01:22 +0000)]
Implement Get & SetTextCharacterExtra. Does nothing ATM.
svn path=/trunk/; revision=22261
Magnus Olsen [Wed, 7 Jun 2006 00:04:51 +0000 (00:04 +0000)]
Implement %Fp now we have 25 fails with wine test for string version of *printf api
svn path=/trunk/; revision=22260
Magnus Olsen [Tue, 6 Jun 2006 23:22:11 +0000 (23:22 +0000)]
using uppercaps for %p instead lowercaps when it format the string, that make passing one more of wine test
27 fails now
svn path=/trunk/; revision=22259
Johannes Anderwald [Tue, 6 Jun 2006 23:14:09 +0000 (23:14 +0000)]
add Wine's powrprof to build
svn path=/trunk/; revision=22258
Magnus Olsen [Tue, 6 Jun 2006 23:01:44 +0000 (23:01 +0000)]
fixing some bugs for %c in the string version of printf
svn path=/trunk/; revision=22257
Johannes Anderwald [Tue, 6 Jun 2006 22:54:18 +0000 (22:54 +0000)]
small compilation fix
svn path=/trunk/; revision=22256
Magnus Olsen [Tue, 6 Jun 2006 22:43:41 +0000 (22:43 +0000)]
fixing two more bugs in *printf strings version.
this make we pass one more of wine test
svn path=/trunk/; revision=22255
Johannes Anderwald [Tue, 6 Jun 2006 21:54:39 +0000 (21:54 +0000)]
import Wine 0.9.14 powrprof
svn path=/trunk/; revision=22254
Johannes Anderwald [Tue, 6 Jun 2006 21:51:40 +0000 (21:51 +0000)]
prepare wine 0.9.14. powrprof import
svn path=/trunk/; revision=22253
Magnus Olsen [Tue, 6 Jun 2006 21:42:42 +0000 (21:42 +0000)]
implement datatype I32 for *printf string version we have a *printf for files as well
now 29 fails in wine test msvcrt printf
svn path=/trunk/; revision=22252
Alex Ionescu [Tue, 6 Jun 2006 21:02:55 +0000 (21:02 +0000)]
- Formatting/name/comment/declaration/calling convention changes.
- Make ObpCreateHandleTable return NTSTATUS instead of VOID, so that it can return STATUS_INSUFFIENT_RESOURCES if the handle table couldn't be allocated.
svn path=/trunk/; revision=22249
Johannes Anderwald [Tue, 6 Jun 2006 21:02:30 +0000 (21:02 +0000)]
add missing NtPowerInformation to def
svn path=/trunk/; revision=22248
Magnus Olsen [Tue, 6 Jun 2006 12:45:05 +0000 (12:45 +0000)]
fixing 2 more fualt in msvcrt *printf api
svn path=/trunk/; revision=22247
Alex Ionescu [Tue, 6 Jun 2006 06:12:09 +0000 (06:12 +0000)]
- Add function documentation header to ObpDeleteHandle, comment and re-format the function, and simplify the code to reduce some code duplication.
- Call the OkayToClose Procedure, if one is present, to allow the object owner a chance to disallow closing this handle. I believe this is required for properly protecting Winsta/Desktop handles (instead of using the regular protection mode, since that one can be bypassed). Thomas, get to work!
svn path=/trunk/; revision=22246
Alex Ionescu [Tue, 6 Jun 2006 05:49:28 +0000 (05:49 +0000)]
- Documented ObpDeleteNameCheck and ObpSetPermanentObject
- Added function documentation header for ObpDecrementHandleCount and ObpSetHandleAttributes
- Modified ObpDecrementHandleCount to accept Process and GrantedAccess paraemters since the definition for the Close Procedure Callback requires them (and we were currently sending NULL). Also send 0 for process handle count, since we don't yet parse/support per-process handle databases.
- Minor optimization: All objects have an object type, don't actually check if the object has one when decrementing a handle.
- Minor accounting fix: Decrement the total number of handles for the object type whose handle count is being decreased.
svn path=/trunk/; revision=22245
Alex Ionescu [Tue, 6 Jun 2006 04:52:08 +0000 (04:52 +0000)]
- Make sure callers of NtMakeTemporaryObject have DELETE privileges, otherwise they could end up illegaly killing objects (in certain situations)
- Make sure callers of NtMakePermanentObject have SeCreatePermanentPrivilege.
- Implement ObpDeleteNameCheck as described in Gl00my's Ob Documentation (using such documentation falls under US Reverse Engineering Law - Clean rooming).
- Remove duplicated code in ObpDecrementHandleCount and ObpSetPermanentObject and have them use ObpDeleteNameCheck instead.
- Fixes thanks to using this routine:
* Name-check is now properly done.
* The keep-alive reference is now deleted when going from permanent->temporary object.
* The parent directory is now dereferenced and cleared when deleting the object.
* The security procedure is now called to delete the SD, and the name buffer is freed.
- Remove ObGetObjectHandleCount, it's not a public function.
svn path=/trunk/; revision=22244
Alex Ionescu [Tue, 6 Jun 2006 02:07:55 +0000 (02:07 +0000)]
- Fix bug in IoCreateFile which my (correct) ObReferenceObjectByHandle bugfix patch uncovered. Bootcd/installation works again.
svn path=/trunk/; revision=22243
Hervé Poussineau [Mon, 5 Jun 2006 21:46:14 +0000 (21:46 +0000)]
Set libraries as project dependencies
svn path=/trunk/; revision=22242
Ged Murphy [Mon, 5 Jun 2006 19:00:52 +0000 (19:00 +0000)]
silence some rather annoying alignment errors when building with msvc
svn path=/trunk/; revision=22240
Hervé Poussineau [Mon, 5 Jun 2006 16:41:03 +0000 (16:41 +0000)]
Change some DPRINT1 to DPRINT, as they were prior revision 21880.
svn path=/trunk/; revision=22239
Ged Murphy [Mon, 5 Jun 2006 16:34:38 +0000 (16:34 +0000)]
- implement menu hints
- load separate 24bit bitmaps for the icons
- fix image list loading
- lots of other little tweaks and changes
svn path=/trunk/; revision=22238