summaryrefslogtreecommitdiffhomepage
path: root/include/ntapi/nt_tty.h
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/nt_tty.h
parent188aac80bc344c30d15e82931391c833953fd432 (diff)
downloadntapi-efc01e81a13322864775f13003a22c786dc357ed.tar.bz2
ntapi-efc01e81a13322864775f13003a22c786dc357ed.tar.xz
pty inheritance: client-side implementation.
Diffstat (limited to 'include/ntapi/nt_tty.h')
-rw-r--r--include/ntapi/nt_tty.h29
1 files changed, 28 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);