diff options
author | midipix <writeonce@midipix.org> | 2017-01-06 12:38:12 -0500 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2017-01-07 09:02:33 -0500 |
commit | e3e5a218e16e376c4ef18b5f5aba649e5e5063c0 (patch) | |
tree | 6b24adac0f5323bca8ba0c9209c01d72e645ca0c | |
parent | 0d309b364fdde867b244db13a6c3c491c5b573c2 (diff) | |
download | ntapi-e3e5a218e16e376c4ef18b5f5aba649e5e5063c0.tar.bz2 ntapi-e3e5a218e16e376c4ef18b5f5aba649e5e5063c0.tar.xz |
subsystem infrastructure: distinguish between port and session type/subtype.
-rw-r--r-- | include/ntapi/nt_process.h | 4 | ||||
-rw-r--r-- | include/ntapi/nt_tty.h | 7 | ||||
-rw-r--r-- | src/tty/ntapi_tty_create_session.c | 13 |
3 files changed, 22 insertions, 2 deletions
diff --git a/include/ntapi/nt_process.h b/include/ntapi/nt_process.h index a58e616..39e84e9 100644 --- a/include/ntapi/nt_process.h +++ b/include/ntapi/nt_process.h @@ -470,6 +470,10 @@ typedef struct _nt_runtime_data { void * hsync; void * hswap; void * srv_ready; + nt_guid port_guid; + int32_t port_type; + int32_t port_subtype; + uint32_t port_keys[6]; nt_guid srv_guid; int32_t srv_type; int32_t srv_subtype; diff --git a/include/ntapi/nt_tty.h b/include/ntapi/nt_tty.h index 4ed536f..636f4ae 100644 --- a/include/ntapi/nt_tty.h +++ b/include/ntapi/nt_tty.h @@ -88,6 +88,12 @@ typedef enum _nt_tty_session_type { } nt_tty_session_type; +typedef enum _nt_tty_session_subtype { + NT_TTY_SESSION_SUBTYPE_DEFAULT, + NT_TTY_SESSION_SUBTYPE_CAP, +} nt_tty_session_subtype; + + typedef enum _nt_tty_server_info_class { NT_TTY_SERVER_BASIC_INFORMATION, NT_TTY_SERVER_PTM_SLOT_INFORMATION, @@ -352,6 +358,7 @@ typedef int32_t __stdcall ntapi_tty_create_session( __out void ** hport, __out nt_port_name * port_name, __in nt_tty_session_type type, + __in nt_tty_session_subtype subtype, __in const nt_guid * guid __optional, __in wchar16_t * image_name __optional, __in void * htty __optional); diff --git a/src/tty/ntapi_tty_create_session.c b/src/tty/ntapi_tty_create_session.c index 6c57d39..687d182 100644 --- a/src/tty/ntapi_tty_create_session.c +++ b/src/tty/ntapi_tty_create_session.c @@ -29,6 +29,7 @@ int32_t __stdcall __ntapi_tty_create_session( __out void ** hport, __out nt_port_name * port_name, __in nt_tty_session_type type, + __in nt_tty_session_subtype subtype, __in const nt_guid * guid __optional, __in wchar16_t * image_name __optional, __in void * htty __optional) @@ -148,8 +149,16 @@ int32_t __stdcall __ntapi_tty_create_session( } /* subsystem attributes */ - ssattr.srv_type = port_attr.type; - ssattr.srv_subtype = port_attr.subtype; + ssattr.port_type = port_attr.type; + ssattr.port_subtype = port_attr.subtype; + + __ntapi->tt_guid_copy( + &ssattr.port_guid, + &port_attr.guid); + + ssattr.srv_type = type; + ssattr.srv_subtype = subtype; + ssattr.srv_keys[0] = port_attr.keys.key[0]; ssattr.srv_keys[1] = port_attr.keys.key[1]; ssattr.srv_keys[2] = port_attr.keys.key[2]; |