89 lines
3.5 KiB
C
89 lines
3.5 KiB
C
#ifndef COSMOPOLITAN_LIBC_NT_ENUM_ACCESSMASK_H_
|
|
#define COSMOPOLITAN_LIBC_NT_ENUM_ACCESSMASK_H_
|
|
|
|
/**
|
|
* Can also be described as follows:
|
|
*
|
|
* struct NtAccessMask {
|
|
* union {
|
|
* uint32_t value;
|
|
* struct {
|
|
* uint16_t SpecificRights;
|
|
* unsigned char StandardRights;
|
|
* unsigned AccessSystemAcl : 1;
|
|
* unsigned Reserved : 3;
|
|
* unsigned GenericAll : 1;
|
|
* unsigned GenericExecute : 1;
|
|
* unsigned GenericWrite : 1;
|
|
* unsigned GenericRead : 1;
|
|
* };
|
|
* };
|
|
* };
|
|
*/
|
|
#define kNtGenericRead 0x80000000u
|
|
#define kNtGenericWrite 0x40000000u
|
|
#define kNtGenericExecute 0x20000000u
|
|
#define kNtGenericAll 0x10000000u
|
|
#define kNtDelete 0x00010000u
|
|
#define kNtReadControl 0x00020000u
|
|
#define kNtWriteDac 0x00040000u
|
|
#define kNtWriteOwner 0x00080000u
|
|
#define kNtSynchronize 0x00100000u
|
|
#define kNtStandardRightsRequired 0x000F0000u
|
|
#define kNtStandardRightsRead kNtReadControl
|
|
#define kNtStandardRightsWrite kNtReadControl
|
|
#define kNtStandardRightsExecute kNtReadControl
|
|
#define kNtStandardRightsAll 0x001F0000u
|
|
#define kNtSpecificRightsAll 0x0000FFFFu
|
|
#define kNtAccessSystemSecurity 0x01000000u
|
|
#define kNtMaximumAllowed 0x02000000u
|
|
#define kNtFileReadData 0x0001u
|
|
#define kNtFileListDirectory 0x0001u
|
|
#define kNtFileWriteData 0x0002u
|
|
#define kNtFileAddFile 0x0002u
|
|
#define kNtFileAppendData 0x0004u
|
|
#define kNtFileAddSubdirectory 0x0004u
|
|
#define kNtFileCreatePipeInstance 0x0004u
|
|
#define kNtFileReadEa 0x0008u
|
|
#define kNtFileWriteEa 0x0010u
|
|
#define kNtFileExecute 0x0020u
|
|
#define kNtFileTraverse 0x0020u
|
|
#define kNtFileDeleteChild 0x0040u
|
|
#define kNtFileReadAttributes 0x0080u
|
|
#define kNtFileWriteAttributes 0x0100u
|
|
#define kNtFileAllAccess (kNtStandardRightsRequired | kNtSynchronize | 0x1FFu)
|
|
#define kNtFileGenericRead \
|
|
(kNtStandardRightsRead | kNtFileReadData | kNtFileReadAttributes | \
|
|
kNtFileReadEa | kNtSynchronize)
|
|
#define kNtFileGenericWrite \
|
|
(kNtStandardRightsWrite | kNtFileWriteData | kNtFileWriteAttributes | \
|
|
kNtFileWriteEa | kNtFileAppendData | kNtSynchronize)
|
|
#define kNtFileGenericExecute \
|
|
(kNtStandardRightsExecute | kNtFileReadAttributes | kNtFileExecute | \
|
|
kNtSynchronize)
|
|
#define kNtTokenAssignPrimary 0x0001u
|
|
#define kNtTokenDuplicate 0x0002u
|
|
#define kNtTokenImpersonate 0x0004u
|
|
#define kNtTokenQuery 0x0008u
|
|
#define kNtTokenQuerySource 0x0010u
|
|
#define kNtTokenAdjustPrivileges 0x0020u
|
|
#define kNtTokenAdjustGroups 0x0040u
|
|
#define kNtTokenAdjustDefault 0x0080u
|
|
#define kNtTokenAdjustSessionid 0x0100u
|
|
#define kNtTokenAllAccessP \
|
|
(kNtStandardRightsRequired | kNtTokenAssignPrimary | kNtTokenDuplicate | \
|
|
kNtTokenImpersonate | kNtTokenQuery | kNtTokenQuerySource | \
|
|
kNtTokenAdjustPrivileges | kNtTokenAdjustGroups | kNtTokenAdjustDefault)
|
|
#define kNtTokenAllAccess kNtTokenAllAccessP | kNtTokenAdjustSessionid
|
|
#define kNtTokenRead kNtStandardRightsRead | kNtTokenQuery
|
|
#define kNtTokenWrite \
|
|
(kNtStandardRightsWrite | kNtTokenAdjustPrivileges | kNtTokenAdjustGroups | \
|
|
kNtTokenAdjustDefault)
|
|
#define kNtTokenExecute kNtStandardRightsExecute
|
|
#define kNtTokenTrustConstraintMask \
|
|
(kNtStandardRightsRead | kNtTokenQuery | kNtTokenQuerySource)
|
|
#define kNtTokenAccessPseudoHandleWin8 kNtTokenQuery | kNtTokenQuerySource
|
|
#define kNtTokenAccessPseudoHandle kNtTokenAccessPseudoHandleWin8
|
|
|
|
#endif /* COSMOPOLITAN_LIBC_NT_ENUM_ACCESSMASK_H_ */
|