File Annotation

Not logged in
4e2933c620 2015-04-21        kinaba: /***********************************************************************\
4e2933c620 2015-04-21        kinaba: *                               accctrl.d                               *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Windows API header module                       *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                 Translated from MinGW Windows headers                 *
4e2933c620 2015-04-21        kinaba: *                           by Stewart Gordon                           *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Placed into public domain                       *
4e2933c620 2015-04-21        kinaba: \***********************************************************************/
4e2933c620 2015-04-21        kinaba: module win32.accctrl;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: private import win32.basetyps, win32.w32api, win32.winbase, win32.windef;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // FIXME: check types and grouping of constants
4e2933c620 2015-04-21        kinaba: // FIXME: check Windows version support
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias LocalFree AccFree;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const uint
4e2933c620 2015-04-21        kinaba: 	ACTRL_RESERVED            = 0x00000000,
4e2933c620 2015-04-21        kinaba: 	ACTRL_ACCESS_PROTECTED    = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	ACTRL_ACCESS_ALLOWED      = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	ACTRL_ACCESS_DENIED       = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	ACTRL_AUDIT_SUCCESS       = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	ACTRL_AUDIT_FAILURE       = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	ACTRL_SYSTEM_ACCESS       = 0x04000000,
4e2933c620 2015-04-21        kinaba: 	ACTRL_DELETE              = 0x08000000,
4e2933c620 2015-04-21        kinaba: 	ACTRL_READ_CONTROL        = 0x10000000,
4e2933c620 2015-04-21        kinaba: 	ACTRL_CHANGE_ACCESS       = 0x20000000,
4e2933c620 2015-04-21        kinaba: 	ACTRL_CHANGE_OWNER        = 0x40000000,
4e2933c620 2015-04-21        kinaba: 	ACTRL_SYNCHRONIZE         = 0x80000000,
4e2933c620 2015-04-21        kinaba: 	ACTRL_STD_RIGHTS_ALL      = 0xf8000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const uint
4e2933c620 2015-04-21        kinaba: 	ACTRL_FILE_READ           = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	ACTRL_FILE_WRITE          = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	ACTRL_FILE_APPEND         = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	ACTRL_FILE_READ_PROP      = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	ACTRL_FILE_WRITE_PROP     = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	ACTRL_FILE_EXECUTE        = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	ACTRL_FILE_READ_ATTRIB    = 0x00000080,
4e2933c620 2015-04-21        kinaba: 	ACTRL_FILE_WRITE_ATTRIB   = 0x00000100,
4e2933c620 2015-04-21        kinaba: 	ACTRL_FILE_CREATE_PIPE    = 0x00000200;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const uint
4e2933c620 2015-04-21        kinaba: 	ACTRL_DIR_LIST            = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	ACTRL_DIR_CREATE_OBJECT   = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	ACTRL_DIR_CREATE_CHILD    = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	ACTRL_DIR_DELETE_CHILD    = 0x00000040,
4e2933c620 2015-04-21        kinaba: 	ACTRL_DIR_TRAVERSE        = 0x00000020;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const uint
4e2933c620 2015-04-21        kinaba: 	ACTRL_KERNEL_TERMINATE    = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	ACTRL_KERNEL_THREAD       = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	ACTRL_KERNEL_VM           = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	ACTRL_KERNEL_VM_READ      = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	ACTRL_KERNEL_VM_WRITE     = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	ACTRL_KERNEL_DUP_HANDLE   = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	ACTRL_KERNEL_PROCESS      = 0x00000040,
4e2933c620 2015-04-21        kinaba: 	ACTRL_KERNEL_SET_INFO     = 0x00000080,
4e2933c620 2015-04-21        kinaba: 	ACTRL_KERNEL_GET_INFO     = 0x00000100,
4e2933c620 2015-04-21        kinaba: 	ACTRL_KERNEL_CONTROL      = 0x00000200,
4e2933c620 2015-04-21        kinaba: 	ACTRL_KERNEL_ALERT        = 0x00000400,
4e2933c620 2015-04-21        kinaba: 	ACTRL_KERNEL_GET_CONTEXT  = 0x00000800,
4e2933c620 2015-04-21        kinaba: 	ACTRL_KERNEL_SET_CONTEXT  = 0x00001000,
4e2933c620 2015-04-21        kinaba: 	ACTRL_KERNEL_TOKEN        = 0x00002000,
4e2933c620 2015-04-21        kinaba: 	ACTRL_KERNEL_IMPERSONATE  = 0x00004000,
4e2933c620 2015-04-21        kinaba: 	ACTRL_KERNEL_DIMPERSONATE = 0x00008000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const uint
4e2933c620 2015-04-21        kinaba: 	ACTRL_PRINT_SADMIN        = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	ACTRL_PRINT_SLIST         = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	ACTRL_PRINT_PADMIN        = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	ACTRL_PRINT_PUSE          = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	ACTRL_PRINT_JADMIN        = 0x00000010;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const uint
4e2933c620 2015-04-21        kinaba: 	ACTRL_SVC_GET_INFO        = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	ACTRL_SVC_SET_INFO        = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	ACTRL_SVC_STATUS          = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	ACTRL_SVC_LIST            = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	ACTRL_SVC_START           = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	ACTRL_SVC_STOP            = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	ACTRL_SVC_PAUSE           = 0x00000040,
4e2933c620 2015-04-21        kinaba: 	ACTRL_SVC_INTERROGATE     = 0x00000080,
4e2933c620 2015-04-21        kinaba: 	ACTRL_SVC_UCONTROL        = 0x00000100;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const uint
4e2933c620 2015-04-21        kinaba: 	ACTRL_REG_QUERY           = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	ACTRL_REG_SET             = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	ACTRL_REG_CREATE_CHILD    = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	ACTRL_REG_LIST            = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	ACTRL_REG_NOTIFY          = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	ACTRL_REG_LINK            = 0x00000020;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const uint
4e2933c620 2015-04-21        kinaba: 	ACTRL_WIN_CLIPBRD         = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	ACTRL_WIN_GLOBAL_ATOMS    = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	ACTRL_WIN_CREATE          = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	ACTRL_WIN_LIST_DESK       = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	ACTRL_WIN_LIST            = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	ACTRL_WIN_READ_ATTRIBS    = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	ACTRL_WIN_WRITE_ATTRIBS   = 0x00000040,
4e2933c620 2015-04-21        kinaba: 	ACTRL_WIN_SCREEN          = 0x00000080,
4e2933c620 2015-04-21        kinaba: 	ACTRL_WIN_EXIT            = 0x00000100;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : uint {
4e2933c620 2015-04-21        kinaba: 	ACTRL_ACCESS_NO_OPTIONS              = 0x00000000,
4e2933c620 2015-04-21        kinaba: 	ACTRL_ACCESS_SUPPORTS_OBJECT_ENTRIES = 0x00000001
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const TCHAR[] ACCCTRL_DEFAULT_PROVIDER = "Windows NT Access Provider";
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const uint
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_ACCESS_ALLOWED    = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_ACCESS_READ       = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_ACCESS_WRITE      = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_ACCESS_EXPLICIT   = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_ACCESS_READ_WRITE = 0x00000006,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_ACCESS_ALL        = 0xFFFFFFFF;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const uint
4e2933c620 2015-04-21        kinaba: 	NO_INHERITANCE                     = 0x0,
4e2933c620 2015-04-21        kinaba: 	SUB_OBJECTS_ONLY_INHERIT           = 0x1,
4e2933c620 2015-04-21        kinaba: 	SUB_CONTAINERS_ONLY_INHERIT        = 0x2,
4e2933c620 2015-04-21        kinaba: 	SUB_CONTAINERS_AND_OBJECTS_INHERIT = 0x3,
4e2933c620 2015-04-21        kinaba: 	INHERIT_NO_PROPAGATE               = 0x4,
4e2933c620 2015-04-21        kinaba: 	INHERIT_ONLY                       = 0x8,
4e2933c620 2015-04-21        kinaba: 	INHERITED_ACCESS_ENTRY             = 0x10,
4e2933c620 2015-04-21        kinaba: 	INHERITED_PARENT                   = 0x10000000,
4e2933c620 2015-04-21        kinaba: 	INHERITED_GRANDPARENT              = 0x20000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias ULONG INHERIT_FLAGS, ACCESS_RIGHTS;
4e2933c620 2015-04-21        kinaba: alias ULONG* PINHERIT_FLAGS, PACCESS_RIGHTS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum ACCESS_MODE {
4e2933c620 2015-04-21        kinaba: 	NOT_USED_ACCESS,
4e2933c620 2015-04-21        kinaba: 	GRANT_ACCESS,
4e2933c620 2015-04-21        kinaba: 	SET_ACCESS,
4e2933c620 2015-04-21        kinaba: 	DENY_ACCESS,
4e2933c620 2015-04-21        kinaba: 	REVOKE_ACCESS,
4e2933c620 2015-04-21        kinaba: 	SET_AUDIT_SUCCESS,
4e2933c620 2015-04-21        kinaba: 	SET_AUDIT_FAILURE
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum SE_OBJECT_TYPE {
4e2933c620 2015-04-21        kinaba: 	SE_UNKNOWN_OBJECT_TYPE,
4e2933c620 2015-04-21        kinaba: 	SE_FILE_OBJECT,
4e2933c620 2015-04-21        kinaba: 	SE_SERVICE,
4e2933c620 2015-04-21        kinaba: 	SE_PRINTER,
4e2933c620 2015-04-21        kinaba: 	SE_REGISTRY_KEY,
4e2933c620 2015-04-21        kinaba: 	SE_LMSHARE,
4e2933c620 2015-04-21        kinaba: 	SE_KERNEL_OBJECT,
4e2933c620 2015-04-21        kinaba: 	SE_WINDOW_OBJECT,
4e2933c620 2015-04-21        kinaba: 	SE_DS_OBJECT,
4e2933c620 2015-04-21        kinaba: 	SE_DS_OBJECT_ALL,
4e2933c620 2015-04-21        kinaba: 	SE_PROVIDER_DEFINED_OBJECT,
4e2933c620 2015-04-21        kinaba: 	SE_WMIGUID_OBJECT,
4e2933c620 2015-04-21        kinaba: 	SE_REGISTRY_WOW64_32KEY
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum TRUSTEE_TYPE {
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_IS_UNKNOWN,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_IS_USER,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_IS_GROUP,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_IS_DOMAIN,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_IS_ALIAS,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_IS_WELL_KNOWN_GROUP,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_IS_DELETED,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_IS_INVALID,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_IS_COMPUTER
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum TRUSTEE_FORM {
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_IS_SID,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_IS_NAME,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_BAD_FORM,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_IS_OBJECTS_AND_SID,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_IS_OBJECTS_AND_NAME
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum MULTIPLE_TRUSTEE_OPERATION {
4e2933c620 2015-04-21        kinaba: 	NO_MULTIPLE_TRUSTEE,
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_IS_IMPERSONATE
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TRUSTEE_A {
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_A*                 pMultipleTrustee;
4e2933c620 2015-04-21        kinaba: 	MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_FORM               TrusteeForm;
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_TYPE               TrusteeType;
4e2933c620 2015-04-21        kinaba: 	LPSTR                      ptstrName;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TRUSTEE_A TRUSTEEA;
4e2933c620 2015-04-21        kinaba: alias TRUSTEE_A* PTRUSTEE_A, PTRUSTEEA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TRUSTEE_W {
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_W*                 pMultipleTrustee;
4e2933c620 2015-04-21        kinaba: 	MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_FORM               TrusteeForm;
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_TYPE               TrusteeType;
4e2933c620 2015-04-21        kinaba: 	LPWSTR                     ptstrName;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TRUSTEE_W TRUSTEEW;
4e2933c620 2015-04-21        kinaba: alias TRUSTEEW* PTRUSTEE_W, PTRUSTEEW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACTRL_ACCESS_ENTRYA {
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_A     Trustee;
4e2933c620 2015-04-21        kinaba: 	ULONG         fAccessFlags;
4e2933c620 2015-04-21        kinaba: 	ACCESS_RIGHTS Access;
4e2933c620 2015-04-21        kinaba: 	ACCESS_RIGHTS ProvSpecificAccess;
4e2933c620 2015-04-21        kinaba: 	INHERIT_FLAGS Inheritance;
4e2933c620 2015-04-21        kinaba: 	LPCSTR        lpInheritProperty;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACTRL_ACCESS_ENTRYA* PACTRL_ACCESS_ENTRYA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACTRL_ACCESS_ENTRYW {
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_W     Trustee;
4e2933c620 2015-04-21        kinaba: 	ULONG         fAccessFlags;
4e2933c620 2015-04-21        kinaba: 	ACCESS_RIGHTS Access;
4e2933c620 2015-04-21        kinaba: 	ACCESS_RIGHTS ProvSpecificAccess;
4e2933c620 2015-04-21        kinaba: 	INHERIT_FLAGS Inheritance;
4e2933c620 2015-04-21        kinaba: 	LPCWSTR       lpInheritProperty;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACTRL_ACCESS_ENTRYW* PACTRL_ACCESS_ENTRYW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACTRL_ACCESS_ENTRY_LISTA {
4e2933c620 2015-04-21        kinaba: 	ULONG                cEntries;
4e2933c620 2015-04-21        kinaba: 	ACTRL_ACCESS_ENTRYA* pAccessList;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACTRL_ACCESS_ENTRY_LISTA* PACTRL_ACCESS_ENTRY_LISTA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACTRL_ACCESS_ENTRY_LISTW {
4e2933c620 2015-04-21        kinaba: 	ULONG                cEntries;
4e2933c620 2015-04-21        kinaba: 	ACTRL_ACCESS_ENTRYW* pAccessList;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACTRL_ACCESS_ENTRY_LISTW* PACTRL_ACCESS_ENTRY_LISTW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACTRL_PROPERTY_ENTRYA {
4e2933c620 2015-04-21        kinaba: 	LPCSTR                    lpProperty;
4e2933c620 2015-04-21        kinaba: 	PACTRL_ACCESS_ENTRY_LISTA pAccessEntryList;
4e2933c620 2015-04-21        kinaba: 	ULONG                     fListFlags;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACTRL_PROPERTY_ENTRYA* PACTRL_PROPERTY_ENTRYA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACTRL_PROPERTY_ENTRYW {
4e2933c620 2015-04-21        kinaba: 	LPCWSTR                   lpProperty;
4e2933c620 2015-04-21        kinaba: 	PACTRL_ACCESS_ENTRY_LISTW pAccessEntryList;
4e2933c620 2015-04-21        kinaba: 	ULONG                     fListFlags;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACTRL_PROPERTY_ENTRYW* PACTRL_PROPERTY_ENTRYW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACTRL_ACCESSA {
4e2933c620 2015-04-21        kinaba: 	ULONG                  cEntries;
4e2933c620 2015-04-21        kinaba: 	PACTRL_PROPERTY_ENTRYA pPropertyAccessList;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACTRL_ACCESSA ACTRL_AUDITA;
4e2933c620 2015-04-21        kinaba: alias ACTRL_ACCESSA* PACTRL_ACCESSA, PACTRL_AUDITA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACTRL_ACCESSW {
4e2933c620 2015-04-21        kinaba: 	ULONG                  cEntries;
4e2933c620 2015-04-21        kinaba: 	PACTRL_PROPERTY_ENTRYW pPropertyAccessList;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACTRL_ACCESSW ACTRL_AUDITW;
4e2933c620 2015-04-21        kinaba: alias ACTRL_ACCESSW* PACTRL_ACCESSW, PACTRL_AUDITW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TRUSTEE_ACCESSA {
4e2933c620 2015-04-21        kinaba: 	LPSTR         lpProperty;
4e2933c620 2015-04-21        kinaba: 	ACCESS_RIGHTS Access;
4e2933c620 2015-04-21        kinaba: 	ULONG         fAccessFlags;
4e2933c620 2015-04-21        kinaba: 	ULONG         fReturnedAccess;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TRUSTEE_ACCESSA* PTRUSTEE_ACCESSA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TRUSTEE_ACCESSW {
4e2933c620 2015-04-21        kinaba: 	LPWSTR        lpProperty;
4e2933c620 2015-04-21        kinaba: 	ACCESS_RIGHTS Access;
4e2933c620 2015-04-21        kinaba: 	ULONG         fAccessFlags;
4e2933c620 2015-04-21        kinaba: 	ULONG         fReturnedAccess;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TRUSTEE_ACCESSW* PTRUSTEE_ACCESSW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACTRL_OVERLAPPED {
4e2933c620 2015-04-21        kinaba: 	union {
4e2933c620 2015-04-21        kinaba: 		PVOID Provider;
4e2933c620 2015-04-21        kinaba: 		ULONG Reserved1;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	ULONG     Reserved2;
4e2933c620 2015-04-21        kinaba: 	HANDLE    hEvent;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACTRL_OVERLAPPED* PACTRL_OVERLAPPED;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACTRL_ACCESS_INFOA {
4e2933c620 2015-04-21        kinaba: 	ULONG fAccessPermission;
4e2933c620 2015-04-21        kinaba: 	LPSTR lpAccessPermissionName;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACTRL_ACCESS_INFOA* PACTRL_ACCESS_INFOA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACTRL_ACCESS_INFOW {
4e2933c620 2015-04-21        kinaba: 	ULONG  fAccessPermission;
4e2933c620 2015-04-21        kinaba: 	LPWSTR lpAccessPermissionName;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACTRL_ACCESS_INFOW* PACTRL_ACCESS_INFOW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACTRL_CONTROL_INFOA {
4e2933c620 2015-04-21        kinaba: 	LPSTR lpControlId;
4e2933c620 2015-04-21        kinaba: 	LPSTR lpControlName;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACTRL_CONTROL_INFOA* PACTRL_CONTROL_INFOA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACTRL_CONTROL_INFOW {
4e2933c620 2015-04-21        kinaba: 	LPWSTR lpControlId;
4e2933c620 2015-04-21        kinaba: 	LPWSTR lpControlName;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACTRL_CONTROL_INFOW* PACTRL_CONTROL_INFOW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct EXPLICIT_ACCESS_A {
4e2933c620 2015-04-21        kinaba: 	DWORD       grfAccessPermissions;
4e2933c620 2015-04-21        kinaba: 	ACCESS_MODE grfAccessMode;
4e2933c620 2015-04-21        kinaba: 	DWORD       grfInheritance;
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_A   Trustee;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias EXPLICIT_ACCESS_A EXPLICIT_ACCESSA;
4e2933c620 2015-04-21        kinaba: alias EXPLICIT_ACCESS_A* PEXPLICIT_ACCESS_A, PEXPLICIT_ACCESSA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct EXPLICIT_ACCESS_W {
4e2933c620 2015-04-21        kinaba: 	DWORD       grfAccessPermissions;
4e2933c620 2015-04-21        kinaba: 	ACCESS_MODE grfAccessMode;
4e2933c620 2015-04-21        kinaba: 	DWORD       grfInheritance;
4e2933c620 2015-04-21        kinaba: 	TRUSTEE_W   Trustee;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias EXPLICIT_ACCESS_W EXPLICIT_ACCESSW;
4e2933c620 2015-04-21        kinaba: alias EXPLICIT_ACCESS_W* PEXPLICIT_ACCESS_W, PEXPLICIT_ACCESSW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct OBJECTS_AND_SID {
4e2933c620 2015-04-21        kinaba: 	DWORD ObjectsPresent;
4e2933c620 2015-04-21        kinaba: 	GUID  ObjectTypeGuid;
4e2933c620 2015-04-21        kinaba: 	GUID  InheritedObjectTypeGuid;
4e2933c620 2015-04-21        kinaba: 	SID*  pSid;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias OBJECTS_AND_SID* POBJECTS_AND_SID;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct OBJECTS_AND_NAME_A {
4e2933c620 2015-04-21        kinaba: 	DWORD          ObjectsPresent;
4e2933c620 2015-04-21        kinaba: 	SE_OBJECT_TYPE ObjectType;
4e2933c620 2015-04-21        kinaba: 	LPSTR          ObjectTypeName;
4e2933c620 2015-04-21        kinaba: 	LPSTR          InheritedObjectTypeName;
4e2933c620 2015-04-21        kinaba: 	LPSTR          ptstrName;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias OBJECTS_AND_NAME_A* POBJECTS_AND_NAME_A;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct OBJECTS_AND_NAME_W {
4e2933c620 2015-04-21        kinaba: 	DWORD          ObjectsPresent;
4e2933c620 2015-04-21        kinaba: 	SE_OBJECT_TYPE ObjectType;
4e2933c620 2015-04-21        kinaba: 	LPWSTR         ObjectTypeName;
4e2933c620 2015-04-21        kinaba: 	LPWSTR         InheritedObjectTypeName;
4e2933c620 2015-04-21        kinaba: 	LPWSTR         ptstrName;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias OBJECTS_AND_NAME_W* POBJECTS_AND_NAME_W;
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: static if (_WIN32_WINNT >= 0x501) {
4e2933c620 2015-04-21        kinaba: 	struct INHERITED_FROMA {
4e2933c620 2015-04-21        kinaba: 		LONG  GenerationGap;
4e2933c620 2015-04-21        kinaba: 		LPSTR AncestorName;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias INHERITED_FROMA* PINHERITED_FROMA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	struct INHERITED_FROMW {
4e2933c620 2015-04-21        kinaba: 		LONG   GenerationGap;
4e2933c620 2015-04-21        kinaba: 		LPWSTR AncestorName;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias INHERITED_FROMW* PINHERITED_FROMW;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: version (Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias TRUSTEEW TRUSTEE;
4e2933c620 2015-04-21        kinaba: 	alias ACTRL_ACCESSW ACTRL_ACCESS;
4e2933c620 2015-04-21        kinaba: 	alias ACTRL_ACCESS_ENTRY_LISTW ACTRL_ACCESS_ENTRY_LIST;
4e2933c620 2015-04-21        kinaba: 	alias ACTRL_ACCESS_INFOW ACTRL_ACCESS_INFO;
4e2933c620 2015-04-21        kinaba: 	alias ACTRL_ACCESS_ENTRYW ACTRL_ACCESS_ENTRY;
4e2933c620 2015-04-21        kinaba: 	alias ACTRL_AUDITW ACTRL_AUDIT;
4e2933c620 2015-04-21        kinaba: 	alias ACTRL_CONTROL_INFOW ACTRL_CONTROL_INFO;
4e2933c620 2015-04-21        kinaba: 	alias EXPLICIT_ACCESSW EXPLICIT_ACCESS;
4e2933c620 2015-04-21        kinaba: 	alias TRUSTEE_ACCESSW TRUSTEE_ACCESS;
4e2933c620 2015-04-21        kinaba: 	alias OBJECTS_AND_NAME_W OBJECTS_AND_NAME_;
9b639cf2d6 2015-05-05        kinaba: 	static if (_WIN32_WINNT >= 0x501) {
4e2933c620 2015-04-21        kinaba: 		alias INHERITED_FROMW INHERITED_FROM;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	alias TRUSTEEA TRUSTEE;
4e2933c620 2015-04-21        kinaba: 	alias ACTRL_ACCESSA ACTRL_ACCESS;
4e2933c620 2015-04-21        kinaba: 	alias ACTRL_ACCESS_ENTRY_LISTA ACTRL_ACCESS_ENTRY_LIST;
4e2933c620 2015-04-21        kinaba: 	alias ACTRL_ACCESS_INFOA ACTRL_ACCESS_INFO;
4e2933c620 2015-04-21        kinaba: 	alias ACTRL_ACCESS_ENTRYA ACTRL_ACCESS_ENTRY;
4e2933c620 2015-04-21        kinaba: 	alias ACTRL_AUDITA ACTRL_AUDIT;
4e2933c620 2015-04-21        kinaba: 	alias ACTRL_CONTROL_INFOA ACTRL_CONTROL_INFO;
4e2933c620 2015-04-21        kinaba: 	alias EXPLICIT_ACCESSA EXPLICIT_ACCESS;
4e2933c620 2015-04-21        kinaba: 	alias TRUSTEE_ACCESSA TRUSTEE_ACCESS;
4e2933c620 2015-04-21        kinaba: 	alias OBJECTS_AND_NAME_A OBJECTS_AND_NAME_;
9b639cf2d6 2015-05-05        kinaba: 	static if (_WIN32_WINNT >= 0x501) {
4e2933c620 2015-04-21        kinaba: 		alias INHERITED_FROMA INHERITED_FROM;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias TRUSTEE TRUSTEE_;
4e2933c620 2015-04-21        kinaba: alias TRUSTEE* PTRUSTEE, PTRUSTEE_;
4e2933c620 2015-04-21        kinaba: alias ACTRL_ACCESS* PACTRL_ACCESS;
4e2933c620 2015-04-21        kinaba: alias ACTRL_ACCESS_ENTRY_LIST* PACTRL_ACCESS_ENTRY_LIST;
4e2933c620 2015-04-21        kinaba: alias ACTRL_ACCESS_INFO* PACTRL_ACCESS_INFO;
4e2933c620 2015-04-21        kinaba: alias ACTRL_ACCESS_ENTRY* PACTRL_ACCESS_ENTRY;
4e2933c620 2015-04-21        kinaba: alias ACTRL_AUDIT* PACTRL_AUDIT;
4e2933c620 2015-04-21        kinaba: alias ACTRL_CONTROL_INFO* PACTRL_CONTROL_INFO;
4e2933c620 2015-04-21        kinaba: alias EXPLICIT_ACCESS EXPLICIT_ACCESS_;
4e2933c620 2015-04-21        kinaba: alias EXPLICIT_ACCESS* PEXPLICIT_ACCESS, PEXPLICIT_ACCESS_;
4e2933c620 2015-04-21        kinaba: alias TRUSTEE_ACCESS* PTRUSTEE_ACCESS;
4e2933c620 2015-04-21        kinaba: alias OBJECTS_AND_NAME_* POBJECTS_AND_NAME_;
9b639cf2d6 2015-05-05        kinaba: static if (_WIN32_WINNT >= 0x501) {
4e2933c620 2015-04-21        kinaba: 	alias INHERITED_FROM* PINHERITED_FROM;
4e2933c620 2015-04-21        kinaba: }