diff options
author | midipix <writeonce@midipix.org> | 2022-11-18 17:29:49 +0000 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2022-11-18 19:02:48 +0000 |
commit | 1717a8ab178466bb73fd4c0a7fba1402df9deef0 (patch) | |
tree | 288489dba2c18b8751b04ec8f079a9edc85619c1 /src/ipc | |
parent | 3b05e82a2c5d529cb383a5c06b509883dc59d628 (diff) | |
download | ntapi-1717a8ab178466bb73fd4c0a7fba1402df9deef0.tar.bz2 ntapi-1717a8ab178466bb73fd4c0a7fba1402df9deef0.tar.xz |
ipc helper interfaces: allow requesting an existing connection.
Diffstat (limited to 'src/ipc')
-rw-r--r-- | src/ipc/ntapi_ipc_connect.c | 43 |
1 files changed, 28 insertions, 15 deletions
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); } |