Skip to content

Commit e2ff50e

Browse files
committed
Added some generated def
1 parent 47f3e64 commit e2ff50e

11 files changed

Lines changed: 10074 additions & 9359 deletions

File tree

ctypes_generation/definitions/defines/specific_access_right.txt

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,3 +358,42 @@
358358
#define ADS_RIGHT_DS_DELETE_TREE 0x40
359359
#define ADS_RIGHT_DS_LIST_OBJECT 0x80
360360
#define ADS_RIGHT_DS_CONTROL_ACCESS 0x100
361+
362+
363+
////////////////////////////////////////////////////////////////////////////
364+
// //
365+
// Local Security Policy Administration API datatypes and defines //
366+
// //
367+
////////////////////////////////////////////////////////////////////////////
368+
369+
// ntlsa.h
370+
// Access types for the Policy object
371+
//
372+
373+
#define POLICY_VIEW_LOCAL_INFORMATION 0x00000001L
374+
#define POLICY_VIEW_AUDIT_INFORMATION 0x00000002L
375+
#define POLICY_GET_PRIVATE_INFORMATION 0x00000004L
376+
#define POLICY_TRUST_ADMIN 0x00000008L
377+
#define POLICY_CREATE_ACCOUNT 0x00000010L
378+
#define POLICY_CREATE_SECRET 0x00000020L
379+
#define POLICY_CREATE_PRIVILEGE 0x00000040L
380+
#define POLICY_SET_DEFAULT_QUOTA_LIMITS 0x00000080L
381+
#define POLICY_SET_AUDIT_REQUIREMENTS 0x00000100L
382+
#define POLICY_AUDIT_LOG_ADMIN 0x00000200L
383+
#define POLICY_SERVER_ADMIN 0x00000400L
384+
#define POLICY_LOOKUP_NAMES 0x00000800L
385+
#define POLICY_NOTIFICATION 0x00001000L
386+
387+
#define POLICY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
388+
POLICY_VIEW_LOCAL_INFORMATION |\
389+
POLICY_VIEW_AUDIT_INFORMATION |\
390+
POLICY_GET_PRIVATE_INFORMATION |\
391+
POLICY_TRUST_ADMIN |\
392+
POLICY_CREATE_ACCOUNT |\
393+
POLICY_CREATE_SECRET |\
394+
POLICY_CREATE_PRIVILEGE |\
395+
POLICY_SET_DEFAULT_QUOTA_LIMITS |\
396+
POLICY_SET_AUDIT_REQUIREMENTS |\
397+
POLICY_AUDIT_LOG_ADMIN |\
398+
POLICY_SERVER_ADMIN |\
399+
POLICY_LOOKUP_NAMES)
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
NTSTATUS LsaOpenPolicy(
2+
PLSA_UNICODE_STRING SystemName,
3+
PLSA_OBJECT_ATTRIBUTES ObjectAttributes,
4+
ACCESS_MASK DesiredAccess,
5+
PLSA_HANDLE PolicyHandle
6+
);
7+
8+
NTSTATUS LsaQueryInformationPolicy(
9+
LSA_HANDLE PolicyHandle,
10+
POLICY_INFORMATION_CLASS InformationClass,
11+
PVOID *Buffer
12+
);
13+
14+
NTSTATUS LsaClose(
15+
LSA_HANDLE ObjectHandle
16+
);
17+
18+
ULONG LsaNtStatusToWinError(
19+
NTSTATUS Status
20+
);
21+
22+
NTSTATUS LsaLookupNames(
23+
LSA_HANDLE PolicyHandle,
24+
ULONG Count,
25+
PLSA_UNICODE_STRING Names,
26+
PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
27+
PLSA_TRANSLATED_SID *Sids
28+
);
29+
30+
NTSTATUS LsaLookupNames2(
31+
LSA_HANDLE PolicyHandle,
32+
ULONG Flags,
33+
ULONG Count,
34+
PLSA_UNICODE_STRING Names,
35+
PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
36+
PLSA_TRANSLATED_SID2 *Sids
37+
);
38+
39+
40+
NTSTATUS LsaLookupSids(
41+
LSA_HANDLE PolicyHandle,
42+
ULONG Count,
43+
PSID *Sids,
44+
PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
45+
PLSA_TRANSLATED_NAME *Names
46+
);
47+
48+
NTSTATUS LsaLookupSids2(
49+
LSA_HANDLE PolicyHandle,
50+
ULONG LookupOptions,
51+
ULONG Count,
52+
PSID *Sids,
53+
PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
54+
PLSA_TRANSLATED_NAME *Names
55+
);

