Rewrite the command packet transfer code between the service control manager (services.exe) and the service control dispatcher (advapi32.dll). The service name is no longer stored in an array of WCHARs at the end of the command packet. The service name is now stored behind the fixed size command packet header using an offset value in the header to determine the start of the string. The same method will be used to store start arguments to the service dispatcher, but it is not fully implemented yet.
svn path=/trunk/; revision=53358
- OkToClose procedure (OB_OKAYTOCLOSE_METHOD) returns BOOLEAN, not NTSTATUS
- Check ppi for NULL before dereferencing it in IntWinstaOkToClose (it is NULL, if we do our job of cleaning up the win32 process properly)
- Set the win32 process info to NULL on process cleanup
- Free THREADINFO and PROCESSINFO instead of leaking them
- Set NULL cursor, when the last thread is cleaned up in win32k, so we don't call UserSetCursor() in the process cleanup, when we don't have a THREADINFO anymore. This should hopefully fix a crash of MSVC builds.
- Remove unused UserGetNextHandle function
- Fix some warnings
svn path=/trunk/; revision=53211
Fix QueryServiceConfigEx[A/W]:
- If lpServiceConfig is NULL or cbBufSize is less than sizeof(QUERY_SERVICE_CONFIGA/W) pass a pointer to an internal status buffer to RQueryServiceConfigA/W.
- Revert r53153 and r53154. Adding 'in' and 'unique' attributes is NOT an option because this is not compatible with Windows.
svn path=/trunk/; revision=53202
- addendum to r53153 : [unique] and [ptr] can't be applied to [out] only parameters, so mark them as [in] too.
Now MSVC build gets as far as 3rd stage.
svn path=/trunk/; revision=53154
memory barriers
- implement a fixed version of __invlpg for MSVC, since the intrinsic is broken and can generate wrong instructions, when optimization is enabled
- add MSVC versions of _mm_mfence, _mm_lfence, _mm_sfence and __faststorefence
- add _mm_mfence() for gcc
- give _mm_lfence, _mm_sfence, __invlpg and __wbinvd proper
svn path=/trunk/; revision=53151
- turn most macros in function 2/x.
- separate rpc server and client stubs, and generate them directly instead of using a library, so they got the flags that the module uses.
- commit forgotten file from r53088
- get rid of winesdk target, it's useless now
svn path=/trunk/; revision=53112
- make generated files depend on their generator
It seems stupid, but I removed this quite some time ago, don't ask me why.
Now, you just have to build the tools and do an incremental build each time a tool is updated.
svn path=/trunk/; revision=53088
- do not redefine UNICODE_STRING and NTSTATUS if wintrnl.h has already been included
- define PNTSTATUS in wintrnl.h
- add RPC_PROTSEC_VECTOR and RPC_MGMT_AUTHORIZATION_FN definitions
svn path=/trunk/; revision=53087
- Add function types, not only function pointer types, for splay/avl tree functions
- RTL_SPLAY_LINKS needs to be defined regardless of RTL_USE_AVL_TABLES
[NDK]
- Add missing splay/avl tree function declarations
- Add the function types as well. These are also not in ntifs anymore
svn path=/trunk/; revision=53073
[CSRSRV/KERNEL32]: Have CSRSS fill out the base server static data. Still a bit of a hack since we should have a basesrv to do this, but it'll fix the "can't install any drivers" bug as well as increase performance since we now cache a bunch of data system-wide.
[KERNEL32]: Remove all related hacks in kernel32.
[CSRSRV]: Only accept the incoming connection if we found CSR process data about it.
svn path=/trunk/; revision=53040
- Remove Resource functions, as they are in wdm.h
- add KeTryToAcquireQueuedSpinLockRaiseToSynch, ExRaiseHardError & enum members
Patch by Thomas Faber
svn path=/trunk/; revision=52847
[NDK]: Fix certain SxS functions.
[RTL]: "Implement" RtlActivateActivationContextEx which lets you specify a TEB. RtlActivateActivationContext uses the current TEB. NOTE: All these functions are broken because they copy-paste Win32 wine code into NT Native functions (with different parameters/structures).
[NDK]: Fix pstypes.h -- it was a #define mess, and worked by luck because we are a < Vista OS.
[NDK]: Add RtlInitEmptyAnsiString.
svn path=/trunk/; revision=52736
Generate MSVC debugging info for KiUserExceptionDispatcher, KiIntSystemCall, KiFastSystemCall, KiFastSystemCallRet, KiSystemService, KiFastCallEntry, all systemcall stubs
Now usermode backtraces look as they should in WinDbg
svn path=/trunk/; revision=52705
[RTL]: Re-implement RtlDosSearchPath_U using new path functions from past commits. Uses correct behavior with RtlDoesFileExists (for relative paths, return success when file is locked -- for absolute paths, do not!). Also uses a more optimized path loop that does not alloc/realloc/free heap continously (only one heap allocation is used).
svn path=/trunk/; revision=52699