summaryrefslogtreecommitdiffhomepage
path: root/include/ntapi
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2015-08-14 00:38:16 +0300
committermidipix <writeonce@midipix.org>2015-09-26 11:17:01 -0400
commitefc01e81a13322864775f13003a22c786dc357ed (patch)
treea376e339003fca93a1eaa8dd9d1f808071cfa277 /include/ntapi
parent188aac80bc344c30d15e82931391c833953fd432 (diff)
downloadntapi-efc01e81a13322864775f13003a22c786dc357ed.tar.bz2
ntapi-efc01e81a13322864775f13003a22c786dc357ed.tar.xz
pty inheritance: client-side implementation.
Diffstat (limited to 'include/ntapi')
-rw-r--r--include/ntapi/nt_tty.h29
-rw-r--r--include/ntapi/ntapi.h1
2 files changed, 29 insertions, 1 deletions
diff --git a/include/ntapi/nt_tty.h b/include/ntapi/nt_tty.h
index 4783eb6..8f33bc7 100644
--- a/include/ntapi/nt_tty.h
+++ b/include/ntapi/nt_tty.h
@@ -68,10 +68,15 @@ typedef enum _nt_tty_info_class {
typedef enum _nt_pty_info_class {
NT_PTY_BASIC_INFORMATION,
NT_PTY_CLIENT_INFORMATION,
+ NT_PTY_INHERIT_INFORMATION,
NT_PTY_INFORMATION_CAP
} nt_pty_info_class;
+/* client process registration flags */
+#define NT_TTY_INHERIT_HANDLES 0x0001
+
+
typedef struct __attr_ptr_size_aligned__ _nt_tty_msg_info {
uintptr_t msg_id;
uint32_t opcode;
@@ -166,6 +171,23 @@ typedef struct __attr_ptr_size_aligned__ _nt_pty_client_info {
} nt_pty_client_info;
+typedef struct __attr_ptr_size_aligned__ _nt_pty_inherit_info {
+ void * hpty;
+ nt_guid guid;
+ nt_luid luid;
+
+ union {
+ struct {
+ uint32_t access;
+ uint32_t flags;
+ uint32_t share;
+ uint32_t options;
+ };
+
+ uintptr_t any[4];
+ };
+} nt_pty_inherit_info;
+
typedef struct __attr_ptr_size_aligned__ _nt_tty_session_info {
int32_t pid;
int32_t pgid;
@@ -173,7 +195,6 @@ typedef struct __attr_ptr_size_aligned__ _nt_tty_session_info {
int32_t reserved;
} nt_tty_session_info;
-
typedef struct __attr_ptr_size_aligned__ _nt_tty_register_msg {
nt_port_message header;
struct {
@@ -341,6 +362,12 @@ typedef int32_t __stdcall ntapi_pty_reopen(
__in nt_pty * pty);
+typedef int32_t __stdcall ntapi_pty_inherit(
+ __in void * hport,
+ __out nt_pty ** pty,
+ __in nt_pty_client_info * client_info);
+
+
typedef int32_t __stdcall ntapi_pty_close(
__in nt_pty * pty);
diff --git a/include/ntapi/ntapi.h b/include/ntapi/ntapi.h
index 7978786..d6e5f65 100644
--- a/include/ntapi/ntapi.h
+++ b/include/ntapi/ntapi.h
@@ -524,6 +524,7 @@ typedef struct _ntapi_vtbl {
ntapi_tty_vms_request * tty_vms_request;
ntapi_pty_open * pty_open;
ntapi_pty_reopen * pty_reopen;
+ ntapi_pty_inherit * pty_inherit;
ntapi_pty_close * pty_close;
ntapi_pty_read * pty_read;
ntapi_pty_write * pty_write;