ctypes_generation/definitions/functions/security.txt

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,4 +234,77 @@ DWORD GetStringConditionFromBinary(
234234
DWORD BinaryAceConditionSize,
235235
DWORD Reserved1,
236236
LPWSTR *StringAceCondition
237+
);
238+
239+
240+
BOOL AddAccessAllowedAce(
241+
PACL pAcl,
242+
DWORD dwAceRevision,
243+
DWORD AccessMask,
244+
PSID pSid
245+
);
246+
247+
BOOL SetSecurityDescriptorDacl(
248+
PSECURITY_DESCRIPTOR pSecurityDescriptor,
249+
BOOL bDaclPresent,
250+
PACL pDacl,
251+
BOOL bDaclDefaulted
252+
);
253+
254+
255+
BOOL InitializeAcl(
256+
PACL pAcl,
257+
DWORD nAclLength,
258+
DWORD dwAclRevision
259+
);
260+
261+
262+
BOOL InitializeSecurityDescriptor(
263+
PSECURITY_DESCRIPTOR pSecurityDescriptor,
264+
DWORD dwRevision
265+
);
266+
267+
268+
BOOL SetAclInformation(
269+
PACL pAcl,
270+
LPVOID pAclInformation,
271+
DWORD nAclInformationLength,
272+
ACL_INFORMATION_CLASS dwAclInformationClass
273+
);
274+
275+
BOOL AddAccessAllowedAceEx(
276+
PACL pAcl,
277+
DWORD dwAceRevision,
278+
DWORD AceFlags,
279+
DWORD AccessMask,
280+
PSID pSid
281+
);
282+
283+
284+
BOOL AddAccessDeniedAce(
285+
PACL pAcl,
286+
DWORD dwAceRevision,
287+
DWORD AccessMask,
288+
PSID pSid
289+
);
290+
291+
BOOL AddAccessDeniedAceEx(
292+
PACL pAcl,
293+
DWORD dwAceRevision,
294+
DWORD AceFlags,
295+
DWORD AccessMask,
296+
PSID pSid
297+
);
298+
299+
300+
DWORD BuildSecurityDescriptorW(
301+
PTRUSTEE_W pOwner,
302+
PTRUSTEE_W pGroup,
303+
ULONG cCountOfAccessEntries,
304+
PEXPLICIT_ACCESS_W pListOfAccessEntries,
305+
ULONG cCountOfAuditEntries,
306+
PEXPLICIT_ACCESS_W pListOfAuditEntries,
307+
PSECURITY_DESCRIPTOR pOldSD,
308+
PULONG pSizeNewSD,
309+
PSECURITY_DESCRIPTOR *pNewSD
237310
);

ctypes_generation/definitions/simple_types.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ PSTR = LPSTR
3333
PCSTR = LPSTR
3434

