summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2017-09-08 22:22:22 +0000
committermidipix <writeonce@midipix.org>2017-09-08 22:49:30 -0400
commit47f21a54cf74e2ec0fc7aa7e3ee06ab5087600a6 (patch)
tree99d6b4aa390f16e0891877479e5adb4de005d59d /include
parenta6563a605d7906252921503e89eae8da00eb599c (diff)
downloadntapi-47f21a54cf74e2ec0fc7aa7e3ee06ab5087600a6.tar.bz2
ntapi-47f21a54cf74e2ec0fc7aa7e3ee06ab5087600a6.tar.xz
integrated msgqueue client side interfaces.
Diffstat (limited to 'include')
-rw-r--r--include/ntapi/nt_msq.h97
-rw-r--r--include/ntapi/nt_process.h10
-rw-r--r--include/ntapi/ntapi.h12
3 files changed, 118 insertions, 1 deletions
diff --git a/include/ntapi/nt_msq.h b/include/ntapi/nt_msq.h
index 1aff629..d84b318 100644
--- a/include/ntapi/nt_msq.h
+++ b/include/ntapi/nt_msq.h
@@ -46,4 +46,101 @@ typedef struct __attr_ptr_size_aligned__ _nt_msq_info {
} nt_msq_info;
+/* msgqueue client interfaces */
+typedef int32_t __stdcall ntapi_msq_create(
+ __in void * hport,
+ __out nt_msq_info * msq,
+ __in uint32_t access,
+ __in nt_object_attributes * oa,
+ __out nt_iosb * iosb,
+ __in uint32_t share,
+ __in uint32_t nslots);
+
+
+typedef int32_t __stdcall ntapi_msq_open(
+ __in void * hport,
+ __out nt_msq_info * msq,
+ __in uint32_t access,
+ __in nt_object_attributes * oa,
+ __out nt_iosb * iosb,
+ __in uint32_t share,
+ __in uint32_t nslots);
+
+
+typedef int32_t __stdcall ntapi_msq_send(
+ __in nt_msq_info * msq,
+ __in void * hevent __optional,
+ __in nt_io_apc_routine * apc_routine __optional,
+ __in void * apc_context __optional,
+ __in const void * buffer,
+ __in size_t len,
+ __in intptr_t rank,
+ __in uint32_t options,
+ __out nt_io_status_block * iosb);
+
+
+typedef int32_t __stdcall ntapi_msq_recv(
+ __in nt_msq_info * msq,
+ __in void * hevent __optional,
+ __in nt_io_apc_routine * apc_routine __optional,
+ __in void * apc_context __optional,
+ __out void * buffer,
+ __in size_t len,
+ __in intptr_t rank,
+ __in uint32_t options,
+ __out nt_io_status_block * iosb);
+
+
+typedef int32_t __stdcall ntapi_msq_fcntl(
+ __in nt_msq_info * msq,
+ __in void * hevent __optional,
+ __in nt_io_apc_routine * apc_routine __optional,
+ __in void * apc_context __optional,
+ __out nt_iosb * iosb,
+ __in uint32_t tty_control_code,
+ __in void * input_buffer __optional,
+ __in uint32_t input_buffer_length,
+ __out void * output_buffer __optional,
+ __in uint32_t output_buffer_length);
+
+
+typedef int32_t __stdcall ntapi_msq_ioctl(
+ __in nt_msq_info * msq,
+ __in void * hevent __optional,
+ __in nt_io_apc_routine * apc_routine __optional,
+ __in void * apc_context __optional,
+ __out nt_iosb * iosb,
+ __in uint32_t ipc_control_code,
+ __in void * input_buffer __optional,
+ __in uint32_t input_buffer_length,
+ __out void * output_buffer __optional,
+ __in uint32_t output_buffer_length);
+
+
+typedef int32_t __stdcall ntapi_msq_query(
+ __in nt_msq_info * msq,
+ __out nt_io_status_block * iosb,
+ __out void * sem_info,
+ __in uint32_t sem_info_length,
+ __in int32_t sem_ipc_cmd);
+
+
+typedef int32_t __stdcall ntapi_msq_set(
+ __in nt_msq_info * msq,
+ __out nt_io_status_block * iosb,
+ __in void * sem_info,
+ __in uint32_t sem_info_length,
+ __in int32_t sem_ipc_cmd);
+
+
+typedef int32_t __stdcall ntapi_msq_cancel(
+ __in nt_msq_info * msq,
+ __out nt_iosb * iosb);
+
+
+typedef int32_t __stdcall ntapi_msq_free(
+ __in nt_msq_info * msq,
+ __out nt_iosb * iosb);
+
+
#endif
diff --git a/include/ntapi/nt_process.h b/include/ntapi/nt_process.h
index c284185..1a21e6b 100644
--- a/include/ntapi/nt_process.h
+++ b/include/ntapi/nt_process.h
@@ -467,7 +467,11 @@ typedef struct _nt_runtime_data {
void * hsemctldir;
void * hsemkeydir;
void * hsempiddir;
- void * hreserved;
+ void * hmsqctl;
+ void * hmsqpid;
+ void * hmsqctldir;
+ void * hmsqkeydir;
+ void * hmsqpiddir;
nt_guid abi;
nt_cid cid_self;
nt_cid cid_parent;
@@ -515,6 +519,10 @@ typedef struct _nt_runtime_data {
int32_t semctl_type;
int32_t semctl_subtype;
uint32_t semctl_keys[6];
+ nt_guid msqctl_guid;
+ int32_t msqctl_type;
+ int32_t msqctl_subtype;
+ uint32_t msqctl_keys[6];
int32_t stdin_type;
int32_t stdout_type;
int32_t stderr_type;
diff --git a/include/ntapi/ntapi.h b/include/ntapi/ntapi.h
index 71416d8..8d2b26a 100644
--- a/include/ntapi/ntapi.h
+++ b/include/ntapi/ntapi.h
@@ -413,6 +413,18 @@ typedef struct _ntapi_vtbl {
ntapi_sem_cancel * sem_cancel;
ntapi_sem_free * sem_free;
+ /* nt_msq.h */
+ ntapi_msq_create * msq_create;
+ ntapi_msq_open * msq_open;
+ ntapi_msq_send * msq_send;
+ ntapi_msq_recv * msq_recv;
+ ntapi_msq_fcntl * msq_fcntl;
+ ntapi_msq_ioctl * msq_ioctl;
+ ntapi_msq_query * msq_query;
+ ntapi_msq_set * msq_set;
+ ntapi_msq_cancel * msq_cancel;
+ ntapi_msq_free * msq_free;
+
/* nt_ldr.h */
ntapi_ldr_load_system_dll * ldr_load_system_dll;
ntapi_ldr_create_state_snapshot * ldr_create_state_snapshot;