X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Finclude%2Freactos%2Fsubsys%2Fcsr%2Fcsrsrv.h;h=8634d3cf834468a0e32687be3c8a5617d083fc8a;hp=5a0b53f4f0a58252823b0a26a56e1f7bb9eb441b;hb=46e2b227f29da08f97a16687cf72dd7f83940d95;hpb=ec9cdf3b8a01ef170ae4440aa9c029552802266c diff --git a/reactos/include/reactos/subsys/csr/csrsrv.h b/reactos/include/reactos/subsys/csr/csrsrv.h index 5a0b53f4f0a..8634d3cf834 100644 --- a/reactos/include/reactos/subsys/csr/csrsrv.h +++ b/reactos/include/reactos/subsys/csr/csrsrv.h @@ -10,6 +10,14 @@ #ifndef _CSRSRV_H #define _CSRSRV_H +/* + * The CSR_DBG macro is defined for building CSR Servers + * with extended debugging information. + */ +#if DBG +#define CSR_DBG +#endif + #include "csrmsg.h" @@ -134,7 +142,7 @@ typedef enum _CSR_REPLY_CODE */ typedef BOOLEAN -(*CSR_WAIT_FUNCTION)( +(NTAPI *CSR_WAIT_FUNCTION)( IN PLIST_ENTRY WaitList, IN PCSR_THREAD WaitThread, IN PCSR_API_MESSAGE WaitApiMessage, @@ -148,7 +156,6 @@ typedef struct _CSR_WAIT_BLOCK { ULONG Size; // Size of the wait block (variable-sized) LIST_ENTRY WaitList; - LIST_ENTRY UserWaitList; PVOID WaitContext; PCSR_THREAD WaitThread; CSR_WAIT_FUNCTION WaitFunction; @@ -216,7 +223,14 @@ typedef struct _CSR_SERVER_DLL ULONG HighestApiSupported; PCSR_API_ROUTINE *DispatchTable; PBOOLEAN ValidTable; // Table of booleans which describe whether or not a server function call is valid when it is called via CsrCallServerFromServer. +/* + * On Windows Server 2003, CSR Servers contain + * the API Names Table only in Debug Builds. + */ +#ifdef CSR_DBG PCHAR *NameTable; +#endif + ULONG SizeOfProcessData; PCSR_CONNECT_CALLBACK ConnectCallback; PCSR_DISCONNECT_CALLBACK DisconnectCallback; @@ -226,7 +240,13 @@ typedef struct _CSR_SERVER_DLL PCSR_SHUTDOWNPROCESS_CALLBACK ShutdownProcessCallback; ULONG Unknown2[3]; } CSR_SERVER_DLL, *PCSR_SERVER_DLL; -C_ASSERT(FIELD_OFFSET(CSR_SERVER_DLL, SharedSection) == 0x3C); +#ifndef _WIN64 + #ifdef CSR_DBG + C_ASSERT(FIELD_OFFSET(CSR_SERVER_DLL, SharedSection) == 0x3C); + #else + C_ASSERT(FIELD_OFFSET(CSR_SERVER_DLL, SharedSection) == 0x38); + #endif +#endif typedef NTSTATUS @@ -285,8 +305,7 @@ CsrCreateWait(IN PLIST_ENTRY WaitList, IN CSR_WAIT_FUNCTION WaitFunction, IN PCSR_THREAD CsrWaitThread, IN OUT PCSR_API_MESSAGE WaitApiMessage, - IN PVOID WaitContext, - IN PLIST_ENTRY UserWaitList OPTIONAL); + IN PVOID WaitContext); NTSTATUS NTAPI @@ -343,13 +362,13 @@ CsrLockThreadByClientId(IN HANDLE Tid, VOID NTAPI -CsrMoveSatisfiedWait(IN PLIST_ENTRY NewEntry, +CsrMoveSatisfiedWait(IN PLIST_ENTRY DestinationList, IN PLIST_ENTRY WaitList); BOOLEAN NTAPI CsrNotifyWait(IN PLIST_ENTRY WaitList, - IN ULONG WaitType, + IN BOOLEAN NotifyAll, IN PVOID WaitArgument1, IN PVOID WaitArgument2);