Commit graph

25 commits

Author SHA1 Message Date
Alex Ionescu
e4bfef2772 [NTDLL]: Export LdrOpenImageFileOptionsKey and LdrQueryIamgeFileKeyOption. These were implemented, we just never exported them.
svn path=/trunk/; revision=59583
2013-07-25 18:30:06 +00:00
Hermès Bélusca-Maïto
777fb8e63a [RTL-NTDLL]
Export (and declare) the existing function RtlFreeActivationContextStack.

svn path=/trunk/; revision=58547
2013-03-17 20:58:41 +00:00
Alex Ionescu
61d7f64ce7 [RTL]: Implement and half-plement the Object Security APIs. In most cases, ultimately forward to an internal (unimplemented) worker function, but some APIs were implemented fully. Also add missing RtlCreateAndSetSD and export it (unimplemented).
svn path=/trunk/; revision=57482
2012-10-04 19:32:18 +00:00
Alex Ionescu
3e8f4222f0 [RTL]: Add all the missing Rtl*Security*Object APIs and put them all in security.c. Move privilege functions into a new file, priv.c. No functional/code changes, just more stubs/exports and moving things around.
svn path=/trunk/; revision=57481
2012-10-04 18:48:15 +00:00
Alex Ionescu
fb5821703c [RTL]: Cleanup all the ACL functions. Mostly refactoring, commenting and styling, but there are a few important changes. First, RtlValidateAcl actually does the whole ACL validation algorithm. Second, mandatory label ACEs are not supported, because we shouldn't lie about Vista features in ntdll/kernel code.
svn path=/trunk/; revision=57331
2012-09-19 02:32:58 +00:00
Thomas Faber
f3417b4646 [CRT][NTDLL]
- Separate some _CI* functions into their own files and export them from ntdll. Patch by Vincenzo Cotugno.
See issue #7085 for more details.

svn path=/trunk/; revision=56961
2012-07-24 16:45:50 +00:00
Jérôme Gardou
ab3aa90f77 [CRT]
- Implement _vsc(w)printf for msvcrt

svn path=/trunk/; revision=56927
2012-07-21 19:59:47 +00:00
Alex Ionescu
4d61ae25fc [KERNEL32]: Enable SxS support in CreateRemoteThread, and other misc. cleanups.
svn path=/trunk/; revision=56656
2012-05-24 19:20:33 +00:00
Timo Kreuzer
8466be8d1c [NTDLL]
Mark _chkstk as extern to avoid duplication with msvcrtex library (using alloca will cause _alloca_probe to be linked, which aliases _chkstk)

svn path=/trunk/; revision=56361
2012-04-18 16:26:41 +00:00
Alex Ionescu
19a5d85926 [NTDLL/RTL]: Implement RtlGet/SetThreadErrorMode.
[NTDLL/RTL]: Fix RtlIpv4AddressToStringA and RtlIpv4AddressToStringW to work like in Windows (and crash with a NULL buffer).

svn path=/trunk/; revision=55729
2012-02-20 01:13:31 +00:00
Alex Ionescu
07ea12ee5b [RTL/NTDLL/KERNEL32]: Rtl provides worker queue and timer queue functionality, which queues a worker thread associated with a caller-supplied callback. In Windows, Rtl by default calls RtlCreateUserThread, but as soon as kernel32 loads, it's DllMain calls an exported function RtlSetThreadPoolStartFunc which changes that default to a special Base function that calls CreateRemoteThread instead. The net result is that Win32 processes using the Rtl functionality get their threads properly registered with CSRSS. In ReactOS, this did not happen, so when those threads called into CSRSS, CSRSS had no CSR_THREAD structure/state for them, which is why CsrCreateThread (and the API loop) are so badly hacked. This commit implements RtlSetThreadPoolStartFunc, implements the kernel32 base functions which wrap CreateRemoteThread, and implements the rtl functions which wrap RtlCreateUserThread. Services, Setup, and any ReactOS application using RPC now have the worker threads correctly registered.
svn path=/trunk/; revision=55706
2012-02-19 10:06:31 +00:00
Timo Kreuzer
cbee83498e [NTDLL]
- Implement amd64 version of LdrInitializeThunk and KiUserApcDispatcher
- Export ExpInterlockedPopEntrySList* on amd64, too
- Fix some 64 bit issues

svn path=/trunk/; revision=55414
2012-02-04 18:25:25 +00:00
Alex Ionescu
4e3bf71826 [RTL]: Document, define, implement, and export RtlSetThreadIsCritical.
svn path=/trunk/; revision=55310
2012-01-30 01:14:33 +00:00
Alex Ionescu
4a76b4fbe8 [NTDLL]: Add, export, and stubplement RtlComputeImportTableHash and document in NDK.
[NTDLL]: Use HANDLE instead of Win32 HKEY.
[NDK]: Add missing NtCreateProcessEx flags and some missing Ldr functions + missing RtlGetFullPathName_UstrEx.
[CSRSS]: Define two new CSRSS messages (not implemented): UpdateVdmEntry and GetVdmExitCode.

