From 30d28dce7f884ffc2312a8b26f30759ae5f09aff Mon Sep 17 00:00:00 2001 From: midipix Date: Sun, 30 Jul 2017 21:21:21 +0000 Subject: subsystem interfaces: integrated ipc connection handlers. --- src/internal/ntapi.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/internal/ntapi.c') diff --git a/src/internal/ntapi.c b/src/internal/ntapi.c index 336b5db..da91cfe 100644 --- a/src/internal/ntapi.c +++ b/src/internal/ntapi.c @@ -130,6 +130,20 @@ static int32_t __fastcall __ntapi_init_once(ntapi_vtbl ** pvtbl) if (status != NT_STATUS_SUCCESS) return status; + /* ipc connection list */ + 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, + &__ntapi_img_bss.ipc_buffer, + __NT_BSS_IPC_BUFFER_SIZE); + /* hashed import table */ __ntapi_tt_populate_hashed_import_table( pe_get_ntdll_module_handle(), @@ -165,6 +179,12 @@ static int32_t __fastcall __ntapi_init_once(ntapi_vtbl ** pvtbl) __ntapi->tt_open_logical_parent_directory = __ntapi_tt_open_logical_parent_directory; __ntapi->tt_open_physical_parent_directory = __ntapi_tt_open_physical_parent_directory; + /* nt_ipc.h */ + __ntapi->ipc_connect_by_attr = __ntapi_ipc_connect_by_attr; + __ntapi->ipc_connect_by_name = __ntapi_ipc_connect_by_name; + __ntapi->ipc_connect_by_symlink = __ntapi_ipc_connect_by_symlink; + __ntapi->ipc_connect_by_port = __ntapi_ipc_connect_by_port; + /* nt_ldr.h */ __ntapi->ldr_load_system_dll = __ntapi_ldr_load_system_dll; __ntapi->ldr_create_state_snapshot = __ntapi_ldr_create_state_snapshot; -- cgit v1.2.3