summaryrefslogtreecommitdiffhomepage
path: root/src/process/ntapi_tt_fork.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/process/ntapi_tt_fork.c')
-rw-r--r--src/process/ntapi_tt_fork.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/process/ntapi_tt_fork.c b/src/process/ntapi_tt_fork.c
index 58cf2c3..9c0d2de 100644
--- a/src/process/ntapi_tt_fork.c
+++ b/src/process/ntapi_tt_fork.c
@@ -24,6 +24,7 @@ static intptr_t __fastcall __ntapi_tt_fork_finalize(
int32_t status;
nt_oa oa;
nt_cid cid;
+ int page;
ntapi_internals * __internals;
__internals = __ntapi_internals();
@@ -53,6 +54,25 @@ static intptr_t __fastcall __ntapi_tt_fork_finalize(
&oa,&cid)))
return status;
+ if ((status = dalist_init_ex(
+ &__internals->ipc_conns,
+ sizeof(nt_ipc_conn),
+ NT_ALLOCATION_GRANULARITY,
+ __ntapi_ipc_page_alloc,
+ DALIST_MEMFN_CUSTOM)))
+ return status;
+
+ dalist_deposit_memory_block(
+ &__internals->ipc_conns,
+ __internals->ntapi_img_sec_bss->ipc_buffer,
+ __NT_BSS_IPC_BUFFER_SIZE);
+
+ for (page=0; __internals->ipc_page; page++)
+ dalist_deposit_memory_block(
+ &__internals->ipc_conns,
+ __internals->ipc_pages[page],
+ NT_ALLOCATION_GRANULARITY);
+
return 0;
}