Commit graph

20721 commits

Author SHA1 Message Date
Hervé Poussineau 47b12f6d7d Some 64 fixes
svn path=/trunk/; revision=22275
2006-06-07 17:33:57 +00:00
Hervé Poussineau 9a844e2247 Replace STDCALL by NTAPI
Some 64 bits fixes

svn path=/trunk/; revision=22274
2006-06-07 17:31:43 +00:00
Hervé Poussineau 7e07a60d3a Allocate buffer for system directory on heap instead of stack
svn path=/trunk/; revision=22273
2006-06-07 17:30:06 +00:00
Hervé Poussineau 9d4e17c705 - Implement DecryptFileA
- Fix some stubs
- Remove dead code

svn path=/trunk/; revision=22272
2006-06-07 17:26:25 +00:00
Hervé Poussineau f326c55403 - Implement FileEncryptionStatusA
- Fix FileEncryptionStatusW prototype
- Fix EncryptionDisable stub

svn path=/trunk/; revision=22271
2006-06-07 17:24:49 +00:00
Aleksey Bragin 69778e9422 Add missing debug.h/NDEBUG construction, fixes compiling without CU
svn path=/trunk/; revision=22270
2006-06-07 13:08:28 +00:00
Aleksey Bragin e20a9c6ec4 [AUDIT]
base/system/smss.exe

- Unlock simple and trivial functions
- Unlock unimplemented funcs and non-code things

svn path=/trunk/; revision=22269
2006-06-07 13:06:40 +00:00
Aleksey Bragin d090a2d035 Fix a typo in Internet Time tab. Spotted by hand.of.omega@gmail.com. Fixes bug 1562
svn path=/trunk/; revision=22268
2006-06-07 10:57:40 +00:00
Alex Ionescu da2029d89e - 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
2006-06-07 06:15:59 +00:00
Alex Ionescu 39bf2b48c2 - 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
2006-06-07 05:37:04 +00:00
Alex Ionescu f36b5d1f3b - 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
2006-06-07 05:04:43 +00:00
Alex Ionescu d2e5bfabe5 - 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
2006-06-07 01:47:33 +00:00
James Tabor 2097dade2d Quick patch.
svn path=/trunk/; revision=22263
2006-06-07 01:45:18 +00:00
James Tabor c537a6efb8 Cleanup coding of IntGdiPolyPolygon and IntGdiPolygon.
svn path=/trunk/; revision=22262
2006-06-07 01:28:44 +00:00
James Tabor fb9a28f2b5 Implement Get & SetTextCharacterExtra. Does nothing ATM.
svn path=/trunk/; revision=22261
2006-06-07 01:22:47 +00:00
Magnus Olsen 8fcbc86a16 Implement %Fp now we have 25 fails with wine test for string version of *printf api
svn path=/trunk/; revision=22260
2006-06-07 00:04:51 +00:00
Magnus Olsen 00d62df5ab 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
2006-06-06 23:22:11 +00:00
Johannes Anderwald f0bb911d21 add Wine's powrprof to build
svn path=/trunk/; revision=22258
2006-06-06 23:14:09 +00:00
Magnus Olsen 9c696e1c9e fixing some bugs for %c in the string version of printf
svn path=/trunk/; revision=22257
2006-06-06 23:01:44 +00:00
Johannes Anderwald dd221de709 small compilation fix
svn path=/trunk/; revision=22256
2006-06-06 22:54:18 +00:00
Magnus Olsen 26cd015421 fixing two more bugs in *printf strings version.
this make we pass one more of wine test

svn path=/trunk/; revision=22255
2006-06-06 22:43:41 +00:00
Johannes Anderwald 6c2296718e import Wine 0.9.14 powrprof
svn path=/trunk/; revision=22254
2006-06-06 21:54:39 +00:00
Johannes Anderwald fe1606b3ed prepare wine 0.9.14. powrprof import
svn path=/trunk/; revision=22253
2006-06-06 21:51:40 +00:00
Magnus Olsen 4f6d8e38f4 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
2006-06-06 21:42:42 +00:00
Alex Ionescu a25a59160d - 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
2006-06-06 21:02:55 +00:00
Johannes Anderwald 7fff40f524 add missing NtPowerInformation to def
svn path=/trunk/; revision=22248
2006-06-06 21:02:30 +00:00
Magnus Olsen 7894ff05b8 fixing 2 more fualt in msvcrt *printf api
svn path=/trunk/; revision=22247
2006-06-06 12:45:05 +00:00
Alex Ionescu 21baa4ddb6 - 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
2006-06-06 06:12:09 +00:00
Alex Ionescu 18ed42b8a4 - 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
2006-06-06 05:49:28 +00:00
Alex Ionescu afea80bbe4 - 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
2006-06-06 04:52:08 +00:00
Alex Ionescu 50224a4d55 - Fix bug in IoCreateFile which my (correct) ObReferenceObjectByHandle bugfix patch uncovered. Bootcd/installation works again.
svn path=/trunk/; revision=22243
2006-06-06 02:07:55 +00:00
Hervé Poussineau b3f2b879b0 Set libraries as project dependencies
svn path=/trunk/; revision=22242
2006-06-05 21:46:14 +00:00
Ged Murphy 485867fdaf silence some rather annoying alignment errors when building with msvc
svn path=/trunk/; revision=22240
2006-06-05 19:00:52 +00:00
Hervé Poussineau 67189b431d Change some DPRINT1 to DPRINT, as they were prior revision 21880.
svn path=/trunk/; revision=22239
2006-06-05 16:41:03 +00:00
Ged Murphy a10b3f2380 - 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
2006-06-05 16:34:38 +00:00
Hervé Poussineau 2a685bbbfe Read EDID information from screen (if possible) in HwGetVideoChildDescriptor.
Still doesn't do anything useful with it, but that's a start ;)

