Skip to content

Commit 2d491ea

Browse files
committed
Add PhGetProcessSecurityDomain and PhGetProcessServerSilo
1 parent 86beeb8 commit 2d491ea

File tree

2 files changed

+68
-0
lines changed

2 files changed

+68
-0
lines changed

phlib/include/phnative.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2834,6 +2834,22 @@ PhGetProcessConsoleCodePage(
28342834
_Out_ PUSHORT ConsoleCodePage
28352835
);
28362836

2837+
PHLIBAPI
2838+
NTSTATUS
2839+
NTAPI
2840+
PhGetProcessSecurityDomain(
2841+
_In_ HANDLE ProcessHandle,
2842+
_Out_ PULONGLONG SecurityDomain
2843+
);
2844+
2845+
PHLIBAPI
2846+
NTSTATUS
2847+
NTAPI
2848+
PhGetProcessServerSilo(
2849+
_In_ HANDLE ProcessHandle,
2850+
_Out_ PULONG ServerSilo
2851+
);
2852+
28372853
PHLIBAPI
28382854
NTSTATUS
28392855
NTAPI

phlib/native.c

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14485,6 +14485,58 @@ NTSTATUS PhGetProcessConsoleCodePage(
1448514485
return status;
1448614486
}
1448714487

14488+
NTSTATUS PhGetProcessSecurityDomain(
14489+
_In_ HANDLE ProcessHandle,
14490+
_Out_ PULONGLONG SecurityDomain
14491+
)
14492+
{
14493+
NTSTATUS status;
14494+
PROCESS_SECURITY_DOMAIN_INFORMATION processSecurityDomainInfo;
14495+
14496+
memset(&processSecurityDomainInfo, 0, sizeof(PROCESS_SECURITY_DOMAIN_INFORMATION));
14497+
14498+
status = NtQueryInformationProcess(
14499+
ProcessHandle,
14500+
ProcessSecurityDomainInformation,
14501+
&processSecurityDomainInfo,
14502+
sizeof(PROCESS_SECURITY_DOMAIN_INFORMATION),
14503+
NULL
14504+
);
14505+
14506+
if (NT_SUCCESS(status))
14507+
{
14508+
*SecurityDomain = processSecurityDomainInfo.SecurityDomain;
14509+
}
14510+
14511+
return status;
14512+
}
14513+
14514+
NTSTATUS PhGetProcessServerSilo(
14515+
_In_ HANDLE ProcessHandle,
14516+
_Out_ PULONG ServerSilo
14517+
)
14518+
{
14519+
NTSTATUS status;
14520+
PROCESS_MEMBERSHIP_INFORMATION processMembershipInfo;
14521+
14522+
memset(&processMembershipInfo, 0, sizeof(PROCESS_MEMBERSHIP_INFORMATION));
14523+
14524+
status = NtQueryInformationProcess(
14525+
ProcessHandle,
14526+
ProcessMembershipInformation,
14527+
&processMembershipInfo,
14528+
sizeof(PROCESS_MEMBERSHIP_INFORMATION),
14529+
NULL
14530+
);
14531+
14532+
if (NT_SUCCESS(status))
14533+
{
14534+
*ServerSilo = processMembershipInfo.ServerSiloId;
14535+
}
14536+
14537+
return status;
14538+
}
14539+
1448814540
NTSTATUS PhGetProcessSequenceNumber(
1448914541
_In_ HANDLE ProcessHandle,
1449014542
_Out_ PULONGLONG SequenceNumber

0 commit comments

Comments
 (0)