1 // Copyright © 2015, skdltmxn
2 // Licensed under the MIT License <LICENSE.md>
3 //! LSA Policy Lookup API
4 STRUCT!{struct LSA_UNICODE_STRING {
5     Length: ::USHORT,
6     MaximumLength: ::USHORT,
7     Buffer: ::PWSTR,
8 }}
9 pub type PLSA_UNICODE_STRING = *mut LSA_UNICODE_STRING;
10 STRUCT!{struct LSA_STRING {
11     Length: ::USHORT,
12     MaximumLength: ::USHORT,
13     Buffer: ::PCHAR,
14 }}
15 pub type PLSA_STRING = *mut LSA_STRING;
16 STRUCT!{struct LSA_OBJECT_ATTRIBUTES {
17     Length: ::ULONG,
18     RootDirectory: ::HANDLE,
19     ObjectName: PLSA_UNICODE_STRING,
20     Attributes: ::ULONG,
21     SecurityDescriptor: ::PVOID,
22     SecurityQualityOfService: ::PVOID,
23 }}
24 pub type PLSA_OBJECT_ATTRIBUTES = *mut LSA_OBJECT_ATTRIBUTES;
25 STRUCT!{struct LSA_TRUST_INFORMATION {
26     Name: LSA_UNICODE_STRING,
27     Sid: ::PSID,
28 }}
29 pub type PLSA_TRUST_INFORMATION = *mut LSA_TRUST_INFORMATION;
30 STRUCT!{struct LSA_REFERENCED_DOMAIN_LIST {
31     Entries: ::ULONG,
32     Domains: PLSA_TRUST_INFORMATION,
33 }}
34 pub type PLSA_REFERENCED_DOMAIN_LIST = *mut LSA_REFERENCED_DOMAIN_LIST;
35 STRUCT!{struct LSA_TRANSLATED_SID2 {
36     Use: ::SID_NAME_USE,
37     Sid: ::PSID,
38     DomainIndex: ::LONG,
39     Flags: ::ULONG,
40 }}
41 pub type PLSA_TRANSLATED_SID2 = *mut LSA_TRANSLATED_SID2;
42 STRUCT!{struct LSA_TRANSLATED_NAME {
43     Use: ::SID_NAME_USE,
44     Name: LSA_UNICODE_STRING,
45     DomainIndex: ::LONG,
46 }}
47 pub type PLSA_TRANSLATED_NAME = *mut LSA_TRANSLATED_NAME;
48 STRUCT!{struct POLICY_ACCOUNT_DOMAIN_INFO {
49     DomainName: LSA_UNICODE_STRING,
50     DomainSid: ::PSID,
51 }}
52 pub type PPOLICY_ACCOUNT_DOMAIN_INFO = *mut POLICY_ACCOUNT_DOMAIN_INFO;
53 STRUCT!{struct POLICY_DNS_DOMAIN_INFO {
54     Name: LSA_UNICODE_STRING,
55     DnsDomainName: LSA_UNICODE_STRING,
56     DnsForestName: LSA_UNICODE_STRING,
57     DomainGuid: ::GUID,
58     Sid: ::PSID,
59 }}
60 pub type PPOLICY_DNS_DOMAIN_INFO = *mut POLICY_DNS_DOMAIN_INFO;
61 pub const LOOKUP_VIEW_LOCAL_INFORMATION: ::ACCESS_MASK = 0x00000001;
62 pub const LOOKUP_TRANSLATE_NAMES: ::ACCESS_MASK = 0x00000800;
63 ENUM!{enum LSA_LOOKUP_DOMAIN_INFO_CLASS {
64     AccountDomainInformation = 5,
65     DnsDomainInformation = 12,
66 }}
67 pub type PLSA_LOOKUP_DOMAIN_INFO_CLASS = *mut LSA_LOOKUP_DOMAIN_INFO_CLASS;
68 pub type LSA_LOOKUP_HANDLE = ::PVOID;
69 pub type PLSA_LOOKUP_HANDLE = *mut ::PVOID;
70