Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenlpc.h
Go to the documentation of this file.
00001 /* 00002 * PROJECT: ReactOS Kernel 00003 * LICENSE: GPL - See COPYING in the top level directory 00004 * FILE: ntoskrnl/include/internal/lpc.h 00005 * PURPOSE: Internal header for the Local Procedure Call 00006 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) 00007 */ 00008 00009 // 00010 // Define this if you want debugging support 00011 // 00012 #define _LPC_DEBUG_ 0x00 00013 00014 // 00015 // These define the Debug Masks Supported 00016 // 00017 #define LPC_CREATE_DEBUG 0x01 00018 #define LPC_CLOSE_DEBUG 0x02 00019 #define LPC_CONNECT_DEBUG 0x04 00020 #define LPC_LISTEN_DEBUG 0x08 00021 #define LPC_REPLY_DEBUG 0x10 00022 #define LPC_COMPLETE_DEBUG 0x20 00023 #define LPC_SEND_DEBUG 0x40 00024 00025 // 00026 // Debug/Tracing support 00027 // 00028 #if _LPC_DEBUG_ 00029 #ifdef NEW_DEBUG_SYSTEM_IMPLEMENTED // enable when Debug Filters are implemented 00030 #define LPCTRACE(x, ...) \ 00031 { \ 00032 DbgPrintEx("%s [%.16s] - ", \ 00033 __FUNCTION__, \ 00034 PsGetCurrentProcess()->ImageFileName); \ 00035 DbgPrintEx(__VA_ARGS__); \ 00036 } 00037 #else 00038 #define LPCTRACE(x, ...) \ 00039 if (x & LpcpTraceLevel) \ 00040 { \ 00041 DbgPrint("%s [%.16s:%lx] - ", \ 00042 __FUNCTION__, \ 00043 PsGetCurrentProcess()->ImageFileName, \ 00044 PsGetCurrentThreadId()); \ 00045 DbgPrint(__VA_ARGS__); \ 00046 } 00047 #endif 00048 #else 00049 #define LPCTRACE(x, fmt, ...) DPRINT(fmt, ##__VA_ARGS__) 00050 #endif 00051 00052 // 00053 // LPC Port/Message Flags 00054 // 00055 #define LPCP_THREAD_FLAG_IS_PORT 1 00056 #define LPCP_THREAD_FLAG_NO_IMPERSONATION 2 00057 #define LPCP_THREAD_FLAGS (LPCP_THREAD_FLAG_IS_PORT | \ 00058 LPCP_THREAD_FLAG_NO_IMPERSONATION) 00059 00060 // 00061 // Internal Port Management 00062 // 00063 VOID 00064 NTAPI 00065 LpcpClosePort( 00066 IN PEPROCESS Process OPTIONAL, 00067 IN PVOID Object, 00068 IN ACCESS_MASK GrantedAccess, 00069 IN ULONG ProcessHandleCount, 00070 IN ULONG SystemHandleCount 00071 ); 00072 00073 VOID 00074 NTAPI 00075 LpcpDeletePort( 00076 IN PVOID ObjectBody 00077 ); 00078 00079 NTSTATUS 00080 NTAPI 00081 LpcpInitializePortQueue( 00082 IN PLPCP_PORT_OBJECT Port 00083 ); 00084 00085 VOID 00086 NTAPI 00087 LpcpFreeToPortZone( 00088 IN PLPCP_MESSAGE Message, 00089 IN ULONG Flags 00090 ); 00091 00092 VOID 00093 NTAPI 00094 LpcpMoveMessage( 00095 IN PPORT_MESSAGE Destination, 00096 IN PPORT_MESSAGE Origin, 00097 IN PVOID Data, 00098 IN ULONG MessageType, 00099 IN PCLIENT_ID ClientId 00100 ); 00101 00102 VOID 00103 NTAPI 00104 LpcpSaveDataInfoMessage( 00105 IN PLPCP_PORT_OBJECT Port, 00106 IN PLPCP_MESSAGE Message, 00107 IN ULONG LockHeld 00108 ); 00109 00110 // 00111 // Module-external utlity functions 00112 // 00113 VOID 00114 NTAPI 00115 LpcExitThread( 00116 IN PETHREAD Thread 00117 ); 00118 00119 // 00120 // Initialization functions 00121 // 00122 BOOLEAN 00123 NTAPI 00124 LpcInitSystem( 00125 VOID 00126 ); 00127 00128 // 00129 // Global data inside the Process Manager 00130 // 00131 extern POBJECT_TYPE LpcPortObjectType; 00132 extern ULONG LpcpNextMessageId, LpcpNextCallbackId; 00133 extern KGUARDED_MUTEX LpcpLock; 00134 extern PAGED_LOOKASIDE_LIST LpcpMessagesLookaside; 00135 extern ULONG LpcpMaxMessageSize; 00136 extern ULONG LpcpTraceLevel; 00137 00138 // 00139 // Inlined Functions 00140 // 00141 #include "lpc_x.h" Generated on Sat May 26 2012 04:36:07 for ReactOS by
1.7.6.1
|