From 1b6aec121567338583f5100d77a5bcd9a160363b Mon Sep 17 00:00:00 2001 From: midipix Date: Sun, 30 Jul 2017 21:21:21 +0000 Subject: subsystem interfaces: integrated ipc connection section handlers. --- include/ntapi/nt_ipc.h | 43 +++++++++++++++++++++++++++++++++++++++++++ include/ntapi/nt_tty.h | 25 +++++++++++++++++++++++++ include/ntapi/ntapi.h | 7 +++++++ 3 files changed, 75 insertions(+) (limited to 'include') diff --git a/include/ntapi/nt_ipc.h b/include/ntapi/nt_ipc.h index 1dae3b3..7238146 100644 --- a/include/ntapi/nt_ipc.h +++ b/include/ntapi/nt_ipc.h @@ -52,4 +52,47 @@ typedef int32_t __stdcall ntapi_ipc_connect_by_port( __in void * hconn, __in nt_port_attr * attr); + +typedef int32_t __stdcall ntapi_ipc_connect_section_by_attr( + __out void ** hport, + __in nt_port_attr * attr, + __out void ** hsection, + __out void ** section_addr, + __out size_t * section_size); + + +typedef int32_t __stdcall ntapi_ipc_connect_section_by_name( + __out void ** hport, + __in nt_port_name * name, + __out void ** hsection, + __out void ** section_addr, + __out size_t * section_size); + + +typedef int32_t __stdcall ntapi_ipc_connect_section_by_symlink( + __out void ** hport, + __in void * hsymlink, + __out void ** hsection, + __out void ** section_addr, + __out size_t * section_size); + + +typedef int32_t __stdcall ntapi_ipc_connect_section_by_port( + __in void * hconn, + __in nt_port_attr * attr, + __out void ** hsection, + __out void ** section_addr, + __out size_t * section_size); + + +typedef int32_t __stdcall ntapi_ipc_init_section_by_port( + __in void * hconn, + __out void ** hsection, + __out void ** section_addr, + __out size_t * section_size); + + +typedef int32_t __stdcall ntapi_ipc_disconnect_unmap_section_by_port( + __in void * hconn); + #endif diff --git a/include/ntapi/nt_tty.h b/include/ntapi/nt_tty.h index fd41753..22c24a4 100644 --- a/include/ntapi/nt_tty.h +++ b/include/ntapi/nt_tty.h @@ -168,6 +168,14 @@ typedef struct __attr_ptr_size_aligned__ _nt_tty_service_info { } nt_tty_service_info; +typedef struct __attr_ptr_size_aligned__ _nt_tty_section_info { + nt_port_attr attr; + void * section; + void * section_addr; + size_t section_size; +} nt_tty_section_info; + + typedef struct __attr_ptr_size_aligned__ _nt_tty_vms_info { void * hroot; uint32_t hash; @@ -290,6 +298,15 @@ typedef struct __attr_ptr_size_aligned__ _nt_tty_service_msg { } nt_tty_service_msg; +typedef struct __attr_ptr_size_aligned__ _nt_tty_section_msg { + nt_port_message header; + struct { + nt_tty_msg_info ttyinfo; + nt_tty_section_info secinfo; + } data; +} nt_tty_section_msg; + + typedef struct __attr_ptr_size_aligned__ _nt_tty_vms_msg { nt_port_message header; struct { @@ -375,6 +392,7 @@ typedef struct __attr_ptr_size_aligned__ _nt_tty_port_msg { nt_pty_client_info clientinfo; nt_tty_session_info sessioninfo; nt_tty_service_info svcinfo; + nt_tty_section_info secinfo; nt_sem_info seminfo; }; } nt_tty_port_msg; @@ -438,6 +456,13 @@ typedef int32_t __stdcall ntapi_tty_client_process_register( __in nt_large_integer * reserved); +typedef int32_t __stdcall ntapi_tty_query_information_section( + __in void * hport, + __out nt_io_status_block * iosb, + __out nt_tty_section_info * secinfo, + __in const nt_guid * guid); + + typedef int32_t __stdcall ntapi_tty_query_information_server( __in void * hport, __out nt_io_status_block * iosb, diff --git a/include/ntapi/ntapi.h b/include/ntapi/ntapi.h index b3071c1..eff9c94 100644 --- a/include/ntapi/ntapi.h +++ b/include/ntapi/ntapi.h @@ -392,6 +392,12 @@ typedef struct _ntapi_vtbl { ntapi_ipc_connect_by_name * ipc_connect_by_name; ntapi_ipc_connect_by_symlink * ipc_connect_by_symlink; ntapi_ipc_connect_by_port * ipc_connect_by_port; + ntapi_ipc_connect_section_by_attr * ipc_connect_section_by_attr; + ntapi_ipc_connect_section_by_name * ipc_connect_section_by_name; + ntapi_ipc_connect_section_by_symlink * ipc_connect_section_by_symlink; + ntapi_ipc_connect_section_by_port * ipc_connect_section_by_port; + ntapi_ipc_init_section_by_port * ipc_init_section_by_port; + ntapi_ipc_disconnect_unmap_section_by_port * ipc_disconnect_unmap_section_by_port; ntapi_ipc_create_pipe * ipc_create_pipe; /* nt_ldr.h */ @@ -533,6 +539,7 @@ typedef struct _ntapi_vtbl { ntapi_tty_client_session_query * tty_client_session_query; ntapi_tty_client_session_set * tty_client_session_set; ntapi_tty_client_process_register * tty_client_process_register; + ntapi_tty_query_information_section * tty_query_information_section; ntapi_tty_query_information_server * tty_query_information_server; ntapi_tty_query_information_service * tty_query_information_service; ntapi_tty_request_peer * tty_request_peer; -- cgit v1.2.3