Blame include/ntapi/nt_ipc.h

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,
842d0f
	__in		uint32_t	advisory_buffer_size);
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