summaryrefslogtreecommitdiff
path: root/vendor/winapi/src/um/lsalookup.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/winapi/src/um/lsalookup.rs')
-rw-r--r--vendor/winapi/src/um/lsalookup.rs109
1 files changed, 109 insertions, 0 deletions
diff --git a/vendor/winapi/src/um/lsalookup.rs b/vendor/winapi/src/um/lsalookup.rs
new file mode 100644
index 0000000..95a6b62
--- /dev/null
+++ b/vendor/winapi/src/um/lsalookup.rs
@@ -0,0 +1,109 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! LSA Policy Lookup API
+use shared::guiddef::GUID;
+use shared::minwindef::{ULONG, USHORT};
+use shared::ntdef::NTSTATUS;
+use um::winnt::{ACCESS_MASK, HANDLE, LONG, PCHAR, PSID, PVOID, PWSTR, SID_NAME_USE};
+STRUCT!{struct LSA_UNICODE_STRING {
+ Length: USHORT,
+ MaximumLength: USHORT,
+ Buffer: PWSTR,
+}}
+pub type PLSA_UNICODE_STRING = *mut LSA_UNICODE_STRING;
+STRUCT!{struct LSA_STRING {
+ Length: USHORT,
+ MaximumLength: USHORT,
+ Buffer: PCHAR,
+}}
+pub type PLSA_STRING = *mut LSA_STRING;
+STRUCT!{struct LSA_OBJECT_ATTRIBUTES {
+ Length: ULONG,
+ RootDirectory: HANDLE,
+ ObjectName: PLSA_UNICODE_STRING,
+ Attributes: ULONG,
+ SecurityDescriptor: PVOID,
+ SecurityQualityOfService: PVOID,
+}}
+pub type PLSA_OBJECT_ATTRIBUTES = *mut LSA_OBJECT_ATTRIBUTES;
+STRUCT!{struct LSA_TRUST_INFORMATION {
+ Name: LSA_UNICODE_STRING,
+ Sid: PSID,
+}}
+pub type PLSA_TRUST_INFORMATION = *mut LSA_TRUST_INFORMATION;
+STRUCT!{struct LSA_REFERENCED_DOMAIN_LIST {
+ Entries: ULONG,
+ Domains: PLSA_TRUST_INFORMATION,
+}}
+pub type PLSA_REFERENCED_DOMAIN_LIST = *mut LSA_REFERENCED_DOMAIN_LIST;
+STRUCT!{struct LSA_TRANSLATED_SID2 {
+ Use: SID_NAME_USE,
+ Sid: PSID,
+ DomainIndex: LONG,
+ Flags: ULONG,
+}}
+pub type PLSA_TRANSLATED_SID2 = *mut LSA_TRANSLATED_SID2;
+STRUCT!{struct LSA_TRANSLATED_NAME {
+ Use: SID_NAME_USE,
+ Name: LSA_UNICODE_STRING,
+ DomainIndex: LONG,
+}}
+pub type PLSA_TRANSLATED_NAME = *mut LSA_TRANSLATED_NAME;
+STRUCT!{struct POLICY_ACCOUNT_DOMAIN_INFO {
+ DomainName: LSA_UNICODE_STRING,
+ DomainSid: PSID,
+}}
+pub type PPOLICY_ACCOUNT_DOMAIN_INFO = *mut POLICY_ACCOUNT_DOMAIN_INFO;
+STRUCT!{struct POLICY_DNS_DOMAIN_INFO {
+ Name: LSA_UNICODE_STRING,
+ DnsDomainName: LSA_UNICODE_STRING,
+ DnsForestName: LSA_UNICODE_STRING,
+ DomainGuid: GUID,
+ Sid: PSID,
+}}
+pub type PPOLICY_DNS_DOMAIN_INFO = *mut POLICY_DNS_DOMAIN_INFO;
+pub const LOOKUP_VIEW_LOCAL_INFORMATION: ACCESS_MASK = 0x00000001;
+pub const LOOKUP_TRANSLATE_NAMES: ACCESS_MASK = 0x00000800;
+ENUM!{enum LSA_LOOKUP_DOMAIN_INFO_CLASS {
+ AccountDomainInformation = 5,
+ DnsDomainInformation = 12,
+}}
+pub type PLSA_LOOKUP_DOMAIN_INFO_CLASS = *mut LSA_LOOKUP_DOMAIN_INFO_CLASS;
+pub type LSA_LOOKUP_HANDLE = PVOID;
+pub type PLSA_LOOKUP_HANDLE = *mut PVOID;
+extern "C" {
+ pub fn LsaLookupOpenLocalPolicy(
+ ObjectAttributes: PLSA_OBJECT_ATTRIBUTES,
+ AccessMask: ACCESS_MASK,
+ PolicyHandle: PLSA_LOOKUP_HANDLE,
+ ) -> NTSTATUS;
+ pub fn LsaLookupClose(
+ ObjectHandle: LSA_LOOKUP_HANDLE,
+ ) -> NTSTATUS;
+ pub fn LsaLookupTranslateSids(
+ PolicyHandle: LSA_LOOKUP_HANDLE,
+ Count: ULONG,
+ Sids: *mut PSID,
+ ReferencedDomains: *mut PLSA_REFERENCED_DOMAIN_LIST,
+ Names: *mut PLSA_TRANSLATED_NAME,
+ ) -> NTSTATUS;
+ pub fn LsaLookupTranslateNames(
+ PolicyHandle: LSA_LOOKUP_HANDLE,
+ Flags: ULONG,
+ Count: ULONG,
+ Names: PLSA_UNICODE_STRING,
+ ReferencedDomains: *mut PLSA_REFERENCED_DOMAIN_LIST,
+ Sids: *mut PLSA_TRANSLATED_SID2,
+ ) -> NTSTATUS;
+ pub fn LsaLookupGetDomainInfo(
+ PolicyHandle: LSA_LOOKUP_HANDLE,
+ DomainInfoClass: LSA_LOOKUP_DOMAIN_INFO_CLASS,
+ DomainInfo: *mut PVOID,
+ ) -> NTSTATUS;
+ pub fn LsaLookupFreeMemory(
+ Buffer: PVOID,
+ ) -> NTSTATUS;
+}