3535
va_list = c_char_p
36+
LPCH = c_char_p
37+
LPWCH = c_wchar
3638
BSTR = c_wchar_p
3739
OLECHAR = c_wchar
3840
POLECHAR = c_wchar_p
@@ -131,6 +133,8 @@ HBRUSH = HANDLE
131133
HCRYPTPROV_OR_NCRYPT_KEY_HANDLE = PULONG
132134
EVT_HANDLE = HANDLE
133135
EVT_OBJECT_ARRAY_PROPERTY_HANDLE = HANDLE
136+
LSA_HANDLE = HANDLE
137+
PLSA_HANDLE = POINTER(LSA_HANDLE)
134138
// Define type for setup disk space list
135139
HDSKSPC = HANDLE
136140
// Define type for reference to device information set
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
typedef enum _POLICY_INFORMATION_CLASS {
2+
PolicyAuditLogInformation = 1,
3+
PolicyAuditEventsInformation,
4+
PolicyPrimaryDomainInformation,
5+
PolicyPdAccountInformation,
6+
PolicyAccountDomainInformation,
7+
PolicyLsaServerRoleInformation,
8+
PolicyReplicaSourceInformation,
9+
PolicyDefaultQuotaInformation,
10+
PolicyModificationInformation,
11+
PolicyAuditFullSetInformation,
12+
PolicyAuditFullQueryInformation,
13+
PolicyDnsDomainInformation,
14+
PolicyDnsDomainInformationInt,
15+
PolicyLocalAccountDomainInformation,
16+
PolicyMachineAccountInformation,
17+
PolicyLastEntry
18+
} POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS;
19+
20+
// Same as an OBJECT_ATTRIBUTES..
21+
typedef struct _LSA_OBJECT_ATTRIBUTES {
22+
ULONG Length;
23+
HANDLE RootDirectory;
24+
PLSA_UNICODE_STRING ObjectName;
25+
ULONG Attributes;
26+
PVOID SecurityDescriptor;
27+
PVOID SecurityQualityOfService;
28+
} LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES;
29+
30+
31+
typedef struct _POLICY_PRIMARY_DOMAIN_INFO {
32+
LSA_UNICODE_STRING Name;
33+
PSID Sid;
34+
} POLICY_PRIMARY_DOMAIN_INFO, *PPOLICY_PRIMARY_DOMAIN_INFO;
35+
36+
typedef enum _POLICY_LSA_SERVER_ROLE {
37+
PolicyServerRoleBackup,
38+
PolicyServerRolePrimary
39+
} POLICY_LSA_SERVER_ROLE, *PPOLICY_LSA_SERVER_ROLE;
40+
41+
typedef struct _POLICY_LSA_SERVER_ROLE_INFO {
42+
POLICY_LSA_SERVER_ROLE LsaServerRole;
43+
} POLICY_LSA_SERVER_ROLE_INFO, *PPOLICY_LSA_SERVER_ROLE_INFO;
44+
45+
46+
typedef struct _POLICY_ACCOUNT_DOMAIN_INFO {
47+
LSA_UNICODE_STRING DomainName;
48+
PSID DomainSid;
49+
} POLICY_ACCOUNT_DOMAIN_INFO, *PPOLICY_ACCOUNT_DOMAIN_INFO;
50+
51+
52+
typedef struct _POLICY_PRIMARY_DOMAIN_INFO {
53+
LSA_UNICODE_STRING Name;
54+
PSID Sid;
55+
} POLICY_PRIMARY_DOMAIN_INFO, *PPOLICY_PRIMARY_DOMAIN_INFO;
56+
57+
58+
typedef struct _LSA_TRANSLATED_SID {
59+
SID_NAME_USE Use;
60+
ULONG RelativeId;
61+
LONG DomainIndex;
62+
} LSA_TRANSLATED_SID, *PLSA_TRANSLATED_SID;
63+
64+
typedef struct _LSA_TRANSLATED_SID2 {
65+
SID_NAME_USE Use;
66+
PSID Sid;
67+
LONG DomainIndex;
68+
ULONG Flags;
69+
} LSA_TRANSLATED_SID2, *PLSA_TRANSLATED_SID2;
70+
71+
72+
typedef struct _LSA_TRANSLATED_NAME {
73+
SID_NAME_USE Use;
74+
LSA_UNICODE_STRING Name;
75+
LONG DomainIndex;
76+
} LSA_TRANSLATED_NAME, *PLSA_TRANSLATED_NAME;
77+
78+
79+
typedef struct _LSA_TRUST_INFORMATION {
80+
LSA_UNICODE_STRING Name;
81+
PSID Sid;
82+
} LSA_TRUST_INFORMATION, *PLSA_TRUST_INFORMATION;
83+
84+
typedef struct _LSA_REFERENCED_DOMAIN_LIST {
85+
ULONG Entries;
86+
PLSA_TRUST_INFORMATION Domains;
87+
} LSA_REFERENCED_DOMAIN_LIST, *PLSA_REFERENCED_DOMAIN_LIST;

ctypes_generation/definitions/structures/security.txt

