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: static assert (_WIN32_WINNT_ONLY, 4e2933c620 2015-04-21 kinaba: "win32.accctrl is available only if version WindowsNTonly, WindowsXP, " 4e2933c620 2015-04-21 kinaba: "Windows2003 or WindowsVista is set"); 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: 4e2933c620 2015-04-21 kinaba: static if (WINVER >= 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_; 4e2933c620 2015-04-21 kinaba: static if (WINVER >= 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_; 4e2933c620 2015-04-21 kinaba: static if (WINVER >= 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_; 4e2933c620 2015-04-21 kinaba: static if (WINVER >= 0x501) { 4e2933c620 2015-04-21 kinaba: alias INHERITED_FROM* PINHERITED_FROM; 4e2933c620 2015-04-21 kinaba: }