diff --git a/include/ntapi/nt_port.h b/include/ntapi/nt_port.h index beb4f32..99a92df 100644 --- a/include/ntapi/nt_port.h +++ b/include/ntapi/nt_port.h @@ -33,6 +33,8 @@ typedef enum _nt_port_type { NT_PORT_TYPE_SUBSYSTEM, /* {'n','t','c','t','t','y'} */ NT_PORT_TYPE_VMOUNT, /* {'v','m','o','u','n','t'} */ NT_PORT_TYPE_DAEMON, /* {'d','a','e','m','o','n'} */ + NT_PORT_TYPE_SYMLNK, /* {'s','y','m','l','n','k'} */ + NT_PORT_TYPE_NTPROC, /* {'n','t','p','r','o','c'} */ NT_PORT_TYPE_CAP } nt_port_type; @@ -49,6 +51,8 @@ typedef enum _nt_port_subtype { #define NT_PORT_GUID_SUBSYSTEM {0xce7f8d40,0x81cd,0x41c6,{0xa4,0xb7,0xb8,0x35,0x67,0xdf,0x15,0xd9}} #define NT_PORT_GUID_VMOUNT {0x893d63d2,0x23e8,0x4caa,{0xa8,0x41,0x7f,0x6e,0x77,0x6b,0xd5,0x70}} #define NT_PORT_GUID_DAEMON {0xcf765d9e,0x6bd8,0x4a8d,{0x8a,0x21,0x17,0x34,0xcd,0x3a,0x8d,0xa7}} +#define NT_PORT_GUID_SYMLNK {0xfe1b8480,0x833d,0x44df,{0x90,0x99,0xc1,0xf6,0x9c,0x11,0xd4,0x0b}} +#define NT_PORT_GUID_NTPROC {0xd7f3f3a5,0x3e82,0x4f3e,{0x9d,0x6c,0x36,0x18,0xde,0xfa,0xc6,0x69}} /* lpc messages */ #define NT_LPC_REFUSE_CONNECTION 0x0000 diff --git a/include/ntapi/nt_process.h b/include/ntapi/nt_process.h index e29d140..d7a4831 100644 --- a/include/ntapi/nt_process.h +++ b/include/ntapi/nt_process.h @@ -191,6 +191,7 @@ typedef enum _nt_process_create_info_class { #define NT_PROCESS_OBJDIR_PREFIX_NTPGRP {'n','t','p','g','r','p'} #define NT_PROCESS_OBJDIR_PREFIX_PIDMAP {'p','i','d','m','a','p'} #define NT_PROCESS_OBJDIR_PREFIX_PIDANY {'p','i','d','a','n','y'} +#define NT_PROCESS_OBJDIR_PREFIX_NTPIPC {'n','t','p','i','p','c'} typedef struct _nt_process_information { void * hprocess; diff --git a/src/port/ntapi_port_name_helper.c b/src/port/ntapi_port_name_helper.c index 84ffdcc..7ab4d41 100644 --- a/src/port/ntapi_port_name_helper.c +++ b/src/port/ntapi_port_name_helper.c @@ -13,17 +13,21 @@ typedef wchar16_t __port_service_prefix[6]; static const __port_service_prefix __port_service_null = {0}; -static const __port_service_prefix __port_service_prefixes[4][NT_PORT_TYPE_CAP][NT_PORT_SUBTYPE_CAP] = { +static const __port_service_prefix __port_service_prefixes[6][NT_PORT_TYPE_CAP][NT_PORT_SUBTYPE_CAP] = { {{{'s','v','c','a','n','y'}}}, {{{'n','t','c','t','t','y'}}}, {{{'v','m','o','u','n','t'}}}, - {{{'d','a','e','m','o','n'}}}}; + {{{'d','a','e','m','o','n'}}}, + {{{'s','y','m','l','n','k'}}}, + {{{'n','t','p','r','o','c'}}}}; static const nt_guid __port_guids[NT_PORT_TYPE_CAP][NT_PORT_SUBTYPE_CAP] = { {NT_PORT_GUID_DEFAULT}, {NT_PORT_GUID_SUBSYSTEM}, {NT_PORT_GUID_VMOUNT}, - {NT_PORT_GUID_DAEMON}}; + {NT_PORT_GUID_DAEMON}, + {NT_PORT_GUID_SYMLNK}, + {NT_PORT_GUID_NTPROC}}; int32_t __stdcall __ntapi_tt_port_guid_from_type( __out nt_guid * guid,