Sync to trunk head (r47736)
[reactos.git] / 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 struct tagCSRSS_CONSOLE *Console;
21 LONG AccessRead, AccessWrite;
22 LONG ExclusiveRead, ExclusiveWrite;
23 LONG HandleCount;
24 } Object_t;
25
26 typedef struct _CSRSS_HANDLE
27 {
28 Object_t *Object;
29 DWORD Access;
30 BOOL Inheritable;
31 DWORD ShareMode;
32 } CSRSS_HANDLE, *PCSRSS_HANDLE;
33
34 typedef VOID (WINAPI *CSR_CLEANUP_OBJECT_PROC)(Object_t *Object);
35
36 typedef struct tagCSRSS_OBJECT_DEFINITION
37 {
38 LONG Type;
39 CSR_CLEANUP_OBJECT_PROC CsrCleanupObjectProc;
40 } CSRSS_OBJECT_DEFINITION, *PCSRSS_OBJECT_DEFINITION;
41
42 /* handle.c */
43 NTSTATUS FASTCALL Win32CsrInsertObject(PCSRSS_PROCESS_DATA ProcessData,
44 PHANDLE Handle,
45 Object_t *Object,
46 DWORD Access,
47 BOOL Inheritable,
48 DWORD ShareMode);
49 NTSTATUS FASTCALL Win32CsrLockObject(PCSRSS_PROCESS_DATA ProcessData,
50 HANDLE Handle,
51 Object_t **Object,
52 DWORD Access,
53 long Type);
54 VOID FASTCALL Win32CsrUnlockObject(Object_t *Object);
55 NTSTATUS FASTCALL Win32CsrReleaseObject(PCSRSS_PROCESS_DATA ProcessData,
56 HANDLE Object);
57 NTSTATUS WINAPI Win32CsrReleaseConsole(PCSRSS_PROCESS_DATA ProcessData);
58 NTSTATUS WINAPI Win32CsrDuplicateHandleTable(PCSRSS_PROCESS_DATA SourceProcessData,
59 PCSRSS_PROCESS_DATA TargetProcessData);
60 CSR_API(CsrGetHandle);
61 CSR_API(CsrCloseHandle);
62 CSR_API(CsrVerifyHandle);
63 CSR_API(CsrDuplicateHandle);
64 CSR_API(CsrGetInputWaitHandle);
65
66 BOOL FASTCALL Win32CsrValidateBuffer(PCSRSS_PROCESS_DATA ProcessData,
67 PVOID Buffer,
68 SIZE_T NumElements,
69 SIZE_T ElementSize);
70 NTSTATUS FASTCALL Win32CsrEnumProcesses(CSRSS_ENUM_PROCESS_PROC EnumProc,
71 PVOID Context);
72
73 /* exitros.c */
74 CSR_API(CsrExitReactos);
75 CSR_API(CsrSetLogonNotifyWindow);
76 CSR_API(CsrRegisterLogonProcess);
77
78
79 /* EOF */