svn path=/trunk/; revision=22237
2006-06-05 16:31:24 +00:00
Saveliy Tretiakov 56f9a0a548 add missing check for null return
svn path=/trunk/; revision=22236
2006-06-05 15:38:04 +00:00
Saveliy Tretiakov b1e6b788ce Add Johannes Anderwald to credits.
svn path=/trunk/; revision=22235
2006-06-05 14:39:09 +00:00
Saveliy Tretiakov c43a77ea7d [AUDIT]
\trunk\reactos\dll\win32\lzexpand (unlocked)
No code.


svn path=/trunk/; revision=22234
2006-06-05 14:35:31 +00:00
Saveliy Tretiakov 8177ebd451 [AUDIT]
\trunk\reactos\base\applications\shutdown (unlocked)
I looked through code and found no signs of reverse engeneering.


svn path=/trunk/; revision=22233
2006-06-05 14:32:28 +00:00
Alex Ionescu a46ee938fa - Rename ObpCreateTypeObject to ObCreateObjectType and fix definition. The latter is actually exported in NT, and there's no reason not to export it while having our own internally renamed version.
- Added stub exports for ObCloseHandle, ObReferenceSecurityDesciptor, ObSetHandleAttributes, ObSetSecurityObjectByPointer so that someday someone can know what needs to be implemented.
- Removed ObGetObjectPointerCount. It is not exported in newer OSes and was always undocumented.
- Move ObQueryObjecctAuditingByHandle to security.c and optimized it not to attach to the system process, as well as to cache the handle table instead of dereferencing the owner process all the time.

svn path=/trunk/; revision=22232
2006-06-05 06:31:42 +00:00
Alex Ionescu 0aeaea0fb7 - Fixed formatting/commented/annotated ObReferenceObjectByHandle.
- Bug fixes:
  * Remove MAXIMUM_ALLOWED<->GENERIC_ALL conversion, I could find no mention of this in the docs.
  * Remove GENERIC_ACCESS <-> RtlMapGenericMask conversion, I could find no mention of this in the docs, and this mapping is only required when creating handles, not when referencing pointers.
- Optimizations:
  * Restructure code and remove code which was sometimes duplicated up to 5 times.
  * Do not attach/detach from the system process, this isn't required since we're merely getting a kernel pointer from the handle netry.
  * Directly increase the pointer count instead of calling ObReferenceObject, since we already have the object header in a variable.
  * Cache ObpKernelHandleTable/Process->ObjectTable and use those directly instead of always de-referencing the process.

svn path=/trunk/; revision=22231
2006-06-05 05:07:44 +00:00
Alex Ionescu 36f116cdd8 - Simplify ObGetObjectPointerCode and ObfReferenceObject.
- Fix ObReferenceObjectByPointer to actually work like documented instead of doing random incorrect checks. Also add special case for Symbolic Link objects as documented by Caz Yokoyama at Microsoft.

svn path=/trunk/; revision=22230
2006-06-05 00:32:26 +00:00
Alex Ionescu 137f145eb6 - Formatting/comment fixes.
svn path=/trunk/; revision=22229
2006-06-05 00:16:14 +00:00
Alex Ionescu 02d0bb9dbd - Fix ExChangeHandle not to send NULL but the actual context to the callback function (fix by Thomas Weidenmueller <w3seek@reactos.org>)
- Re-implement NtSetInformationObject based on ExChangeHandle and using ObpSetHandleAttributes as a callback.
- Re-implement NtQueryObject's ObjectHandleInformation case to simply return the information that's already in HandleAttributes; there is no point in querying for it all over again.
- Fix NtSetInformationObject not to allow a user-mode call to modify kernel-mdoe handle attributes. Add FIXME for Inheritance permissions check.
- Fix NtQueryObject to properly return OBJ_PERMANENT and OBJ_EXCLUSIVE; these flags are not stored in Handle Attributes.
- Fix NtQueryObject not to attempt referencing the handle if the caller specified AllTypesInformation, because then a handle is not needed.

svn path=/trunk/; revision=22228
2006-06-05 00:04:36 +00:00
Art Yerkes 7c2e312093 Sorry reverted. GreatLord says this is fixed in the wrong place.
svn path=/trunk/; revision=22227
2006-06-04 23:33:27 +00:00
Art Yerkes 6d676e6e95 Fix one wine test. Don't accept an option string that starts with =.
svn path=/trunk/; revision=22226
2006-06-04 23:30:29 +00:00
Eric Kohl de5ef123ee Fix indentation
svn path=/trunk/; revision=22225
2006-06-04 21:34:02 +00:00
Martin Fuchs 48badfaf22 fix language constant to LANG_BENGALI
svn path=/trunk/; revision=22224
2006-06-04 21:07:01 +00:00
Martin Fuchs 93fafae8ff set eol-style to native
svn path=/trunk/; revision=22223
2006-06-04 20:57:51 +00:00