summaryrefslogtreecommitdiffhomepage
path: root/src/ipc
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2022-11-18 17:29:49 +0000
committermidipix <writeonce@midipix.org>2022-11-18 19:02:48 +0000
commit1717a8ab178466bb73fd4c0a7fba1402df9deef0 (patch)
tree288489dba2c18b8751b04ec8f079a9edc85619c1 /src/ipc
parent3b05e82a2c5d529cb383a5c06b509883dc59d628 (diff)
downloadntapi-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.c43
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);
}