ntdll: Implementation of inter-process NtMapViewOfSection and NtUnmapViewOfSection.
diff --git a/server/protocol.def b/server/protocol.def
index 9bfdbd0..af9db7b 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -238,6 +238,8 @@
APC_VIRTUAL_FLUSH,
APC_VIRTUAL_LOCK,
APC_VIRTUAL_UNLOCK,
+ APC_MAP_VIEW,
+ APC_UNMAP_VIEW,
APC_CREATE_THREAD
};
@@ -313,6 +315,23 @@
} virtual_unlock;
struct
{
+ enum apc_type type; /* APC_MAP_VIEW */
+ obj_handle_t handle; /* mapping handle */
+ void *addr; /* requested address */
+ unsigned long size; /* allocation size */
+ unsigned int offset_low;/* file offset */
+ unsigned int offset_high;
+ unsigned int zero_bits; /* allocation alignment */
+ unsigned int alloc_type;/* allocation type */
+ unsigned int prot; /* memory protection flags */
+ } map_view;
+ struct
+ {
+ enum apc_type type; /* APC_UNMAP_VIEW */
+ void *addr; /* view address */
+ } unmap_view;
+ struct
+ {
enum apc_type type; /* APC_CREATE_THREAD */
void (__stdcall *func)(void*); /* start function */
void *arg; /* argument for start function */
@@ -382,6 +401,18 @@
} virtual_unlock;
struct
{
+ enum apc_type type; /* APC_MAP_VIEW */
+ unsigned int status; /* status returned by call */
+ void *addr; /* resulting address */
+ unsigned long size; /* resulting size */
+ } map_view;
+ struct
+ {
+ enum apc_type type; /* APC_MAP_VIEW */
+ unsigned int status; /* status returned by call */
+ } unmap_view;
+ struct
+ {
enum apc_type type; /* APC_CREATE_THREAD */
unsigned int status; /* status returned by call */
thread_id_t tid; /* thread id */