Geoff Chappell - Software Analyst
In a PS_CREATE_INFO structure on output from NtCreateUserProcess, the State member may be PsCreateSuccess (6). The remainder of the structure is then interpreted as the SuccessState branch of an unnamed union. Within the SuccessState is a set of flags in union with a ULONG named OutputFlags. The flags themselves are a mixture of UCHAR and USHORT bit fields.
Microsoft’s names and types in the following tabulation of these flags are known from a smattering of private symbol files that Microsoft included in packages of public symbol files starting with Windows 8.
Offset / Mask | Definition | Versions |
---|---|---|
0x00 / 0x01 |
UCHAR ProtectedProcess : 1; |
6.0 and higher |
0x00 / 0x02 |
UCHAR AddressSpaceOverride : 1; |
6.0 and higher |
0x00 / 0x04 |
UCHAR DevOverrideEnabled : 1; |
6.0 and higher |
0x00 / 0x08 |
UCHAR ManifestDetected : 1; |
6.0 and higher |
0x00 / 0x10 |
UCHAR ProtectedProcessLight : 1; |
6.3 and higher |
UCHAR SpareBits1 : 4; |
6.0 to 6.2 | |
UCHAR SpareBits1 : 3; |
6.3 and higher | |
UCHAR SpareBits2 : 8; |
6.0 and higher | |
USHORT SpareBits3 : 16; |
6.0 and higher |
No use of the second byte or high word is known in any version.