From 1717a8ab178466bb73fd4c0a7fba1402df9deef0 Mon Sep 17 00:00:00 2001 From: midipix Date: Fri, 18 Nov 2022 17:29:49 +0000 Subject: ipc helper interfaces: allow requesting an existing connection. --- src/ipc/ntapi_ipc_connect.c | 43 ++++++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 15 deletions(-) (limited to 'src/ipc') diff --git a/src/ipc/ntapi_ipc_connect.c b/src/ipc/ntapi_ipc_connect.c index 21a7146..700ac37 100644 --- a/src/ipc/ntapi_ipc_connect.c +++ b/src/ipc/ntapi_ipc_connect.c @@ -475,7 +475,8 @@ int32_t __stdcall __ntapi_ipc_connect_section_by_attr( __in nt_port_attr * attr, __out void ** hsection, __out void ** secaddr, - __out size_t * secsize) + __out size_t * secsize, + __in int fexisting) { nt_port_name name; nt_unicode_string str; @@ -489,7 +490,8 @@ int32_t __stdcall __ntapi_ipc_connect_section_by_attr( return __ipc_connect_by_attr( hport,attr,&str,0, - hsection,secaddr,secsize,0); + hsection,secaddr,secsize, + fexisting); } @@ -498,7 +500,8 @@ int32_t __stdcall __ntapi_ipc_connect_section_by_name( __in nt_port_name * name, __out void ** hsection, __out void ** secaddr, - __out size_t * secsize) + __out size_t * secsize, + __in int fexisting) { int32_t status; nt_port_attr attr; @@ -513,7 +516,8 @@ int32_t __stdcall __ntapi_ipc_connect_section_by_name( return __ipc_connect_by_attr( hport,&attr,&str,0, - hsection,secaddr,secsize,0); + hsection,secaddr,secsize, + fexisting); } @@ -522,7 +526,8 @@ int32_t __stdcall __ntapi_ipc_connect_section_by_symlink( __in void * hsymlink, __out void ** hsection, __out void ** secaddr, - __out size_t * secsize) + __out size_t * secsize, + __in int fexisting) { int32_t status; nt_port_attr attr; @@ -550,7 +555,8 @@ int32_t __stdcall __ntapi_ipc_connect_section_by_symlink( return __ipc_connect_by_attr( hport,&attr,str,0, - hsection,secaddr,secsize,0); + hsection,secaddr,secsize, + fexisting); } @@ -563,43 +569,50 @@ int32_t __stdcall __ntapi_ipc_connect_section_by_port( { return __ipc_connect_by_attr( &(void *){0},attr,0,hconn, - hsection,secaddr,secsize,0); + hsection,secaddr,secsize, + false); } int32_t __stdcall __ntapi_ipc_connect_by_attr( __out void ** hport, - __in nt_port_attr * attr) + __in nt_port_attr * attr, + __in int fexisting) { return __ntapi_ipc_connect_section_by_attr( hport,attr, &(void *){0}, &(void *){0}, - &(size_t){0}); + &(size_t){0}, + fexisting); } int32_t __stdcall __ntapi_ipc_connect_by_name( __out void ** hport, - __in nt_port_name * name) + __in nt_port_name * name, + __in int fexisting) { return __ntapi_ipc_connect_section_by_name( hport,name, &(void *){0}, &(void *){0}, - &(size_t){0}); + &(size_t){0}, + fexisting); } int32_t __stdcall __ntapi_ipc_connect_by_symlink( __out void ** hport, - __in void * hsymlink) + __in void * hsymlink, + __in int fexisting) { return __ntapi_ipc_connect_section_by_symlink( hport,hsymlink, &(void *){0}, &(void *){0}, - &(size_t){0}); + &(size_t){0}, + fexisting); } @@ -624,7 +637,7 @@ int32_t __stdcall __ntapi_ipc_get_port_by_attr( &(void *){0}, &(void *){0}, &(size_t){0}, - 1); + true); } @@ -640,7 +653,7 @@ int32_t __stdcall __ntapi_ipc_get_port_section_by_attr( hsection, section_addr, section_size, - 1); + true); } -- cgit v1.2.3