Leaked source code of windows server 2003
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.

1274 lines
44 KiB

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