svn path=/trunk/; revision=54968
2012-01-15 03:16:00 +00:00
Pierre Schweitzer
f6149178f5 [NTDLL]
Export RtlReleaseRelativeName

svn path=/trunk/; revision=54802
2012-01-01 17:18:13 +00:00
Alex Ionescu
b5381f1fd7 [RTL]: Implement, and export, RtlDosSearchPath_Ustr as well as RtlGetFullPathName_UstrEx. RtlGetFullPathName_U is still old code but it seems good enough for now, and isn't the next target.
Nothing calls this code yet (SearchPathW soon will), this is just an implementation commit. Code was tested to boot to 3rd stage after SearchPath modification, which is the next target (step 2).
After which, the only code in the loader paths that uses legacy path APIs will be the create process path, the third and final step.

svn path=/trunk/; revision=54646
2011-12-14 03:55:54 +00:00
Alex Ionescu
784e19a384 [KERNEL32]: Implement Wow64Enable/Disable/RevertWow64Direction, document the Rtl equivalents in NDK, export and implement them in NTDLL.
[KERNEL32]: Cleanup files a bit.
    - Bintype.c is gone and moved into VDM (these are functions for VDM support).
    - Npipe.c and pipe.c are merged.
    - Dosdev is moved into client, these are not quite File APIs.
    - Base(8Bit/Unicode) APIs are moved into utils.c
    - Wow64 APIs are moved into utils.c
    - The mess that was file.c has the Replace* file APIs going into move.c (similar behaviors), the Open* APIs into create.c (similar) and the Read/Write Scatter/Gather APIs into rw.c (where they belong). What remained in file.c were mostly Set/Query functions, so it becomes fileinfo.c
    - The remaining APIs in file.c were all about paths -- at the file level, specifically filenames, so they go into filename.c
    - Move some File API functions from certain files into other files where they belong more.

svn path=/trunk/; revision=54326
2011-11-07 00:18:13 +00:00
Alex Ionescu
ec9698366a [NTDLL]: Export RtlImageNtHeaderEx and LodrLoadAlternateResourceModule.
[NDK]: Add LdrLoadAlternateResourceModule. Fix RtlDosApplyFileIsolationRedirection_UStr and add flags.
[NTDLL]: Halfplement LdrLoad/UnloadAlternateResourceModule.

svn path=/trunk/; revision=54307
2011-11-06 01:34:06 +00:00
Jérôme Gardou
b63701a2c9 [KERNEL32]
- Small performance improvement : Directly reference dll when getting its handle instead of just checking it's there and then load it

svn path=/trunk/; revision=54283
2011-11-02 23:37:38 +00:00
Timo Kreuzer
fe7e695657 [VMWINST] Fix amd64 build
[NTDLL] add missing amd64 specific exports
[MSVCRT*] Fix mangled c++ exports for amd64
[OLEAUT32] Add amd64 adm stub for call_method, fix MSVC/amd64 build
[RICHED20] Fix MSVC thiscall wrapper
[RPCRT4] add amd64 specific asm
[KSFILTER] Add c++ aliases, use dummy KeSaveFloatingPointState and KeRestoreFloatingPointState on non-x86 builds
[KMIXER] Fix a broken DPRINT
[PSEH] Priorize native SEH over dummy SEH

svn path=/trunk/; revision=53399
2011-08-23 08:58:15 +00:00
Timo Kreuzer
954922d0cd [NTDLL]
- Add exports for RtlInstallFunctionTableCallback and RtlRestoreContext (amd64 only)
[KERNEL32]
- Forward RtlCompareMemory, RtlCopyMemory, RtlDeleteFunctionTable and RtlInstallFunctionTableCallback to ntdll
- Fix build with MSVC amd64

svn path=/trunk/; revision=53343
2011-08-20 19:04:55 +00:00
Jérôme Gardou
fc7a05e721 [NTDLL]
- fix the fix : export RtlAcquirePrivilege.
- Also export RtlInterlockedCompareExchange64, it's needed by kernel32

svn path=/trunk/; revision=52896
2011-07-26 13:53:18 +00:00
Jérôme Gardou
de40c205e9 [NTDLL]
- remove duplicate declaration of RtlAdjustPrivilege

svn path=/trunk/; revision=52891
2011-07-26 08:29:53 +00:00
Alex Ionescu
64c8e2bb02 [NTDLL]: Export RtlAcquire/ReleasePrivilege.
svn path=/trunk/; revision=52871
2011-07-25 20:21:51 +00:00
Timo Kreuzer
fae2044a23 [CMAKE]
Integrate cmake stuff into trunk
Only files added.

svn path=/trunk/; revision=51783
2011-05-16 13:12:07 +00:00