Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1234 lines
41 KiB

  1. #pragma warning( disable: 4049 ) /* more than 64k source lines */
  2. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  3. /* File created by MIDL compiler version 6.00.0347 */
  4. /* Compiler settings for lsarpc.idl, lsasrv.acf:
  5. Oicf, W1, Zp8, env=Win32 (32b run)
  6. protocol : dce , ms_ext, c_ext, oldnames, robust
  7. error checks: allocation ref bounds_check enum stub_data , no_format_optimization
  8. VC __declspec() decoration level:
  9. __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  10. DECLSPEC_UUID(), MIDL_INTERFACE()
  11. */
  12. //@@MIDL_FILE_HEADING( )
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef __lsarpc_h__
  23. #define __lsarpc_h__
  24. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  25. #pragma once
  26. #endif
  27. /* Forward Declarations */
  28. /* header files for imported files */
  29. #include "lsaimp.h"
  30. #ifdef __cplusplus
  31. extern "C"{
  32. #endif
  33. void * __RPC_USER MIDL_user_allocate(size_t);
  34. void __RPC_USER MIDL_user_free( void * );
  35. #ifndef __lsarpc_INTERFACE_DEFINED__
  36. #define __lsarpc_INTERFACE_DEFINED__
  37. /* interface lsarpc */
  38. /* [implicit_handle][strict_context_handle][unique][ms_union][version][uuid] */
  39. #define LSA_LOOKUP_REVISION_1 0x1
  40. #define LSA_LOOKUP_REVISION_2 0x2
  41. #define LSA_LOOKUP_REVISION_LATEST LSA_LOOKUP_REVISION_2
  42. #define LSA_CLIENT_PRE_NT5 0x1
  43. #define LSA_CLIENT_NT5 0x2
  44. #define LSA_CLIENT_LATEST 0x2
  45. typedef /* [handle] */ LPWSTR PLSAPR_SERVER_NAME;
  46. typedef /* [handle] */ LPWSTR *PPLSAPR_SERVER_NAME;
  47. typedef /* [context_handle] */ PVOID LSAPR_HANDLE;
  48. typedef LSAPR_HANDLE *PLSAPR_HANDLE;
  49. #pragma warning(disable:4200)
  50. typedef struct _LSAPR_SID
  51. {
  52. UCHAR Revision;
  53. UCHAR SubAuthorityCount;
  54. SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
  55. /* [size_is] */ ULONG SubAuthority[ 1 ];
  56. } LSAPR_SID;
  57. typedef struct _LSAPR_SID *PLSAPR_SID;
  58. typedef struct _LSAPR_SID **PPLSAPR_SID;
  59. #pragma warning(default:4200)
  60. typedef struct _LSAPR_SID_INFORMATION
  61. {
  62. PLSAPR_SID Sid;
  63. } LSAPR_SID_INFORMATION;
  64. typedef struct _LSAPR_SID_INFORMATION *PLSAPR_SID_INFORMATION;
  65. typedef struct _LSAPR_SID_ENUM_BUFFER
  66. {
  67. ULONG Entries;
  68. /* [size_is] */ PLSAPR_SID_INFORMATION SidInfo;
  69. } LSAPR_SID_ENUM_BUFFER;
  70. typedef struct _LSAPR_SID_ENUM_BUFFER *PLSAPR_SID_ENUM_BUFFER;
  71. typedef struct _LSAPR_ACCOUNT_INFORMATION
  72. {
  73. PLSAPR_SID Sid;
  74. } LSAPR_ACCOUNT_INFORMATION;
  75. typedef struct _LSAPR_ACCOUNT_INFORMATION *PLSAPR_ACCOUNT_INFORMATION;
  76. typedef struct _LSAPR_ACCOUNT_ENUM_BUFFER
  77. {
  78. ULONG EntriesRead;
  79. /* [size_is] */ PLSAPR_ACCOUNT_INFORMATION Information;
  80. } LSAPR_ACCOUNT_ENUM_BUFFER;
  81. typedef struct _LSAPR_ACCOUNT_ENUM_BUFFER *PLSAPR_ACCOUNT_ENUM_BUFFER;
  82. typedef struct _LSAPR_UNICODE_STRING
  83. {
  84. USHORT Length;
  85. USHORT MaximumLength;
  86. /* [length_is][size_is] */ PWSTR Buffer;
  87. } LSAPR_UNICODE_STRING;
  88. typedef struct _LSAPR_UNICODE_STRING *PLSAPR_UNICODE_STRING;
  89. typedef struct _LSAPR_STRING
  90. {
  91. USHORT Length;
  92. USHORT MaximumLength;
  93. /* [size_is] */ PCHAR Buffer;
  94. } LSAPR_STRING;
  95. typedef struct _LSAPR_STRING *PLSAPR_STRING;
  96. typedef struct _LSAPR_STRING LSAPR_ANSI_STRING;
  97. typedef struct _LSAPR_STRING *PLSAPR_ANSI_STRING;
  98. #pragma warning(disable:4200)
  99. typedef struct _LSAPR_ACL
  100. {
  101. UCHAR AclRevision;
  102. UCHAR Sbz1;
  103. USHORT AclSize;
  104. /* [size_is] */ UCHAR Dummy1[ 1 ];
  105. } LSAPR_ACL;
  106. typedef struct _LSAPR_ACL *PLSAPR_ACL;
  107. #pragma warning(default:4200)
  108. typedef struct _LSAPR_SECURITY_DESCRIPTOR
  109. {
  110. UCHAR Revision;
  111. UCHAR Sbz1;
  112. SECURITY_DESCRIPTOR_CONTROL Control;
  113. PLSAPR_SID Owner;
  114. PLSAPR_SID Group;
  115. PLSAPR_ACL Sacl;
  116. PLSAPR_ACL Dacl;
  117. } LSAPR_SECURITY_DESCRIPTOR;
  118. typedef struct _LSAPR_SECURITY_DESCRIPTOR *PLSAPR_SECURITY_DESCRIPTOR;
  119. typedef struct _LSAPR_SR_SECURITY_DESCRIPTOR
  120. {
  121. ULONG Length;
  122. /* [size_is] */ PUCHAR SecurityDescriptor;
  123. } LSAPR_SR_SECURITY_DESCRIPTOR;
  124. typedef struct _LSAPR_SR_SECURITY_DESCRIPTOR *PLSAPR_SR_SECURITY_DESCRIPTOR;
  125. typedef struct _LSAPR_LUID_AND_ATTRIBUTES
  126. {
  127. OLD_LARGE_INTEGER Luid;
  128. ULONG Attributes;
  129. } LSAPR_LUID_AND_ATTRIBUTES;
  130. typedef struct _LSAPR_LUID_AND_ATTRIBUTES *PLSAPR_LUID_AND_ATTRIBUTES;
  131. #pragma warning(disable:4200)
  132. typedef struct _LSAPR_PRIVILEGE_SET
  133. {
  134. ULONG PrivilegeCount;
  135. ULONG Control;
  136. /* [size_is] */ LSAPR_LUID_AND_ATTRIBUTES Privilege[ 1 ];
  137. } LSAPR_PRIVILEGE_SET;
  138. typedef struct _LSAPR_PRIVILEGE_SET *PLSAPR_PRIVILEGE_SET;
  139. typedef struct _LSAPR_PRIVILEGE_SET **PPLSAPR_PRIVILEGE_SET;
  140. #pragma warning(default:4200)
  141. typedef struct _LSAPR_POLICY_PRIVILEGE_DEF
  142. {
  143. LSAPR_UNICODE_STRING Name;
  144. LUID LocalValue;
  145. } LSAPR_POLICY_PRIVILEGE_DEF;
  146. typedef struct _LSAPR_POLICY_PRIVILEGE_DEF *PLSAPR_POLICY_PRIVILEGE_DEF;
  147. typedef struct _LSAPR_PRIVILEGE_ENUM_BUFFER
  148. {
  149. ULONG Entries;
  150. /* [size_is] */ PLSAPR_POLICY_PRIVILEGE_DEF Privileges;
  151. } LSAPR_PRIVILEGE_ENUM_BUFFER;
  152. typedef struct _LSAPR_PRIVILEGE_ENUM_BUFFER *PLSAPR_PRIVILEGE_ENUM_BUFFER;
  153. typedef struct _LSAPR_OBJECT_ATTRIBUTES
  154. {
  155. ULONG Length;
  156. PUCHAR RootDirectory;
  157. PSTRING ObjectName;
  158. ULONG Attributes;
  159. PLSAPR_SECURITY_DESCRIPTOR SecurityDescriptor;
  160. PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService;
  161. } LSAPR_OBJECT_ATTRIBUTES;
  162. typedef struct _LSAPR_OBJECT_ATTRIBUTES *PLSAPR_OBJECT_ATTRIBUTES;
  163. typedef struct _LSAPR_CR_CLEAR_VALUE
  164. {
  165. ULONG Length;
  166. ULONG MaximumLength;
  167. /* [length_is][size_is] */ PUCHAR Buffer;
  168. } LSAPR_CR_CLEAR_VALUE;
  169. typedef struct _LSAPR_CR_CLEAR_VALUE *PLSAPR_CR_CLEAR_VALUE;
  170. typedef struct _LSAPR_CR_CIPHER_VALUE
  171. {
  172. ULONG Length;
  173. ULONG MaximumLength;
  174. /* [length_is][size_is] */ PUCHAR Buffer;
  175. } LSAPR_CR_CIPHER_VALUE;
  176. typedef /* [allocate] */ struct _LSAPR_CR_CIPHER_VALUE *PLSAPR_CR_CIPHER_VALUE;
  177. typedef struct _LSAPR_TRUST_INFORMATION
  178. {
  179. LSAPR_UNICODE_STRING Name;
  180. PLSAPR_SID Sid;
  181. } LSAPR_TRUST_INFORMATION;
  182. typedef struct _LSAPR_TRUST_INFORMATION *PLSAPR_TRUST_INFORMATION;
  183. typedef struct _LSAPR_TRUST_INFORMATION_EX
  184. {
  185. LSAPR_UNICODE_STRING DomainName;
  186. LSAPR_UNICODE_STRING FlatName;
  187. PLSAPR_SID Sid;
  188. BOOLEAN DomainNamesDiffer;
  189. ULONG TrustAttributes;
  190. } LSAPR_TRUST_INFORMATION_EX;
  191. typedef struct _LSAPR_TRUST_INFORMATION_EX *PLSAPR_TRUST_INFORMATION_EX;
  192. typedef struct _LSAPR_TRUSTED_ENUM_BUFFER
  193. {
  194. ULONG EntriesRead;
  195. /* [size_is] */ PLSAPR_TRUST_INFORMATION Information;
  196. } LSAPR_TRUSTED_ENUM_BUFFER;
  197. typedef struct _LSAPR_TRUSTED_ENUM_BUFFER *PLSAPR_TRUSTED_ENUM_BUFFER;
  198. typedef struct _LSAPR_REFERENCED_DOMAIN_LIST
  199. {
  200. ULONG Entries;
  201. /* [size_is] */ PLSAPR_TRUST_INFORMATION Domains;
  202. ULONG MaxEntries;
  203. } LSAPR_REFERENCED_DOMAIN_LIST;
  204. typedef struct _LSAPR_REFERENCED_DOMAIN_LIST *PLSAPR_REFERENCED_DOMAIN_LIST;
  205. #define LSA_LOOKUP_SID_FOUND_BY_HISTORY 0x00000001
  206. #define LSA_LOOKUP_SID_XFOREST_REF 0x00000002
  207. typedef struct _LSAPR_TRANSLATED_SID_EX
  208. {
  209. SID_NAME_USE Use;
  210. ULONG RelativeId;
  211. LONG DomainIndex;
  212. ULONG Flags;
  213. } LSAPR_TRANSLATED_SID_EX;
  214. typedef struct _LSAPR_TRANSLATED_SID_EX *PLSAPR_TRANSLATED_SID_EX;
  215. typedef struct _LSAPR_TRANSLATED_SID_EX2
  216. {
  217. SID_NAME_USE Use;
  218. PLSAPR_SID Sid;
  219. LONG DomainIndex;
  220. ULONG Flags;
  221. } LSAPR_TRANSLATED_SID_EX2;
  222. typedef struct _LSAPR_TRANSLATED_SID_EX2 *PLSAPR_TRANSLATED_SID_EX2;
  223. typedef struct _LSAPR_TRANSLATED_SIDS
  224. {
  225. ULONG Entries;
  226. /* [size_is] */ PLSA_TRANSLATED_SID Sids;
  227. } LSAPR_TRANSLATED_SIDS;
  228. typedef struct _LSAPR_TRANSLATED_SIDS *PLSAPR_TRANSLATED_SIDS;
  229. typedef struct _LSAPR_TRANSLATED_SIDS_EX
  230. {
  231. ULONG Entries;
  232. /* [size_is] */ PLSAPR_TRANSLATED_SID_EX Sids;
  233. } LSAPR_TRANSLATED_SIDS_EX;
  234. typedef struct _LSAPR_TRANSLATED_SIDS_EX *PLSAPR_TRANSLATED_SIDS_EX;
  235. typedef struct _LSAPR_TRANSLATED_SIDS_EX2
  236. {
  237. ULONG Entries;
  238. /* [size_is] */ PLSAPR_TRANSLATED_SID_EX2 Sids;
  239. } LSAPR_TRANSLATED_SIDS_EX2;
  240. typedef struct _LSAPR_TRANSLATED_SIDS_EX2 *PLSAPR_TRANSLATED_SIDS_EX2;
  241. typedef struct _LSAPR_TRANSLATED_NAME
  242. {
  243. SID_NAME_USE Use;
  244. LSAPR_UNICODE_STRING Name;
  245. LONG DomainIndex;
  246. } LSAPR_TRANSLATED_NAME;
  247. typedef struct _LSAPR_TRANSLATED_NAME *PLSAPR_TRANSLATED_NAME;
  248. #define LSA_LOOKUP_NAME_NOT_SAM_ACCOUNT_NAME 0x00000001
  249. #define LSA_LOOKUP_NAME_XFOREST_REF 0x00000002
  250. typedef struct _LSAPR_TRANSLATED_NAME_EX
  251. {
  252. SID_NAME_USE Use;
  253. LSAPR_UNICODE_STRING Name;
  254. LONG DomainIndex;
  255. ULONG Flags;
  256. } LSAPR_TRANSLATED_NAME_EX;
  257. typedef struct _LSAPR_TRANSLATED_NAME_EX *PLSAPR_TRANSLATED_NAME_EX;
  258. typedef struct _LSAPR_TRANSLATED_NAMES
  259. {
  260. ULONG Entries;
  261. /* [size_is] */ PLSAPR_TRANSLATED_NAME Names;
  262. } LSAPR_TRANSLATED_NAMES;
  263. typedef struct _LSAPR_TRANSLATED_NAMES *PLSAPR_TRANSLATED_NAMES;
  264. typedef struct _LSAPR_TRANSLATED_NAMES_EX
  265. {
  266. ULONG Entries;
  267. /* [size_is] */ PLSAPR_TRANSLATED_NAME_EX Names;
  268. } LSAPR_TRANSLATED_NAMES_EX;
  269. typedef struct _LSAPR_TRANSLATED_NAMES_EX *PLSAPR_TRANSLATED_NAMES_EX;
  270. typedef struct _LSAPR_POLICY_ACCOUNT_DOM_INFO
  271. {
  272. LSAPR_UNICODE_STRING DomainName;
  273. PLSAPR_SID DomainSid;
  274. } LSAPR_POLICY_ACCOUNT_DOM_INFO;
  275. typedef struct _LSAPR_POLICY_ACCOUNT_DOM_INFO *PLSAPR_POLICY_ACCOUNT_DOM_INFO;
  276. typedef struct _LSAPR_POLICY_PRIMARY_DOM_INFO
  277. {
  278. LSAPR_UNICODE_STRING Name;
  279. PLSAPR_SID Sid;
  280. } LSAPR_POLICY_PRIMARY_DOM_INFO;
  281. typedef struct _LSAPR_POLICY_PRIMARY_DOM_INFO *PLSAPR_POLICY_PRIMARY_DOM_INFO;
  282. typedef struct _LSAPR_POLICY_DNS_DOMAIN_INFO
  283. {
  284. LSAPR_UNICODE_STRING Name;
  285. LSAPR_UNICODE_STRING DnsDomainName;
  286. LSAPR_UNICODE_STRING DnsForestName;
  287. GUID DomainGuid;
  288. PLSAPR_SID Sid;
  289. } LSAPR_POLICY_DNS_DOMAIN_INFO;
  290. typedef struct _LSAPR_POLICY_DNS_DOMAIN_INFO *PLSAPR_POLICY_DNS_DOMAIN_INFO;
  291. typedef struct _LSAPR_POLICY_PD_ACCOUNT_INFO
  292. {
  293. LSAPR_UNICODE_STRING Name;
  294. } LSAPR_POLICY_PD_ACCOUNT_INFO;
  295. typedef struct _LSAPR_POLICY_PD_ACCOUNT_INFO *PLSAPR_POLICY_PD_ACCOUNT_INFO;
  296. typedef struct _LSAPR_POLICY_REPLICA_SRCE_INFO
  297. {
  298. LSAPR_UNICODE_STRING ReplicaSource;
  299. LSAPR_UNICODE_STRING ReplicaAccountName;
  300. } LSAPR_POLICY_REPLICA_SRCE_INFO;
  301. typedef struct _LSAPR_POLICY_REPLICA_SRCE_INFO *PLSAPR_POLICY_REPLICA_SRCE_INFO;
  302. typedef struct _LSAPR_POLICY_AUDIT_EVENTS_INFO
  303. {
  304. BOOLEAN AuditingMode;
  305. /* [size_is] */ PPOLICY_AUDIT_EVENT_OPTIONS EventAuditingOptions;
  306. ULONG MaximumAuditEventCount;
  307. } LSAPR_POLICY_AUDIT_EVENTS_INFO;
  308. typedef struct _LSAPR_POLICY_AUDIT_EVENTS_INFO *PLSAPR_POLICY_AUDIT_EVENTS_INFO;
  309. typedef /* [switch_type] */ union _LSAPR_POLICY_INFORMATION
  310. {
  311. /* [case()] */ POLICY_AUDIT_LOG_INFO PolicyAuditLogInfo;
  312. /* [case()] */ LSAPR_POLICY_AUDIT_EVENTS_INFO PolicyAuditEventsInfo;
  313. /* [case()] */ LSAPR_POLICY_PRIMARY_DOM_INFO PolicyPrimaryDomainInfo;
  314. /* [case()] */ LSAPR_POLICY_ACCOUNT_DOM_INFO PolicyAccountDomainInfo;
  315. /* [case()] */ LSAPR_POLICY_PD_ACCOUNT_INFO PolicyPdAccountInfo;
  316. /* [case()] */ POLICY_LSA_SERVER_ROLE_INFO PolicyServerRoleInfo;
  317. /* [case()] */ LSAPR_POLICY_REPLICA_SRCE_INFO PolicyReplicaSourceInfo;
  318. /* [case()] */ POLICY_DEFAULT_QUOTA_INFO PolicyDefaultQuotaInfo;
  319. /* [case()] */ POLICY_MODIFICATION_INFO PolicyModificationInfo;
  320. /* [case()] */ POLICY_AUDIT_FULL_SET_INFO PolicyAuditFullSetInfo;
  321. /* [case()] */ POLICY_AUDIT_FULL_QUERY_INFO PolicyAuditFullQueryInfo;
  322. /* [case()] */ LSAPR_POLICY_DNS_DOMAIN_INFO PolicyDnsDomainInfo;
  323. /* [case()] */ LSAPR_POLICY_DNS_DOMAIN_INFO PolicyDnsDomainInfoInt;
  324. } LSAPR_POLICY_INFORMATION;
  325. typedef LSAPR_POLICY_INFORMATION *PLSAPR_POLICY_INFORMATION;
  326. typedef struct _LSAPR_POLICY_DOMAIN_EFS_INFO
  327. {
  328. ULONG InfoLength;
  329. /* [size_is] */ PUCHAR EfsBlob;
  330. } LSAPR_POLICY_DOMAIN_EFS_INFO;
  331. typedef struct _LSAPR_POLICY_DOMAIN_EFS_INFO *PLSAPR_POLICY_DOMAIN_EFS_INFO;
  332. typedef /* [switch_type] */ union _LSAPR_POLICY_DOMAIN_INFORMATION
  333. {
  334. /* [case()] */ LSAPR_POLICY_DOMAIN_EFS_INFO PolicyDomainEfsInfo;
  335. /* [case()] */ POLICY_DOMAIN_KERBEROS_TICKET_INFO PolicyDomainKerbTicketInfo;
  336. } LSAPR_POLICY_DOMAIN_INFORMATION;
  337. typedef LSAPR_POLICY_DOMAIN_INFORMATION *PLSAPR_POLICY_DOMAIN_INFORMATION;
  338. typedef struct _LSAPR_TRUSTED_DOMAIN_NAME_INFO
  339. {
  340. LSAPR_UNICODE_STRING Name;
  341. } LSAPR_TRUSTED_DOMAIN_NAME_INFO;
  342. typedef struct _LSAPR_TRUSTED_DOMAIN_NAME_INFO *PLSAPR_TRUSTED_DOMAIN_NAME_INFO;
  343. typedef struct _LSAPR_TRUSTED_CONTROLLERS_INFO
  344. {
  345. ULONG Entries;
  346. /* [size_is] */ PLSAPR_UNICODE_STRING Names;
  347. } LSAPR_TRUSTED_CONTROLLERS_INFO;
  348. typedef struct _LSAPR_TRUSTED_CONTROLLERS_INFO *PLSAPR_TRUSTED_CONTROLLERS_INFO;
  349. typedef struct _LSAPR_TRUSTED_PASSWORD_INFO
  350. {
  351. PLSAPR_CR_CIPHER_VALUE Password;
  352. PLSAPR_CR_CIPHER_VALUE OldPassword;
  353. } LSAPR_TRUSTED_PASSWORD_INFO;
  354. typedef struct _LSAPR_TRUSTED_PASSWORD_INFO *PLSAPR_TRUSTED_PASSWORD_INFO;
  355. typedef struct _LSAPR_TRUSTED_DOMAIN_INFORMATION_EX
  356. {
  357. LSAPR_UNICODE_STRING Name;
  358. LSAPR_UNICODE_STRING FlatName;
  359. PLSAPR_SID Sid;
  360. ULONG TrustDirection;
  361. ULONG TrustType;
  362. ULONG TrustAttributes;
  363. } LSAPR_TRUSTED_DOMAIN_INFORMATION_EX;
  364. typedef struct _LSAPR_TRUSTED_DOMAIN_INFORMATION_EX *PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX;
  365. typedef struct _LSAPR_AUTH_INFORMATION
  366. {
  367. LARGE_INTEGER LastUpdateTime;
  368. ULONG AuthType;
  369. ULONG AuthInfoLength;
  370. /* [size_is] */ PUCHAR AuthInfo;
  371. } LSAPR_AUTH_INFORMATION;
  372. typedef struct _LSAPR_AUTH_INFORMATION *PLSAPR_AUTH_INFORMATION;
  373. typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION
  374. {
  375. ULONG IncomingAuthInfos;
  376. PLSAPR_AUTH_INFORMATION IncomingAuthenticationInformation;
  377. PLSAPR_AUTH_INFORMATION IncomingPreviousAuthenticationInformation;
  378. ULONG OutgoingAuthInfos;
  379. PLSAPR_AUTH_INFORMATION OutgoingAuthenticationInformation;
  380. PLSAPR_AUTH_INFORMATION OutgoingPreviousAuthenticationInformation;
  381. } LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION;
  382. typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION *PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION;
  383. typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION
  384. {
  385. LSAPR_TRUSTED_DOMAIN_INFORMATION_EX Information;
  386. TRUSTED_POSIX_OFFSET_INFO PosixOffset;
  387. LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation;
  388. } LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION;
  389. typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION *PLSAPR_TRUSTED_DOMAIN_FULL_INFORMATION;
  390. typedef LSAPR_TRUST_INFORMATION LSAPR_TRUSTED_DOMAIN_INFORMATION_BASIC;
  391. typedef PLSAPR_TRUST_INFORMATION PLSAPR_TRUSTED_DOMAIN_INFORMATION_BASIC;
  392. typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_BLOB
  393. {
  394. ULONG AuthSize;
  395. /* [size_is] */ PUCHAR AuthBlob;
  396. } LSAPR_TRUSTED_DOMAIN_AUTH_BLOB;
  397. typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_BLOB *PLSAPR_TRUSTED_DOMAIN_AUTH_BLOB;
  398. typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL
  399. {
  400. LSAPR_TRUSTED_DOMAIN_AUTH_BLOB AuthBlob;
  401. } LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL;
  402. typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL *PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL;
  403. typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL
  404. {
  405. LSAPR_TRUSTED_DOMAIN_INFORMATION_EX Information;
  406. TRUSTED_POSIX_OFFSET_INFO PosixOffset;
  407. LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL AuthInformation;
  408. } LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL;
  409. typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL *PLSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL;
  410. typedef struct _LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2
  411. {
  412. LSAPR_UNICODE_STRING Name;
  413. LSAPR_UNICODE_STRING FlatName;
  414. PLSAPR_SID Sid;
  415. ULONG TrustDirection;
  416. ULONG TrustType;
  417. ULONG TrustAttributes;
  418. ULONG ForestTrustLength;
  419. /* [size_is] */ PUCHAR ForestTrustInfo;
  420. } LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2;
  421. typedef struct _LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2 *PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX2;
  422. typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2
  423. {
  424. LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2 Information;
  425. TRUSTED_POSIX_OFFSET_INFO PosixOffset;
  426. LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation;
  427. } LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2;
  428. typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2 *PLSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2;
  429. typedef /* [switch_type] */ union _LSAPR_TRUSTED_DOMAIN_INFO
  430. {
  431. /* [case()] */ LSAPR_TRUSTED_DOMAIN_NAME_INFO TrustedDomainNameInfo;
  432. /* [case()] */ LSAPR_TRUSTED_CONTROLLERS_INFO TrustedControllersInfo;
  433. /* [case()] */ TRUSTED_POSIX_OFFSET_INFO TrustedPosixOffsetInfo;
  434. /* [case()] */ LSAPR_TRUSTED_PASSWORD_INFO TrustedPasswordInfo;
  435. /* [case()] */ LSAPR_TRUSTED_DOMAIN_INFORMATION_BASIC TrustedDomainInfoBasic;
  436. /* [case()] */ LSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInfoEx;
  437. /* [case()] */ LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION TrustedAuthInfo;
  438. /* [case()] */ LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION TrustedFullInfo;
  439. /* [case()] */ LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL TrustedAuthInfoInternal;
  440. /* [case()] */ LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL TrustedFullInfoInternal;
  441. /* [case()] */ LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2 TrustedDomainInfoEx2;
  442. /* [case()] */ LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2 TrustedFullInfo2;
  443. } LSAPR_TRUSTED_DOMAIN_INFO;
  444. typedef LSAPR_TRUSTED_DOMAIN_INFO *PLSAPR_TRUSTED_DOMAIN_INFO;
  445. typedef PLSAPR_UNICODE_STRING PLSAPR_UNICODE_STRING_ARRAY;
  446. typedef struct _LSAPR_USER_RIGHT_SET
  447. {
  448. ULONG Entries;
  449. /* [size_is] */ PLSAPR_UNICODE_STRING_ARRAY UserRights;
  450. } LSAPR_USER_RIGHT_SET;
  451. typedef struct _LSAPR_USER_RIGHT_SET *PLSAPR_USER_RIGHT_SET;
  452. typedef struct _LSAPR_TRUSTED_ENUM_BUFFER_EX
  453. {
  454. ULONG EntriesRead;
  455. /* [size_is] */ PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX EnumerationBuffer;
  456. } LSAPR_TRUSTED_ENUM_BUFFER_EX;
  457. typedef struct _LSAPR_TRUSTED_ENUM_BUFFER_EX *PLSAPR_TRUSTED_ENUM_BUFFER_EX;
  458. typedef struct _LSAPR_TEST_INTERNAL_PARAMETER_BLOB
  459. {
  460. ULONG Size;
  461. /* [size_is] */ PUCHAR Argument;
  462. } LSAPR_TEST_INTERNAL_PARAMETER_BLOB;
  463. typedef struct _LSAPR_TEST_INTERNAL_PARAMETER_BLOB *PLSAPR_TEST_INTERNAL_PARAMETER_BLOB;
  464. typedef struct _LSAPR_TEST_INTERNAL_ARG_LIST
  465. {
  466. ULONG Items;
  467. /* [size_is] */ PLSAPR_TEST_INTERNAL_PARAMETER_BLOB Arg;
  468. } LSAPR_TEST_INTERNAL_ARG_LIST;
  469. typedef struct _LSAPR_TEST_INTERNAL_ARG_LIST *PLSAPR_TEST_INTERNAL_ARG_LIST;
  470. typedef
  471. enum _LSAPR_TEST_INTERNAL_ROUTINES
  472. { LsaTest_IEnumerateSecrets = 0,
  473. LsaTest_IQueryDomainOrgInfo = LsaTest_IEnumerateSecrets + 1,
  474. LsaTest_ISetTrustedDomainAuthBlobs = LsaTest_IQueryDomainOrgInfo + 1,
  475. LsaTest_IUpgradeRegistryToDs = LsaTest_ISetTrustedDomainAuthBlobs + 1,
  476. LsaTest_ISamSetDomainObjectProperties = LsaTest_IUpgradeRegistryToDs + 1,
  477. LsaTest_ISamSetDomainBuiltinGroupMembership = LsaTest_ISamSetDomainObjectProperties + 1,
  478. LsaTest_ISamSetInterdomainTrustPassword = LsaTest_ISamSetDomainBuiltinGroupMembership + 1,
  479. LsaTest_IRegisterPolicyChangeNotificationCallback = LsaTest_ISamSetInterdomainTrustPassword + 1,
  480. LsaTest_IUnregisterPolicyChangeNotificationCallback = LsaTest_IRegisterPolicyChangeNotificationCallback + 1,
  481. LsaTest_IUnregisterAllPolicyChangeNotificationCallback = LsaTest_IUnregisterPolicyChangeNotificationCallback + 1,
  482. LsaTest_IStartTransaction = LsaTest_IUnregisterAllPolicyChangeNotificationCallback + 1,
  483. LsaTest_IApplyTransaction = LsaTest_IStartTransaction + 1,
  484. LsaTest_ITrustDomFixup = LsaTest_IApplyTransaction + 1,
  485. LsaTest_ISetServerRoleForBoot = LsaTest_ITrustDomFixup + 1,
  486. LsaTest_IQueryForestTrustInfo = LsaTest_ISetServerRoleForBoot + 1,
  487. LsaTest_IBreak = LsaTest_IQueryForestTrustInfo + 1,
  488. LsaTest_IQueryTrustedDomainAuthBlobs = LsaTest_IBreak + 1,
  489. LsaTest_IQueryNt4Owf = LsaTest_IQueryTrustedDomainAuthBlobs + 1
  490. } LSAPR_TEST_INTERNAL_ROUTINES;
  491. /* [notify] */ NTSTATUS LsarClose(
  492. /* [out][in] */ LSAPR_HANDLE *ObjectHandle);
  493. /* [notify] */ NTSTATUS LsarDelete(
  494. /* [in] */ LSAPR_HANDLE ObjectHandle);
  495. /* [notify] */ NTSTATUS LsarEnumeratePrivileges(
  496. /* [in] */ LSAPR_HANDLE PolicyHandle,
  497. /* [out][in] */ PLSA_ENUMERATION_HANDLE EnumerationContext,
  498. /* [out] */ PLSAPR_PRIVILEGE_ENUM_BUFFER EnumerationBuffer,
  499. /* [in] */ ULONG PreferedMaximumLength);
  500. /* [notify] */ NTSTATUS LsarQuerySecurityObject(
  501. /* [in] */ LSAPR_HANDLE ObjectHandle,
  502. /* [in] */ SECURITY_INFORMATION SecurityInformation,
  503. /* [out] */ PLSAPR_SR_SECURITY_DESCRIPTOR *SecurityDescriptor);
  504. /* [notify] */ NTSTATUS LsarSetSecurityObject(
  505. /* [in] */ LSAPR_HANDLE ObjectHandle,
  506. /* [in] */ SECURITY_INFORMATION SecurityInformation,
  507. /* [in] */ PLSAPR_SR_SECURITY_DESCRIPTOR SecurityDescriptor);
  508. /* [notify] */ NTSTATUS LsarChangePassword(
  509. /* [in] */ PLSAPR_UNICODE_STRING ServerName,
  510. /* [in] */ PLSAPR_UNICODE_STRING DomainName,
  511. /* [in] */ PLSAPR_UNICODE_STRING AccountName,
  512. /* [in] */ PLSAPR_UNICODE_STRING OldPassword,
  513. /* [in] */ PLSAPR_UNICODE_STRING NewPassword);
  514. /* [notify] */ NTSTATUS LsarOpenPolicy(
  515. /* [unique][in] */ PLSAPR_SERVER_NAME SystemName,
  516. /* [in] */ PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes,
  517. /* [in] */ ACCESS_MASK DesiredAccess,
  518. /* [out] */ LSAPR_HANDLE *PolicyHandle);
  519. /* [notify] */ NTSTATUS LsarQueryInformationPolicy(
  520. /* [in] */ LSAPR_HANDLE PolicyHandle,
  521. /* [in] */ POLICY_INFORMATION_CLASS InformationClass,
  522. /* [switch_is][out] */ PLSAPR_POLICY_INFORMATION *PolicyInformation);
  523. /* [notify] */ NTSTATUS LsarSetInformationPolicy(
  524. /* [in] */ LSAPR_HANDLE PolicyHandle,
  525. /* [in] */ POLICY_INFORMATION_CLASS InformationClass,
  526. /* [switch_is][in] */ PLSAPR_POLICY_INFORMATION PolicyInformation);
  527. /* [notify] */ NTSTATUS LsarClearAuditLog(
  528. /* [in] */ LSAPR_HANDLE PolicyHandle);
  529. /* [notify] */ NTSTATUS LsarCreateAccount(
  530. /* [in] */ LSAPR_HANDLE PolicyHandle,
  531. /* [in] */ PLSAPR_SID AccountSid,
  532. /* [in] */ ACCESS_MASK DesiredAccess,
  533. /* [out] */ LSAPR_HANDLE *AccountHandle);
  534. /* [notify] */ NTSTATUS LsarEnumerateAccounts(
  535. /* [in] */ LSAPR_HANDLE PolicyHandle,
  536. /* [out][in] */ PLSA_ENUMERATION_HANDLE EnumerationContext,
  537. /* [out] */ PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer,
  538. /* [in] */ ULONG PreferedMaximumLength);
  539. /* [notify] */ NTSTATUS LsarCreateTrustedDomain(
  540. /* [in] */ LSAPR_HANDLE PolicyHandle,
  541. /* [in] */ PLSAPR_TRUST_INFORMATION TrustedDomainInformation,
  542. /* [in] */ ACCESS_MASK DesiredAccess,
  543. /* [out] */ LSAPR_HANDLE *TrustedDomainHandle);
  544. /* [notify] */ NTSTATUS LsarEnumerateTrustedDomains(
  545. /* [in] */ LSAPR_HANDLE PolicyHandle,
  546. /* [out][in] */ PLSA_ENUMERATION_HANDLE EnumerationContext,
  547. /* [out] */ PLSAPR_TRUSTED_ENUM_BUFFER EnumerationBuffer,
  548. /* [in] */ ULONG PreferedMaximumLength);
  549. /* [notify] */ NTSTATUS LsarLookupNames(
  550. /* [in] */ LSAPR_HANDLE PolicyHandle,
  551. /* [in] */ ULONG Count,
  552. /* [size_is][in] */ PLSAPR_UNICODE_STRING Names,
  553. /* [out] */ PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
  554. /* [out][in] */ PLSAPR_TRANSLATED_SIDS TranslatedSids,
  555. /* [in] */ LSAP_LOOKUP_LEVEL LookupLevel,
  556. /* [out][in] */ PULONG MappedCount);
  557. /* [notify] */ NTSTATUS LsarLookupSids(
  558. /* [in] */ LSAPR_HANDLE PolicyHandle,
  559. /* [in] */ PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
  560. /* [out] */ PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
  561. /* [out][in] */ PLSAPR_TRANSLATED_NAMES TranslatedNames,
  562. /* [in] */ LSAP_LOOKUP_LEVEL LookupLevel,
  563. /* [out][in] */ PULONG MappedCount);
  564. /* [notify] */ NTSTATUS LsarCreateSecret(
  565. /* [in] */ LSAPR_HANDLE PolicyHandle,
  566. /* [in] */ PLSAPR_UNICODE_STRING SecretName,
  567. /* [in] */ ACCESS_MASK DesiredAccess,
  568. /* [out] */ LSAPR_HANDLE *SecretHandle);
  569. /* [notify] */ NTSTATUS LsarOpenAccount(
  570. /* [in] */ LSAPR_HANDLE PolicyHandle,
  571. /* [in] */ PLSAPR_SID AccountSid,
  572. /* [in] */ ACCESS_MASK DesiredAccess,
  573. /* [out] */ LSAPR_HANDLE *AccountHandle);
  574. /* [notify] */ NTSTATUS LsarEnumeratePrivilegesAccount(
  575. /* [in] */ LSAPR_HANDLE AccountHandle,
  576. /* [out] */ PLSAPR_PRIVILEGE_SET *Privileges);
  577. /* [notify] */ NTSTATUS LsarAddPrivilegesToAccount(
  578. /* [in] */ LSAPR_HANDLE AccountHandle,
  579. /* [in] */ PLSAPR_PRIVILEGE_SET Privileges);
  580. /* [notify] */ NTSTATUS LsarRemovePrivilegesFromAccount(
  581. /* [in] */ LSAPR_HANDLE AccountHandle,
  582. /* [in] */ BOOLEAN AllPrivileges,
  583. /* [unique][in] */ PLSAPR_PRIVILEGE_SET Privileges);
  584. /* [notify] */ NTSTATUS LsarGetQuotasForAccount(
  585. /* [in] */ LSAPR_HANDLE AccountHandle,
  586. /* [out] */ PQUOTA_LIMITS QuotaLimits);
  587. /* [notify] */ NTSTATUS LsarSetQuotasForAccount(
  588. /* [in] */ LSAPR_HANDLE AccountHandle,
  589. /* [in] */ PQUOTA_LIMITS QuotaLimits);
  590. /* [notify] */ NTSTATUS LsarGetSystemAccessAccount(
  591. /* [in] */ LSAPR_HANDLE AccountHandle,
  592. /* [out] */ PULONG SystemAccess);
  593. /* [notify] */ NTSTATUS LsarSetSystemAccessAccount(
  594. /* [in] */ LSAPR_HANDLE AccountHandle,
  595. /* [in] */ ULONG SystemAccess);
  596. /* [notify] */ NTSTATUS LsarOpenTrustedDomain(
  597. /* [in] */ LSAPR_HANDLE PolicyHandle,
  598. /* [in] */ PLSAPR_SID TrustedDomainSid,
  599. /* [in] */ ACCESS_MASK DesiredAccess,
  600. /* [out] */ LSAPR_HANDLE *TrustedDomainHandle);
  601. /* [notify] */ NTSTATUS LsarQueryInfoTrustedDomain(
  602. /* [in] */ LSAPR_HANDLE TrustedDomainHandle,
  603. /* [in] */ TRUSTED_INFORMATION_CLASS InformationClass,
  604. /* [switch_is][out] */ PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation);
  605. /* [notify] */ NTSTATUS LsarSetInformationTrustedDomain(
  606. /* [in] */ LSAPR_HANDLE TrustedDomainHandle,
  607. /* [in] */ TRUSTED_INFORMATION_CLASS InformationClass,
  608. /* [switch_is][in] */ PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation);
  609. /* [notify] */ NTSTATUS LsarOpenSecret(
  610. /* [in] */ LSAPR_HANDLE PolicyHandle,
  611. /* [in] */ PLSAPR_UNICODE_STRING SecretName,
  612. /* [in] */ ACCESS_MASK DesiredAccess,
  613. /* [out] */ LSAPR_HANDLE *SecretHandle);
  614. /* [notify] */ NTSTATUS LsarSetSecret(
  615. /* [in] */ LSAPR_HANDLE SecretHandle,
  616. /* [unique][in] */ PLSAPR_CR_CIPHER_VALUE EncryptedCurrentValue,
  617. /* [unique][in] */ PLSAPR_CR_CIPHER_VALUE EncryptedOldValue);
  618. /* [notify] */ NTSTATUS LsarQuerySecret(
  619. /* [in] */ LSAPR_HANDLE SecretHandle,
  620. /* [unique][out][in] */ PLSAPR_CR_CIPHER_VALUE *EncryptedCurrentValue,
  621. /* [unique][out][in] */ PLARGE_INTEGER CurrentValueSetTime,
  622. /* [unique][out][in] */ PLSAPR_CR_CIPHER_VALUE *EncryptedOldValue,
  623. /* [unique][out][in] */ PLARGE_INTEGER OldValueSetTime);
  624. /* [notify] */ NTSTATUS LsarLookupPrivilegeValue(
  625. /* [in] */ LSAPR_HANDLE PolicyHandle,
  626. /* [in] */ PLSAPR_UNICODE_STRING Name,
  627. /* [out] */ PLUID Value);
  628. /* [notify] */ NTSTATUS LsarLookupPrivilegeName(
  629. /* [in] */ LSAPR_HANDLE PolicyHandle,
  630. /* [in] */ PLUID Value,
  631. /* [out] */ PLSAPR_UNICODE_STRING *Name);
  632. /* [notify] */ NTSTATUS LsarLookupPrivilegeDisplayName(
  633. /* [in] */ LSAPR_HANDLE PolicyHandle,
  634. /* [in] */ PLSAPR_UNICODE_STRING Name,
  635. /* [in] */ SHORT ClientLanguage,
  636. /* [in] */ SHORT ClientSystemDefaultLanguage,
  637. /* [out] */ PLSAPR_UNICODE_STRING *DisplayName,
  638. /* [out] */ PWORD LanguageReturned);
  639. /* [notify] */ NTSTATUS LsarDeleteObject(
  640. /* [out][in] */ LSAPR_HANDLE *ObjectHandle);
  641. /* [notify] */ NTSTATUS LsarEnumerateAccountsWithUserRight(
  642. /* [in] */ LSAPR_HANDLE PolicyHandle,
  643. /* [unique][in] */ PLSAPR_UNICODE_STRING UserRight,
  644. /* [out] */ PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer);
  645. /* [notify] */ NTSTATUS LsarEnumerateAccountRights(
  646. /* [in] */ LSAPR_HANDLE PolicyHandle,
  647. /* [in] */ PLSAPR_SID AccountSid,
  648. /* [out] */ PLSAPR_USER_RIGHT_SET UserRights);
  649. /* [notify] */ NTSTATUS LsarAddAccountRights(
  650. /* [in] */ LSAPR_HANDLE PolicyHandle,
  651. /* [in] */ PLSAPR_SID AccountSid,
  652. /* [in] */ PLSAPR_USER_RIGHT_SET UserRights);
  653. /* [notify] */ NTSTATUS LsarRemoveAccountRights(
  654. /* [in] */ LSAPR_HANDLE PolicyHandle,
  655. /* [in] */ PLSAPR_SID AccountSid,
  656. /* [in] */ BOOLEAN AllRights,
  657. /* [in] */ PLSAPR_USER_RIGHT_SET UserRights);
  658. /* [notify] */ NTSTATUS LsarQueryTrustedDomainInfo(
  659. /* [in] */ LSAPR_HANDLE PolicyHandle,
  660. /* [in] */ PLSAPR_SID TrustedDomainSid,
  661. /* [in] */ TRUSTED_INFORMATION_CLASS InformationClass,
  662. /* [switch_is][out] */ PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation);
  663. /* [notify] */ NTSTATUS LsarSetTrustedDomainInfo(
  664. /* [in] */ LSAPR_HANDLE PolicyHandle,
  665. /* [in] */ PLSAPR_SID TrustedDomainSid,
  666. /* [in] */ TRUSTED_INFORMATION_CLASS InformationClass,
  667. /* [switch_is][in] */ PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation);
  668. /* [notify] */ NTSTATUS LsarDeleteTrustedDomain(
  669. /* [in] */ LSAPR_HANDLE PolicyHandle,
  670. /* [in] */ PLSAPR_SID TrustedDomainSid);
  671. /* [notify] */ NTSTATUS LsarStorePrivateData(
  672. /* [in] */ LSAPR_HANDLE PolicyHandle,
  673. /* [in] */ PLSAPR_UNICODE_STRING KeyName,
  674. /* [unique][in] */ PLSAPR_CR_CIPHER_VALUE EncryptedData);
  675. /* [notify] */ NTSTATUS LsarRetrievePrivateData(
  676. /* [in] */ LSAPR_HANDLE PolicyHandle,
  677. /* [in] */ PLSAPR_UNICODE_STRING KeyName,
  678. /* [out][in] */ PLSAPR_CR_CIPHER_VALUE *EncryptedData);
  679. /* [notify] */ NTSTATUS LsarOpenPolicy2(
  680. /* [string][unique][in] */ PLSAPR_SERVER_NAME SystemName,
  681. /* [in] */ PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes,
  682. /* [in] */ ACCESS_MASK DesiredAccess,
  683. /* [out] */ LSAPR_HANDLE *PolicyHandle);
  684. /* [notify] */ NTSTATUS LsarGetUserName(
  685. /* [string][unique][in] */ PLSAPR_SERVER_NAME SystemName,
  686. /* [out][in] */ PLSAPR_UNICODE_STRING *UserName,
  687. /* [unique][out][in] */ PLSAPR_UNICODE_STRING *DomainName);
  688. /* [notify] */ NTSTATUS LsarQueryInformationPolicy2(
  689. /* [in] */ LSAPR_HANDLE PolicyHandle,
  690. /* [in] */ POLICY_INFORMATION_CLASS InformationClass,
  691. /* [switch_is][out] */ PLSAPR_POLICY_INFORMATION *PolicyInformation);
  692. /* [notify] */ NTSTATUS LsarSetInformationPolicy2(
  693. /* [in] */ LSAPR_HANDLE PolicyHandle,
  694. /* [in] */ POLICY_INFORMATION_CLASS InformationClass,
  695. /* [switch_is][in] */ PLSAPR_POLICY_INFORMATION PolicyInformation);
  696. /* [notify] */ NTSTATUS LsarQueryTrustedDomainInfoByName(
  697. /* [in] */ LSAPR_HANDLE PolicyHandle,
  698. /* [in] */ PLSAPR_UNICODE_STRING TrustedDomainName,
  699. /* [in] */ TRUSTED_INFORMATION_CLASS InformationClass,
  700. /* [switch_is][out] */ PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation);
  701. /* [notify] */ NTSTATUS LsarSetTrustedDomainInfoByName(
  702. /* [in] */ LSAPR_HANDLE PolicyHandle,
  703. /* [in] */ PLSAPR_UNICODE_STRING TrustedDomainName,
  704. /* [in] */ TRUSTED_INFORMATION_CLASS InformationClass,
  705. /* [switch_is][in] */ PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation);
  706. /* [notify] */ NTSTATUS LsarEnumerateTrustedDomainsEx(
  707. /* [in] */ LSAPR_HANDLE PolicyHandle,
  708. /* [out][in] */ PLSA_ENUMERATION_HANDLE EnumerationContext,
  709. /* [out] */ PLSAPR_TRUSTED_ENUM_BUFFER_EX EnumerationBuffer,
  710. /* [in] */ ULONG PreferedMaximumLength);
  711. /* [notify] */ NTSTATUS LsarCreateTrustedDomainEx(
  712. /* [in] */ LSAPR_HANDLE PolicyHandle,
  713. /* [in] */ PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation,
  714. /* [in] */ PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthenticationInformation,
  715. /* [in] */ ACCESS_MASK DesiredAccess,
  716. /* [out] */ LSAPR_HANDLE *TrustedDomainHandle);
  717. /* [notify] */ NTSTATUS LsarSetPolicyReplicationHandle(
  718. /* [out][in] */ PLSAPR_HANDLE PolicyHandle);
  719. /* [notify] */ NTSTATUS LsarQueryDomainInformationPolicy(
  720. /* [in] */ LSAPR_HANDLE PolicyHandle,
  721. /* [in] */ POLICY_DOMAIN_INFORMATION_CLASS InformationClass,
  722. /* [switch_is][out] */ PLSAPR_POLICY_DOMAIN_INFORMATION *PolicyDomainInformation);
  723. /* [notify] */ NTSTATUS LsarSetDomainInformationPolicy(
  724. /* [in] */ LSAPR_HANDLE PolicyHandle,
  725. /* [in] */ POLICY_DOMAIN_INFORMATION_CLASS InformationClass,
  726. /* [switch_is][unique][in] */ PLSAPR_POLICY_DOMAIN_INFORMATION PolicyDomainInformation);
  727. /* [notify] */ NTSTATUS LsarOpenTrustedDomainByName(
  728. /* [in] */ LSAPR_HANDLE PolicyHandle,
  729. /* [in] */ PLSAPR_UNICODE_STRING TrustedDomainName,
  730. /* [in] */ ACCESS_MASK DesiredAccess,
  731. /* [out] */ LSAPR_HANDLE *TrustedDomainHandle);
  732. NTSTATUS LsaITestCall(
  733. /* [in] */ LSAPR_HANDLE PolicyHandle,
  734. /* [in] */ LSAPR_TEST_INTERNAL_ROUTINES Call,
  735. /* [in] */ PLSAPR_TEST_INTERNAL_ARG_LIST InputArgs,
  736. /* [out] */ PLSAPR_TEST_INTERNAL_ARG_LIST *OuputArgs);
  737. NTSTATUS LsarLookupSids2(
  738. /* [in] */ LSAPR_HANDLE PolicyHandle,
  739. /* [in] */ PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
  740. /* [out] */ PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
  741. /* [out][in] */ PLSAPR_TRANSLATED_NAMES_EX TranslatedNames,
  742. /* [in] */ LSAP_LOOKUP_LEVEL LookupLevel,
  743. /* [out][in] */ PULONG MappedCount,
  744. /* [in] */ ULONG LookupOptions,
  745. /* [in] */ ULONG ClientRevision);
  746. NTSTATUS LsarLookupNames2(
  747. /* [in] */ LSAPR_HANDLE PolicyHandle,
  748. /* [in] */ ULONG Count,
  749. /* [size_is][in] */ PLSAPR_UNICODE_STRING Names,
  750. /* [out] */ PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
  751. /* [out][in] */ PLSAPR_TRANSLATED_SIDS_EX TranslatedSids,
  752. /* [in] */ LSAP_LOOKUP_LEVEL LookupLevel,
  753. /* [out][in] */ PULONG MappedCount,
  754. /* [in] */ ULONG LookupOptions,
  755. /* [in] */ ULONG ClientRevision);
  756. NTSTATUS LsarCreateTrustedDomainEx2(
  757. /* [in] */ LSAPR_HANDLE PolicyHandle,
  758. /* [in] */ PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation,
  759. /* [in] */ PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL AuthenticationInformation,
  760. /* [in] */ ACCESS_MASK DesiredAccess,
  761. /* [out] */ LSAPR_HANDLE *TrustedDomainHandle);
  762. NTSTATUS CredrWrite(
  763. /* [string][unique][in] */ PLSAPR_SERVER_NAME ServerName,
  764. /* [in] */ PENCRYPTED_CREDENTIALW Credential,
  765. /* [in] */ ULONG Flags);
  766. NTSTATUS CredrRead(
  767. /* [string][unique][in] */ PLSAPR_SERVER_NAME ServerName,
  768. /* [string][in] */ wchar_t *TargetName,
  769. /* [in] */ ULONG Type,
  770. /* [in] */ ULONG Flags,
  771. /* [out] */ PENCRYPTED_CREDENTIALW *Credential);
  772. typedef PENCRYPTED_CREDENTIALW *PPENCRYPTED_CREDENTIALW;
  773. typedef struct _CREDENTIAL_ARRAY
  774. {
  775. ULONG CredentialCount;
  776. /* [size_is][unique] */ PPENCRYPTED_CREDENTIALW Credentials;
  777. } CREDENTIAL_ARRAY;
  778. typedef struct _CREDENTIAL_ARRAY *PCREDENTIAL_ARRAY;
  779. NTSTATUS CredrEnumerate(
  780. /* [string][unique][in] */ PLSAPR_SERVER_NAME ServerName,
  781. /* [string][unique][in] */ wchar_t *Filter,
  782. /* [in] */ ULONG Flags,
  783. /* [out] */ PCREDENTIAL_ARRAY CredentialArray);
  784. NTSTATUS CredrWriteDomainCredentials(
  785. /* [string][unique][in] */ PLSAPR_SERVER_NAME ServerName,
  786. /* [in] */ PCREDENTIAL_TARGET_INFORMATIONW TargetInfo,
  787. /* [in] */ PENCRYPTED_CREDENTIALW Credential,
  788. /* [in] */ ULONG Flags);
  789. NTSTATUS CredrReadDomainCredentials(
  790. /* [string][unique][in] */ PLSAPR_SERVER_NAME ServerName,
  791. /* [in] */ PCREDENTIAL_TARGET_INFORMATIONW TargetInfo,
  792. /* [in] */ ULONG Flags,
  793. /* [out] */ PCREDENTIAL_ARRAY CredentialArray);
  794. NTSTATUS CredrDelete(
  795. /* [string][unique][in] */ PLSAPR_SERVER_NAME ServerName,
  796. /* [string][in] */ wchar_t *TargetName,
  797. /* [in] */ ULONG Type,
  798. /* [in] */ ULONG Flags);
  799. NTSTATUS CredrGetTargetInfo(
  800. /* [string][unique][in] */ PLSAPR_SERVER_NAME ServerName,
  801. /* [string][in] */ wchar_t *TargetName,
  802. /* [in] */ ULONG Flags,
  803. /* [out] */ PCREDENTIAL_TARGET_INFORMATIONW *TargetInfo);
  804. NTSTATUS CredrProfileLoaded(
  805. /* [string][unique][in] */ PLSAPR_SERVER_NAME ServerName);
  806. NTSTATUS LsarLookupNames3(
  807. /* [in] */ LSAPR_HANDLE PolicyHandle,
  808. /* [in] */ ULONG Count,
  809. /* [size_is][in] */ PLSAPR_UNICODE_STRING Names,
  810. /* [out] */ PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
  811. /* [out][in] */ PLSAPR_TRANSLATED_SIDS_EX2 TranslatedSids,
  812. /* [in] */ LSAP_LOOKUP_LEVEL LookupLevel,
  813. /* [out][in] */ PULONG MappedCount,
  814. /* [in] */ ULONG LookupOptions,
  815. /* [in] */ ULONG ClientRevision);
  816. NTSTATUS CredrGetSessionTypes(
  817. /* [string][unique][in] */ PLSAPR_SERVER_NAME ServerName,
  818. /* [in] */ ULONG MaximumPersistCount,
  819. /* [size_is][out] */ ULONG *MaximumPersist);
  820. NTSTATUS LsarRegisterAuditEvent(
  821. /* [in] */ PAUTHZ_AUDIT_EVENT_TYPE_OLD pAuditEventType,
  822. /* [out] */ AUDIT_HANDLE *phAuditContext);
  823. NTSTATUS LsarGenAuditEvent(
  824. /* [in] */ AUDIT_HANDLE hAuditContext,
  825. /* [in] */ DWORD Flags,
  826. /* [in] */ AUDIT_PARAMS *pAuditParams);
  827. NTSTATUS LsarUnregisterAuditEvent(
  828. /* [out][in] */ AUDIT_HANDLE *phAuditContext);
  829. NTSTATUS LsarQueryForestTrustInformation(
  830. /* [in] */ LSAPR_HANDLE PolicyHandle,
  831. /* [in] */ PLSA_UNICODE_STRING TrustedDomainName,
  832. /* [in] */ LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType,
  833. /* [out] */ PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo);
  834. NTSTATUS LsarSetForestTrustInformation(
  835. /* [in] */ LSAPR_HANDLE PolicyHandle,
  836. /* [in] */ PLSA_UNICODE_STRING TrustedDomainName,
  837. /* [in] */ LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType,
  838. /* [in] */ PLSA_FOREST_TRUST_INFORMATION ForestTrustInfo,
  839. /* [in] */ BOOLEAN CheckOnly,
  840. /* [out] */ PLSA_FOREST_TRUST_COLLISION_INFORMATION *CollisionInfo);
  841. NTSTATUS CredrRename(
  842. /* [string][unique][in] */ PLSAPR_SERVER_NAME ServerName,
  843. /* [string][in] */ wchar_t *OldTargetName,
  844. /* [string][in] */ wchar_t *NewTargetName,
  845. /* [in] */ ULONG Type,
  846. /* [in] */ ULONG Flags);
  847. NTSTATUS LsarLookupSids3(
  848. /* [in] */ handle_t RpcHandle,
  849. /* [in] */ PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
  850. /* [out] */ PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
  851. /* [out][in] */ PLSAPR_TRANSLATED_NAMES_EX TranslatedNames,
  852. /* [in] */ LSAP_LOOKUP_LEVEL LookupLevel,
  853. /* [out][in] */ PULONG MappedCount,
  854. /* [in] */ ULONG LookupOptions,
  855. /* [in] */ ULONG ClientRevision);
  856. NTSTATUS LsarLookupNames4(
  857. /* [in] */ handle_t RpcHandle,
  858. /* [in] */ ULONG Count,
  859. /* [size_is][in] */ PLSAPR_UNICODE_STRING Names,
  860. /* [out] */ PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
  861. /* [out][in] */ PLSAPR_TRANSLATED_SIDS_EX2 TranslatedSids,
  862. /* [in] */ LSAP_LOOKUP_LEVEL LookupLevel,
  863. /* [out][in] */ PULONG MappedCount,
  864. /* [in] */ ULONG LookupOptions,
  865. /* [in] */ ULONG ClientRevision);
  866. NTSTATUS LsarOpenPolicySce(
  867. /* [unique][in] */ PLSAPR_SERVER_NAME SystemName,
  868. /* [in] */ PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes,
  869. /* [in] */ ACCESS_MASK DesiredAccess,
  870. /* [out] */ LSAPR_HANDLE *PolicyHandle);
  871. extern handle_t IgnoreThisHandle;
  872. extern RPC_IF_HANDLE lsarpc_ClientIfHandle;
  873. extern RPC_IF_HANDLE lsarpc_ServerIfHandle;
  874. #endif /* __lsarpc_INTERFACE_DEFINED__ */
  875. /* Additional Prototypes for ALL interfaces */
  876. handle_t __RPC_USER PAUTHZ_AUDIT_EVENT_TYPE_OLD_bind ( PAUTHZ_AUDIT_EVENT_TYPE_OLD );
  877. void __RPC_USER PAUTHZ_AUDIT_EVENT_TYPE_OLD_unbind( PAUTHZ_AUDIT_EVENT_TYPE_OLD, handle_t );
  878. handle_t __RPC_USER PLSAPR_SERVER_NAME_bind ( PLSAPR_SERVER_NAME );
  879. void __RPC_USER PLSAPR_SERVER_NAME_unbind( PLSAPR_SERVER_NAME, handle_t );
  880. void __RPC_USER AUDIT_HANDLE_rundown( AUDIT_HANDLE );
  881. void __RPC_USER LSAPR_HANDLE_rundown( LSAPR_HANDLE );
  882. void LsarClose_notify( void);
  883. void LsarDelete_notify( void);
  884. void LsarEnumeratePrivileges_notify( void);
  885. void LsarQuerySecurityObject_notify( void);
  886. void LsarSetSecurityObject_notify( void);
  887. void LsarChangePassword_notify( void);
  888. void LsarOpenPolicy_notify( void);
  889. void LsarQueryInformationPolicy_notify( void);
  890. void LsarSetInformationPolicy_notify( void);
  891. void LsarClearAuditLog_notify( void);
  892. void LsarCreateAccount_notify( void);
  893. void LsarEnumerateAccounts_notify( void);
  894. void LsarCreateTrustedDomain_notify( void);
  895. void LsarEnumerateTrustedDomains_notify( void);
  896. void LsarLookupNames_notify( void);
  897. void LsarLookupSids_notify( void);
  898. void LsarCreateSecret_notify( void);
  899. void LsarOpenAccount_notify( void);
  900. void LsarEnumeratePrivilegesAccount_notify( void);
  901. void LsarAddPrivilegesToAccount_notify( void);
  902. void LsarRemovePrivilegesFromAccount_notify( void);
  903. void LsarGetQuotasForAccount_notify( void);
  904. void LsarSetQuotasForAccount_notify( void);
  905. void LsarGetSystemAccessAccount_notify( void);
  906. void LsarSetSystemAccessAccount_notify( void);
  907. void LsarOpenTrustedDomain_notify( void);
  908. void LsarQueryInfoTrustedDomain_notify( void);
  909. void LsarSetInformationTrustedDomain_notify( void);
  910. void LsarOpenSecret_notify( void);
  911. void LsarSetSecret_notify( void);
  912. void LsarQuerySecret_notify( void);
  913. void LsarLookupPrivilegeValue_notify( void);
  914. void LsarLookupPrivilegeName_notify( void);
  915. void LsarLookupPrivilegeDisplayName_notify( void);
  916. void LsarDeleteObject_notify( void);
  917. void LsarEnumerateAccountsWithUserRight_notify( void);
  918. void LsarEnumerateAccountRights_notify( void);
  919. void LsarAddAccountRights_notify( void);
  920. void LsarRemoveAccountRights_notify( void);
  921. void LsarQueryTrustedDomainInfo_notify( void);
  922. void LsarSetTrustedDomainInfo_notify( void);
  923. void LsarDeleteTrustedDomain_notify( void);
  924. void LsarStorePrivateData_notify( void);
  925. void LsarRetrievePrivateData_notify( void);
  926. void LsarOpenPolicy2_notify( void);
  927. void LsarGetUserName_notify( void);
  928. void LsarQueryInformationPolicy2_notify( void);
  929. void LsarSetInformationPolicy2_notify( void);
  930. void LsarQueryTrustedDomainInfoByName_notify( void);
  931. void LsarSetTrustedDomainInfoByName_notify( void);
  932. void LsarEnumerateTrustedDomainsEx_notify( void);
  933. void LsarCreateTrustedDomainEx_notify( void);
  934. void LsarSetPolicyReplicationHandle_notify( void);
  935. void LsarQueryDomainInformationPolicy_notify( void);
  936. void LsarSetDomainInformationPolicy_notify( void);
  937. void LsarOpenTrustedDomainByName_notify( void);
  938. /* end of Additional Prototypes */
  939. #ifdef __cplusplus
  940. }
  941. #endif
  942. #endif