]> git.proxmox.com Git - rustc.git/blob - vendor/winapi/src/um/lmjoin.rs
New upstream version 1.70.0+dfsg2
[rustc.git] / vendor / winapi / src / um / lmjoin.rs
1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 // Definitions and prototypes for the Net setup apis
7 use shared::lmcons::NET_API_STATUS;
8 use shared::minwindef::{BYTE, DWORD, PBYTE, PDWORD, ULONG};
9 use um::wincrypt::PCCERT_CONTEXT;
10 use um::winnt::{HRESULT, LPCWSTR, LPWSTR, PVOID};
11 ENUM!{enum NETSETUP_NAME_TYPE {
12 NetSetupUnknown = 0,
13 NetSetupMachine,
14 NetSetupWorkgroup,
15 NetSetupDomain,
16 NetSetupNonExistentDomain,
17 NetSetupDnsMachine,
18 }}
19 pub type PNETSETUP_NAME_TYPE = *mut NETSETUP_NAME_TYPE;
20 ENUM!{enum DSREG_JOIN_TYPE {
21 DSREG_UNKNOWN_JOIN = 0,
22 DSREG_DEVICE_JOIN = 1,
23 DSREG_WORKPLACE_JOIN = 2,
24 }}
25 pub type PDSREG_JOIN_TYPE = *mut DSREG_JOIN_TYPE;
26 STRUCT!{struct DSREG_USER_INFO {
27 pszUserEmail: LPWSTR,
28 pszUserKeyId: LPWSTR,
29 pszUserKeyName: LPWSTR,
30 }}
31 pub type PDSREG_USER_INFO = *mut DSREG_USER_INFO;
32 STRUCT!{struct DSREG_JOIN_INFO {
33 joinType: DSREG_JOIN_TYPE,
34 pJoinCertificate: PCCERT_CONTEXT,
35 pszDeviceId: LPWSTR,
36 pszIdpDomain: LPWSTR,
37 pszTenantId: LPWSTR,
38 pszJoinUserEmail: LPWSTR,
39 pszTenantDisplayName: LPWSTR,
40 pszMdmEnrollmentUrl: LPWSTR,
41 pszMdmTermsOfUseUrl: LPWSTR,
42 pszMdmComplianceUrl: LPWSTR,
43 pszUserSettingSyncUrl: LPWSTR,
44 pUserInfo: *mut DSREG_USER_INFO,
45 }}
46 pub type PDSREG_JOIN_INFO = *mut DSREG_JOIN_INFO;
47 pub const NETSETUP_JOIN_DOMAIN: DWORD = 0x00000001;
48 pub const NETSETUP_ACCT_CREATE: DWORD = 0x00000002;
49 pub const NETSETUP_ACCT_DELETE: DWORD = 0x00000004;
50 pub const NETSETUP_WIN9X_UPGRADE: DWORD = 0x00000010;
51 pub const NETSETUP_DOMAIN_JOIN_IF_JOINED: DWORD = 0x00000020;
52 pub const NETSETUP_JOIN_UNSECURE: DWORD = 0x00000040;
53 pub const NETSETUP_MACHINE_PWD_PASSED: DWORD = 0x00000080;
54 pub const NETSETUP_DEFER_SPN_SET: DWORD = 0x00000100;
55 pub const NETSETUP_JOIN_DC_ACCOUNT: DWORD = 0x00000200;
56 pub const NETSETUP_JOIN_WITH_NEW_NAME: DWORD = 0x00000400;
57 pub const NETSETUP_JOIN_READONLY: DWORD = 0x00000800;
58 pub const NETSETUP_DNS_NAME_CHANGES_ONLY: DWORD = 0x00001000;
59 pub const NETSETUP_INSTALL_INVOCATION: DWORD = 0x00040000;
60 pub const NETSETUP_AMBIGUOUS_DC: DWORD = 0x00001000;
61 pub const NETSETUP_NO_NETLOGON_CACHE: DWORD = 0x00002000;
62 pub const NETSETUP_DONT_CONTROL_SERVICES: DWORD = 0x00004000;
63 pub const NETSETUP_SET_MACHINE_NAME: DWORD = 0x00008000;
64 pub const NETSETUP_FORCE_SPN_SET: DWORD = 0x00010000;
65 pub const NETSETUP_NO_ACCT_REUSE: DWORD = 0x00020000;
66 pub const NETSETUP_ALT_SAMACCOUNTNAME: DWORD = 0x00020000;
67 pub const NETSETUP_IGNORE_UNSUPPORTED_FLAGS: DWORD = 0x10000000;
68 pub const NETSETUP_VALID_UNJOIN_FLAGS: DWORD = NETSETUP_ACCT_DELETE
69 | NETSETUP_IGNORE_UNSUPPORTED_FLAGS | NETSETUP_JOIN_DC_ACCOUNT;
70 pub const NETSETUP_PROCESS_OFFLINE_FLAGS: DWORD = NETSETUP_JOIN_DOMAIN
71 | NETSETUP_DOMAIN_JOIN_IF_JOINED | NETSETUP_JOIN_WITH_NEW_NAME | NETSETUP_DONT_CONTROL_SERVICES
72 | NETSETUP_MACHINE_PWD_PASSED;
73 extern "system" {
74 pub fn NetJoinDomain(
75 lpServer: LPCWSTR,
76 lpDomain: LPCWSTR,
77 lpMachineAccountOU: LPCWSTR,
78 lpAccount: LPCWSTR,
79 lpPassword: LPCWSTR,
80 fJoinOptions: DWORD,
81 ) -> NET_API_STATUS;
82 pub fn NetUnjoinDomain(
83 lpServer: LPCWSTR,
84 lpAccount: LPCWSTR,
85 lpPassword: LPCWSTR,
86 fUnjoinOptions: DWORD,
87 ) -> NET_API_STATUS;
88 pub fn NetRenameMachineInDomain(
89 lpServer: LPCWSTR,
90 lpNewMachineName: LPCWSTR,
91 lpAccount: LPCWSTR,
92 lpPassword: LPCWSTR,
93 fRenameOptions: DWORD,
94 ) -> NET_API_STATUS;
95 pub fn NetValidateName(
96 lpServer: LPCWSTR,
97 lpName: LPCWSTR,
98 lpAccount: LPCWSTR,
99 lpPassword: LPCWSTR,
100 NameType: NETSETUP_NAME_TYPE,
101 ) -> NET_API_STATUS;
102 pub fn NetGetJoinableOUs(
103 lpServer: LPCWSTR,
104 lpDomain: LPCWSTR,
105 lpAccount: LPCWSTR,
106 lpPassword: LPCWSTR,
107 OUCount: *mut DWORD,
108 OUs: *mut *mut LPWSTR,
109 ) -> NET_API_STATUS;
110 }
111 pub const NET_IGNORE_UNSUPPORTED_FLAGS: DWORD = 0x01;
112 extern "system" {
113 pub fn NetAddAlternateComputerName(
114 Server: LPCWSTR,
115 AlternateName: LPCWSTR,
116 DomainAccount: LPCWSTR,
117 DomainAccountPassword: LPCWSTR,
118 Reserved: ULONG,
119 ) -> NET_API_STATUS;
120 pub fn NetRemoveAlternateComputerName(
121 Server: LPCWSTR,
122 AlternateName: LPCWSTR,
123 DomainAccount: LPCWSTR,
124 DomainAccountPassword: LPCWSTR,
125 Reserved: ULONG,
126 ) -> NET_API_STATUS;
127 pub fn NetSetPrimaryComputerName(
128 Server: LPCWSTR,
129 PrimaryName: LPCWSTR,
130 DomainAccount: LPCWSTR,
131 DomainAccountPassword: LPCWSTR,
132 Reserved: ULONG,
133 ) -> NET_API_STATUS;
134 }
135 ENUM!{enum NET_COMPUTER_NAME_TYPE {
136 NetPrimaryComputerName,
137 NetAlternateComputerNames,
138 NetAllComputerNames,
139 NetComputerNameTypeMax,
140 }}
141 pub type PNET_COMPUTER_NAME_TYPE = *mut NET_COMPUTER_NAME_TYPE;
142 extern "system" {
143 pub fn NetEnumerateComputerNames(
144 Server: LPCWSTR,
145 NameType: NET_COMPUTER_NAME_TYPE,
146 Reserved: ULONG,
147 EntryCount: PDWORD,
148 ComputerNames: *mut *mut LPWSTR,
149 ) -> NET_API_STATUS;
150 }
151 pub const NETSETUP_PROVISION_DOWNLEVEL_PRIV_SUPPORT: DWORD = 0x00000001;
152 pub const NETSETUP_PROVISION_REUSE_ACCOUNT: DWORD = 0x00000002;
153 pub const NETSETUP_PROVISION_USE_DEFAULT_PASSWORD: DWORD = 0x00000004;
154 pub const NETSETUP_PROVISION_SKIP_ACCOUNT_SEARCH: DWORD = 0x00000008;
155 pub const NETSETUP_PROVISION_ROOT_CA_CERTS: DWORD = 0x00000010;
156 pub const NETSETUP_PROVISION_PERSISTENTSITE: DWORD = 0x00000020;
157 pub const NETSETUP_PROVISION_ONLINE_CALLER: DWORD = 0x40000000;
158 pub const NETSETUP_PROVISION_CHECK_PWD_ONLY: DWORD = 0x80000000;
159 extern "system" {
160 pub fn NetProvisionComputerAccount(
161 lpDomain: LPCWSTR,
162 lpMachineName: LPCWSTR,
163 lpMachineAccountOU: LPCWSTR,
164 lpDcName: LPCWSTR,
165 dwOptions: DWORD,
166 pProvisionBinData: *mut PBYTE,
167 pdwProvisionBinDataSize: *mut DWORD,
168 pProvisionTextData: *mut LPWSTR,
169 ) -> NET_API_STATUS;
170 pub fn NetRequestOfflineDomainJoin(
171 pProvisionBinData: *mut BYTE,
172 cbProvisionBinDataSize: DWORD,
173 dwOptions: DWORD,
174 lpWindowsPath: LPCWSTR,
175 ) -> NET_API_STATUS;
176 }
177 pub const NETSETUP_PROVISIONING_PARAMS_WIN8_VERSION: DWORD = 0x00000001;
178 pub const NETSETUP_PROVISIONING_PARAMS_CURRENT_VERSION: DWORD = 0x00000002;
179 STRUCT!{struct NETSETUP_PROVISIONING_PARAMS {
180 dwVersion: DWORD,
181 lpDomain: LPCWSTR,
182 lpHostName: LPCWSTR,
183 lpMachineAccountOU: LPCWSTR,
184 lpDcName: LPCWSTR,
185 dwProvisionOptions: DWORD,
186 aCertTemplateNames: *mut LPCWSTR,
187 cCertTemplateNames: DWORD,
188 aMachinePolicyNames: *mut LPCWSTR,
189 cMachinePolicyNames: DWORD,
190 aMachinePolicyPaths: *mut LPCWSTR,
191 cMachinePolicyPaths: DWORD,
192 lpNetbiosName: LPWSTR,
193 lpSiteName: LPWSTR,
194 lpPrimaryDNSDomain: LPWSTR,
195 }}
196 pub type PNETSETUP_PROVISIONING_PARAMS = *mut NETSETUP_PROVISIONING_PARAMS;
197 extern "system" {
198 pub fn NetCreateProvisioningPackage(
199 pProvisioningParams: PNETSETUP_PROVISIONING_PARAMS,
200 ppPackageBinData: *mut PBYTE,
201 pdwPackageBinDataSize: *mut DWORD,
202 ppPackageTextData: *mut LPWSTR,
203 ) -> NET_API_STATUS;
204 pub fn NetRequestProvisioningPackageInstall(
205 pPackageBinData: *mut BYTE,
206 dwPackageBinDataSize: DWORD,
207 dwProvisionOptions: DWORD,
208 lpWindowsPath: LPCWSTR,
209 pvReserved: PVOID,
210 ) -> NET_API_STATUS;
211 pub fn NetGetAadJoinInformation(
212 pcszTenantId: LPCWSTR,
213 ppJoinInfo: *mut PDSREG_JOIN_INFO,
214 ) -> HRESULT;
215 pub fn NetFreeAadJoinInformation(
216 pJoinInfo: PDSREG_JOIN_INFO,
217 );
218 }
219 ENUM!{enum NETSETUP_JOIN_STATUS {
220 NetSetupUnknownStatus = 0,
221 NetSetupUnjoined,
222 NetSetupWorkgroupName,
223 NetSetupDomainName,
224 }}
225 pub type PNETSETUP_JOIN_STATUS = *mut NETSETUP_JOIN_STATUS;
226 extern "system" {
227 pub fn NetGetJoinInformation(
228 lpServer: LPCWSTR,
229 lpNameBuffer: *mut LPWSTR,
230 BufferType: PNETSETUP_JOIN_STATUS,
231 ) -> NET_API_STATUS;
232 }