3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS Win32k subsystem
5 * PURPOSE: shared sections
7 * PROGRAMMER: Thomas Weidenmueller <w3seek@reactos.com>
11 #ifndef _WIN32K_SSEC_H
12 #define _WIN32K_SSEC_H
14 typedef struct _SHARED_SECTION
16 PSECTION_OBJECT SectionObject
;
17 PVOID SystemMappedBase
;
19 } SHARED_SECTION
, *PSHARED_SECTION
;
21 typedef struct _SHARED_SECTIONS_ARRAY
23 struct _SHARED_SECTIONS_ARRAY
*Next
;
25 SHARED_SECTION SharedSection
[0];
26 } SHARED_SECTIONS_ARRAY
, *PSHARED_SECTIONS_ARRAY
;
28 typedef struct _SHARED_SECTION_POOL
33 ULONG SharedSectionCount
;
34 SHARED_SECTIONS_ARRAY SectionsArray
;
35 } SHARED_SECTION_POOL
, *PSHARED_SECTION_POOL
;
37 NTSTATUS INTERNAL_CALL
38 IntUserCreateSharedSectionPool(IN ULONG MaximumPoolSize
,
39 IN PSHARED_SECTION_POOL
*SharedSectionPool
);
42 IntUserFreeSharedSectionPool(IN PSHARED_SECTION_POOL SharedSectionPool
);
44 NTSTATUS INTERNAL_CALL
45 InUserDeleteSharedSection(IN PSHARED_SECTION_POOL SharedSectionPool
,
46 IN PVOID SystemMappedBase
);
48 NTSTATUS INTERNAL_CALL
49 IntUserCreateSharedSection(IN PSHARED_SECTION_POOL SharedSectionPool
,
50 IN OUT PVOID
*SystemMappedBase
,
51 IN OUT ULONG
*SharedSectionSize
);
53 NTSTATUS INTERNAL_CALL
54 IntUserMapSharedSection(IN PSHARED_SECTION_POOL SharedSectionPool
,
56 IN PVOID SystemMappedBase
,
57 IN PLARGE_INTEGER SectionOffset OPTIONAL
,
58 IN OUT PVOID
*UserMappedBase
,
59 IN PULONG ViewSize OPTIONAL
,
62 NTSTATUS INTERNAL_CALL
63 IntUserUnMapSharedSection(IN PSHARED_SECTION_POOL SharedSectionPool
,
65 IN PVOID SystemMappedBase
,
66 IN PVOID UserMappedBase
);
68 extern PSHARED_SECTION_POOL SessionSharedSectionPool
;
70 #endif /* ! defined(_WIN32K_SSEC_H) */