Lines changed: 99 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,4 +278,102 @@ typedef struct _PRIVILEGE_SET {
278278
DWORD PrivilegeCount;
279279
DWORD Control;
280280
LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY];
281-
} PRIVILEGE_SET, *PPRIVILEGE_SET;
281+
} PRIVILEGE_SET, *PPRIVILEGE_SET;
282+
283+
284+
typedef struct _OBJECTS_AND_NAME_A {
285+
DWORD ObjectsPresent;
286+
SE_OBJECT_TYPE ObjectType;
287+
LPSTR ObjectTypeName;
288+
LPSTR InheritedObjectTypeName;
289+
LPSTR ptstrName;
290+
} OBJECTS_AND_NAME_A, *POBJECTS_AND_NAME_A;
291+
292+
293+
typedef enum _MULTIPLE_TRUSTEE_OPERATION {
294+
NO_MULTIPLE_TRUSTEE,
295+
TRUSTEE_IS_IMPERSONATE
296+
} MULTIPLE_TRUSTEE_OPERATION;
297+
298+
typedef enum _TRUSTEE_FORM {
299+
TRUSTEE_IS_SID,
300+
TRUSTEE_IS_NAME,
301+
TRUSTEE_BAD_FORM,
302+
TRUSTEE_IS_OBJECTS_AND_SID,
303+
TRUSTEE_IS_OBJECTS_AND_NAME
304+
} TRUSTEE_FORM;
305+
306+
307+
typedef enum _TRUSTEE_TYPE {
308+
TRUSTEE_IS_UNKNOWN,
309+
TRUSTEE_IS_USER,
310+
TRUSTEE_IS_GROUP,
311+
TRUSTEE_IS_DOMAIN,
312+
TRUSTEE_IS_ALIAS,
313+
TRUSTEE_IS_WELL_KNOWN_GROUP,
314+
TRUSTEE_IS_DELETED,
315+
TRUSTEE_IS_INVALID,
316+
TRUSTEE_IS_COMPUTER
317+
} TRUSTEE_TYPE;
318+
319+
320+
typedef struct _OBJECTS_AND_SID {
321+
DWORD ObjectsPresent;
322+
GUID ObjectTypeGuid;
323+
GUID InheritedObjectTypeGuid;
324+
PSID pSid;
325+
} OBJECTS_AND_SID, *POBJECTS_AND_SID;
326+
327+
typedef struct _TRUSTEE_A {
328+
struct _TRUSTEE_A *pMultipleTrustee;
329+
MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;
330+
TRUSTEE_FORM TrusteeForm;
331+
TRUSTEE_TYPE TrusteeType;
332+
union {
333+
LPSTR ptstrName;
334+
PSID pSid;
335+
OBJECTS_AND_SID *pObjectsAndSid;
336+
OBJECTS_AND_NAME_A *pObjectsAndName;
337+
};
338+
LPCH ptstrName;
339+
} TRUSTEE_A, *PTRUSTEE_A, TRUSTEEA, *PTRUSTEEA;
340+
341+
342+
typedef struct _OBJECTS_AND_NAME_W {
343+
DWORD ObjectsPresent;
344+
SE_OBJECT_TYPE ObjectType;
345+
LPWSTR ObjectTypeName;
346+
LPWSTR InheritedObjectTypeName;
347+
LPWSTR ptstrName;
348+
} OBJECTS_AND_NAME_W, *POBJECTS_AND_NAME_W;
349+
350+
typedef struct _TRUSTEE_W {
351+
struct _TRUSTEE_W *pMultipleTrustee;
352+
MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;
353+
TRUSTEE_FORM TrusteeForm;
354+
TRUSTEE_TYPE TrusteeType;
355+
union {
356+
LPWSTR ptstrName;
357+
PSID pSid;
358+
OBJECTS_AND_SID *pObjectsAndSid;
359+
OBJECTS_AND_NAME_W *pObjectsAndName;
360+
};
361+
LPWCH ptstrName;
362+
} TRUSTEE_W, *PTRUSTEE_W, TRUSTEEW, *PTRUSTEEW;
363+
364+
typedef enum _ACCESS_MODE {
365+
NOT_USED_ACCESS,
366+
GRANT_ACCESS,
367+
SET_ACCESS,
368+
DENY_ACCESS,
369+
REVOKE_ACCESS,
370+
SET_AUDIT_SUCCESS,
371+
SET_AUDIT_FAILURE
372+
} ACCESS_MODE;
373+
374+
typedef struct _EXPLICIT_ACCESS_W {
375+
DWORD grfAccessPermissions;
376+
ACCESS_MODE grfAccessMode;
377+
DWORD grfInheritance;
378+
TRUSTEE_W Trustee;
379+
} EXPLICIT_ACCESS_W, *PEXPLICIT_ACCESS_W, EXPLICIT_ACCESSW, *PEXPLICIT_ACCESSW;

ctypes_generation/generate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ def copy_template(self):
360360
self.emitline(".. currentmodule:: windows.generated_def")
361361
self.emitline("")
362362
self.emitline(self.DOCNAME)
363-
self.emitline("------")
363+
self.emitline("-" * len(self.DOCNAME))
364364

365365
def generate_for_file(self, file):
366366
for define in file.data:

0 commit comments

Comments
 (0)