- God is a second-hand imitation of Gé. Fix for bug 1213.
[reactos.git] / reactos / subsys / win32k / include / ssec.h
1 /* $Id$
2 *
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS Win32k subsystem
5 * PURPOSE: shared sections
6 * FILE: include/ssec.h
7 * PROGRAMMER: Thomas Weidenmueller <w3seek@reactos.com>
8 *
9 */
10
11 #ifndef _WIN32K_SSEC_H
12 #define _WIN32K_SSEC_H
13
14 typedef struct _SHARED_SECTION
15 {
16 PSECTION_OBJECT SectionObject;
17 PVOID SystemMappedBase;
18 ULONG ViewSize;
19 } SHARED_SECTION, *PSHARED_SECTION;
20
21 typedef struct _SHARED_SECTIONS_ARRAY
22 {
23 struct _SHARED_SECTIONS_ARRAY *Next;
24 ULONG nEntries;
25 SHARED_SECTION SharedSection[0];
26 } SHARED_SECTIONS_ARRAY, *PSHARED_SECTIONS_ARRAY;
27
28 typedef struct _SHARED_SECTION_POOL
29 {
30 FAST_MUTEX Lock;
31 ULONG PoolSize;
32 ULONG PoolFree;
33 ULONG SharedSectionCount;
34 SHARED_SECTIONS_ARRAY SectionsArray;
35 } SHARED_SECTION_POOL, *PSHARED_SECTION_POOL;
36
37 NTSTATUS INTERNAL_CALL
38 IntUserCreateSharedSectionPool(IN ULONG MaximumPoolSize,
39 IN PSHARED_SECTION_POOL *SharedSectionPool);
40
41 VOID INTERNAL_CALL
42 IntUserFreeSharedSectionPool(IN PSHARED_SECTION_POOL SharedSectionPool);
43
44 NTSTATUS INTERNAL_CALL
45 InUserDeleteSharedSection(IN PSHARED_SECTION_POOL SharedSectionPool,
46 IN PVOID SystemMappedBase);
47
48 NTSTATUS INTERNAL_CALL
49 IntUserCreateSharedSection(IN PSHARED_SECTION_POOL SharedSectionPool,
50 IN OUT PVOID *SystemMappedBase,
51 IN OUT ULONG *SharedSectionSize);
52
53 NTSTATUS INTERNAL_CALL
54 IntUserMapSharedSection(IN PSHARED_SECTION_POOL SharedSectionPool,
55 IN PEPROCESS Process,
56 IN PVOID SystemMappedBase,
57 IN PLARGE_INTEGER SectionOffset OPTIONAL,
58 IN OUT PVOID *UserMappedBase,
59 IN PULONG ViewSize OPTIONAL,
60 IN BOOLEAN ReadOnly);
61
62 NTSTATUS INTERNAL_CALL
63 IntUserUnMapSharedSection(IN PSHARED_SECTION_POOL SharedSectionPool,
64 IN PEPROCESS Process,
65 IN PVOID SystemMappedBase,
66 IN PVOID UserMappedBase);
67
68 extern PSHARED_SECTION_POOL SessionSharedSectionPool;
69
70 #endif /* ! defined(_WIN32K_SSEC_H) */
71
72 /* EOF */
73