|
|
dd89bb |
#ifndef _NT_IPC_H_
|
|
|
dd89bb |
#define _NT_IPC_H_
|
|
|
dd89bb |
|
|
|
414ad3 |
#include "nt_abi.h"
|
|
|
dd89bb |
#include "nt_object.h"
|
|
|
dd89bb |
|
|
|
4a2e49 |
/* friendly ipc guids */
|
|
|
4a2e49 |
#define NT_IPC_GUID_SEMCTL {0xe47c05df,0x5f5c,0x4762,{0xa2,0x79,0xd2,0x82,0xf5,0x39,0xea,0xdf}}
|
|
|
4a2e49 |
#define NT_IPC_GUID_SEMKEY {0xc6e442c3,0x2ac5,0x4d1d,{0x92,0xf3,0x6e,0x10,0xc6,0x1f,0x53,0x79}}
|
|
|
4a2e49 |
#define NT_IPC_GUID_SEMPID {0x571ac9bb,0x22eb,0x43f2,{0x8d,0xd6,0x64,0x39,0x49,0xa6,0xe9,0x1f}}
|
|
|
4a2e49 |
|
|
|
4a2e49 |
/* friendly ipc object directory prefixes */
|
|
|
4a2e49 |
#define NT_IPC_OBJDIR_PREFIX_SEMCTL {'s','e','m','c','t','l'}
|
|
|
4a2e49 |
#define NT_IPC_OBJDIR_PREFIX_SEMKEY {'s','e','m','k','e','y'}
|
|
|
4a2e49 |
#define NT_IPC_OBJDIR_PREFIX_SEMPID {'s','e','m','p','i','d'}
|
|
|
4a2e49 |
|
|
|
4a2e49 |
|
|
|
4a2e49 |
/* ipc commands */
|
|
|
4a2e49 |
#define NT_IPC_CMD_RMID (0)
|
|
|
4a2e49 |
#define NT_IPC_CMD_SET (1)
|
|
|
4a2e49 |
#define NT_IPC_CMD_STAT (2)
|
|
|
4a2e49 |
#define NT_IPC_CMD_INFO (3)
|
|
|
4a2e49 |
|
|
|
4a2e49 |
|
|
|
4a2e49 |
/* ipc special keys */
|
|
|
4a2e49 |
#define NT_IPC_KEY_PRIVATE (0)
|
|
|
4a2e49 |
|
|
|
4a2e49 |
|
|
|
4a2e49 |
/* ipc extension interfaces */
|
|
|
dd89bb |
typedef int32_t __stdcall ntapi_ipc_create_pipe(
|
|
|
dd89bb |
__out void ** hpipe_read,
|
|
|
dd89bb |
__out void ** hpipe_write,
|
|
|
dd89bb |
__in uint32_t advisory_buffer_size __optional);
|
|
|
dd89bb |
|
|
|
30d28d |
|
|
|
30d28d |
typedef int32_t __stdcall ntapi_ipc_connect_by_attr(
|
|
|
30d28d |
__out void ** hport,
|
|
|
30d28d |
__in nt_port_attr * attr);
|
|
|
30d28d |
|
|
|
30d28d |
|
|
|
30d28d |
typedef int32_t __stdcall ntapi_ipc_connect_by_name(
|
|
|
30d28d |
__out void ** hport,
|
|
|
30d28d |
__in nt_port_name * name);
|
|
|
30d28d |
|
|
|
30d28d |
|
|
|
30d28d |
typedef int32_t __stdcall ntapi_ipc_connect_by_symlink(
|
|
|
30d28d |
__out void ** hport,
|
|
|
30d28d |
__in void * hsymlink);
|
|
|
30d28d |
|
|
|
30d28d |
|
|
|
30d28d |
typedef int32_t __stdcall ntapi_ipc_connect_by_port(
|
|
|
30d28d |
__in void * hconn,
|
|
|
30d28d |
__in nt_port_attr * attr);
|
|
|
30d28d |
|
|
|
1b6aec |
|
|
|
1b6aec |
typedef int32_t __stdcall ntapi_ipc_connect_section_by_attr(
|
|
|
1b6aec |
__out void ** hport,
|
|
|
1b6aec |
__in nt_port_attr * attr,
|
|
|
1b6aec |
__out void ** hsection,
|
|
|
1b6aec |
__out void ** section_addr,
|
|
|
1b6aec |
__out size_t * section_size);
|
|
|
1b6aec |
|
|
|
1b6aec |
|
|
|
1b6aec |
typedef int32_t __stdcall ntapi_ipc_connect_section_by_name(
|
|
|
1b6aec |
__out void ** hport,
|
|
|
1b6aec |
__in nt_port_name * name,
|
|
|
1b6aec |
__out void ** hsection,
|
|
|
1b6aec |
__out void ** section_addr,
|
|
|
1b6aec |
__out size_t * section_size);
|
|
|
1b6aec |
|
|
|
1b6aec |
|
|
|
1b6aec |
typedef int32_t __stdcall ntapi_ipc_connect_section_by_symlink(
|
|
|
1b6aec |
__out void ** hport,
|
|
|
1b6aec |
__in void * hsymlink,
|
|
|
1b6aec |
__out void ** hsection,
|
|
|
1b6aec |
__out void ** section_addr,
|
|
|
1b6aec |
__out size_t * section_size);
|
|
|
1b6aec |
|
|
|
1b6aec |
|
|
|
1b6aec |
typedef int32_t __stdcall ntapi_ipc_connect_section_by_port(
|
|
|
1b6aec |
__in void * hconn,
|
|
|
1b6aec |
__in nt_port_attr * attr,
|
|
|
1b6aec |
__out void ** hsection,
|
|
|
1b6aec |
__out void ** section_addr,
|
|
|
1b6aec |
__out size_t * section_size);
|
|
|
1b6aec |
|
|
|
1b6aec |
|
|
|
edb085 |
typedef int32_t __stdcall ntapi_ipc_get_port_by_attr(
|
|
|
edb085 |
__out void ** hport,
|
|
|
edb085 |
__in nt_port_attr * attr);
|
|
|
edb085 |
|
|
|
edb085 |
|
|
|
edb085 |
typedef int32_t __stdcall ntapi_ipc_get_port_section_by_attr(
|
|
|
edb085 |
__out void ** hport,
|
|
|
edb085 |
__in nt_port_attr * attr,
|
|
|
edb085 |
__out void ** hsection,
|
|
|
edb085 |
__out void ** section_addr,
|
|
|
edb085 |
__out size_t * section_size);
|
|
|
edb085 |
|
|
|
edb085 |
|
|
|
1b6aec |
typedef int32_t __stdcall ntapi_ipc_init_section_by_port(
|
|
|
1b6aec |
__in void * hconn,
|
|
|
1b6aec |
__out void ** hsection,
|
|
|
1b6aec |
__out void ** section_addr,
|
|
|
1b6aec |
__out size_t * section_size);
|
|
|
1b6aec |
|
|
|
1b6aec |
|
|
|
1b6aec |
typedef int32_t __stdcall ntapi_ipc_disconnect_unmap_section_by_port(
|
|
|
1b6aec |
__in void * hconn);
|
|
|
1b6aec |
|
|
|
dd89bb |
#endif
|