[WIN32CSR] Clean up the debris from r47314: Removed some redundant code, reorganized...
[reactos.git] / reactos / subsystems / win32 / csrss / win32csr / win32csr.h
1 /* $Id$
2 *
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS system libraries
5 * FILE: subsys/csrss/win32csr/win32csr.h
6 * PURPOSE: Interface to win32csr.dll
7 */
8
9 #pragma once
10
11 #include <windows.h>
12 #include <commctrl.h>
13
14 extern HANDLE Win32CsrApiHeap;
15 extern HINSTANCE Win32CsrDllHandle;
16
17 typedef struct Object_tt
18 {
19 LONG Type;
20 LONG ReferenceCount;
21 CRITICAL_SECTION Lock;
22 } Object_t;
23
24 typedef struct _CSRSS_HANDLE
25 {
26 Object_t *Object;
27 DWORD Access;
28 BOOL Inheritable;
29 } CSRSS_HANDLE, *PCSRSS_HANDLE;
30
31 typedef VOID (WINAPI *CSR_CLEANUP_OBJECT_PROC)(Object_t *Object);
32
33 typedef struct tagCSRSS_OBJECT_DEFINITION
34 {
35 LONG Type;
36 CSR_CLEANUP_OBJECT_PROC CsrCleanupObjectProc;
37 } CSRSS_OBJECT_DEFINITION, *PCSRSS_OBJECT_DEFINITION;
38
39 /* handle.c */
40 NTSTATUS FASTCALL Win32CsrInsertObject(PCSRSS_PROCESS_DATA ProcessData,
41 PHANDLE Handle,
42 Object_t *Object,
43 DWORD Access,
44 BOOL Inheritable);
45 NTSTATUS FASTCALL Win32CsrLockObject(PCSRSS_PROCESS_DATA ProcessData,
46 HANDLE Handle,
47 Object_t **Object,
48 DWORD Access,
49 long Type);
50 VOID FASTCALL Win32CsrUnlockObject(Object_t *Object);
51 NTSTATUS FASTCALL Win32CsrGetObject(PCSRSS_PROCESS_DATA ProcessData,
52 HANDLE Handle,
53 Object_t **Object,
54 DWORD Access);
55 NTSTATUS FASTCALL Win32CsrReleaseObjectByPointer(Object_t *Object);
56 NTSTATUS FASTCALL Win32CsrReleaseObject(PCSRSS_PROCESS_DATA ProcessData,
57 HANDLE Object);
58 NTSTATUS WINAPI Win32CsrReleaseConsole(PCSRSS_PROCESS_DATA ProcessData);
59 NTSTATUS WINAPI Win32CsrDuplicateHandleTable(PCSRSS_PROCESS_DATA SourceProcessData,
60 PCSRSS_PROCESS_DATA TargetProcessData);
61 CSR_API(CsrGetInputHandle);
62 CSR_API(CsrGetOutputHandle);
63 CSR_API(CsrCloseHandle);
64 CSR_API(CsrVerifyHandle);
65 CSR_API(CsrDuplicateHandle);
66 CSR_API(CsrGetInputWaitHandle);
67
68 NTSTATUS FASTCALL Win32CsrEnumProcesses(CSRSS_ENUM_PROCESS_PROC EnumProc,
69 PVOID Context);
70
71 /* exitros.c */
72 CSR_API(CsrExitReactos);
73 CSR_API(CsrSetLogonNotifyWindow);
74 CSR_API(CsrRegisterLogonProcess);
75
76
77 /* EOF */