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.

283 lines
7.4 KiB

  1. /*++
  2. Copyright (c) 1991 Microsoft Corporation
  3. Module Name:
  4. adt.h
  5. Abstract:
  6. Local Security Authority - Audit Log Management - Public Defines,
  7. data and function prototypes.
  8. Functions, data and defines in this module are exported to the
  9. whole of the Lsa subsystem from the Auditing Sub-component.
  10. Author:
  11. Scott Birrell (ScottBi) November 20, 1991
  12. Environment:
  13. Revision History:
  14. --*/
  15. #ifndef _ADT_H
  16. #define _ADT_H
  17. //
  18. // Audit Log Information. This must be kept in sync with the information
  19. // in the Lsa Database.
  20. //
  21. extern POLICY_AUDIT_LOG_INFO LsapAdtLogInformation;
  22. extern LSARM_POLICY_AUDIT_EVENTS_INFO LsapAdtEventsInformation;
  23. POLICY_AUDIT_EVENT_TYPE
  24. LsapAdtEventTypeFromCategoryId(
  25. IN ULONG CategoryId
  26. );
  27. BOOLEAN
  28. LsapAdtAuditingEnabledByCategory(
  29. IN POLICY_AUDIT_EVENT_TYPE Category,
  30. IN UINT AuditEventType
  31. );
  32. NTSTATUS
  33. LsapAdtAuditingEnabledBySid(
  34. IN POLICY_AUDIT_EVENT_TYPE Category,
  35. IN PSID UserSid,
  36. IN UINT AuditEventType,
  37. OUT PBOOLEAN bAudit
  38. );
  39. NTSTATUS
  40. LsapAdtAuditingEnabledByLogonId(
  41. IN POLICY_AUDIT_EVENT_TYPE Category,
  42. IN PLUID LogonId,
  43. IN UINT AuditEventType,
  44. OUT PBOOLEAN bAudit
  45. );
  46. NTSTATUS
  47. LsapAdtAuditingEnabledByPolicy(
  48. IN POLICY_AUDIT_EVENT_TYPE Category,
  49. IN PTOKEN_AUDIT_POLICY pPolicy,
  50. IN UINT AuditEventType,
  51. OUT PBOOLEAN bAudit
  52. );
  53. BOOLEAN
  54. LsapAdtAuditingEnabledHint(
  55. IN POLICY_AUDIT_EVENT_TYPE AuditCategory,
  56. IN UINT AuditEventType
  57. );
  58. NTSTATUS
  59. LsapAdtWriteLogWrkr(
  60. IN PLSA_COMMAND_MESSAGE CommandMessage,
  61. OUT PLSA_REPLY_MESSAGE ReplyMessage
  62. );
  63. NTSTATUS
  64. LsapAdtInitialize(
  65. );
  66. NTSTATUS
  67. LsapAdtInitializeDefaultAuditing(
  68. IN ULONG Options,
  69. OUT PLSARM_POLICY_AUDIT_EVENTS_INFO AuditEventsInformation
  70. );
  71. VOID
  72. LsapAdtAuditPackageLoad(
  73. PUNICODE_STRING PackageFileName
  74. );
  75. VOID
  76. LsapAdtGenerateLsaAuditSystemAccessChange(
  77. IN USHORT EventCategory,
  78. IN ULONG EventID,
  79. IN USHORT EventType,
  80. IN PSID ClientSid,
  81. IN LUID CallerAuthenticationId,
  82. IN PSID TargetSid,
  83. IN PCWSTR szSystemAccess
  84. );
  85. NTSTATUS
  86. LsapAdtGenerateLsaAuditEvent(
  87. IN LSAPR_HANDLE ObjectHandle,
  88. IN ULONG AuditEventCategory,
  89. IN ULONG AuditEventId,
  90. IN PPRIVILEGE_SET Privileges,
  91. IN ULONG SidCount,
  92. IN PSID *Sids OPTIONAL,
  93. IN ULONG UnicodeStringCount,
  94. IN PUNICODE_STRING UnicodeStrings OPTIONAL,
  95. IN PLSARM_POLICY_AUDIT_EVENTS_INFO PolicyAuditEventsInfo OPTIONAL
  96. );
  97. NTSTATUS
  98. LsapAdtTrustedDomainAdd(
  99. IN USHORT EventType,
  100. IN PUNICODE_STRING pName,
  101. IN PSID pSid,
  102. IN ULONG Type,
  103. IN ULONG Direction,
  104. IN ULONG Attributes
  105. );
  106. NTSTATUS
  107. LsapAdtTrustedDomainRem(
  108. IN USHORT EventType,
  109. IN PUNICODE_STRING pName,
  110. IN PSID pSid,
  111. IN PSID pClientSid,
  112. IN PLUID pClientAuthId
  113. );
  114. NTSTATUS
  115. LsapAdtTrustedDomainMod(
  116. IN USHORT EventType,
  117. IN PSID pDomainSid,
  118. IN PUNICODE_STRING pOldName,
  119. IN ULONG OldType,
  120. IN ULONG OldDirection,
  121. IN ULONG OldAttributes,
  122. IN PUNICODE_STRING pNewName,
  123. IN ULONG NewType,
  124. IN ULONG NewDirection,
  125. IN ULONG NewAttributes
  126. );
  127. NTSTATUS
  128. LsapAdtGenerateLsaAuditEventWithClientSid(
  129. IN ULONG AuditEventCategory,
  130. IN ULONG AuditEventId,
  131. IN PSID ClientSid,
  132. IN LUID ClientAuthenticationId,
  133. IN PPRIVILEGE_SET Privileges,
  134. IN ULONG SidCount,
  135. IN PSID *Sids OPTIONAL,
  136. IN ULONG UnicodeStringCount,
  137. IN PUNICODE_STRING UnicodeStrings OPTIONAL,
  138. IN PLSARM_POLICY_AUDIT_EVENTS_INFO PolicyAuditEventsInfo OPTIONAL
  139. );
  140. typedef enum _OBJECT_OPERATION_TYPE {
  141. ObjectOperationNone=0,
  142. ObjectOperationQuery,
  143. ObjectOperationDummyLast
  144. } OBJECT_OPERATION_TYPE;
  145. NTSTATUS
  146. LsapAdtGenerateObjectOperationAuditEvent(
  147. IN LSAPR_HANDLE ObjectHandle,
  148. IN USHORT AuditEventType,
  149. IN OBJECT_OPERATION_TYPE OperationType
  150. );
  151. NTSTATUS
  152. LsapAdtGenerateDomainPolicyChangeAuditEvent(
  153. IN POLICY_DOMAIN_INFORMATION_CLASS InformationClass,
  154. IN USHORT AuditEventType,
  155. IN LSAP_DB_ATTRIBUTE* OldAttributes,
  156. IN LSAP_DB_ATTRIBUTE* NewAttributes,
  157. IN ULONG AttributeCount
  158. );
  159. NTSTATUS
  160. LsapAdtTrustedForestNamespaceCollision(
  161. IN LSA_FOREST_TRUST_COLLISION_RECORD_TYPE CollisionTargetType,
  162. IN PUNICODE_STRING pCollisionTargetName,
  163. IN PUNICODE_STRING pForestRootDomainName,
  164. IN PUNICODE_STRING pTopLevelName,
  165. IN PUNICODE_STRING pDnsName,
  166. IN PUNICODE_STRING pNetbiosName,
  167. IN PSID pSid,
  168. IN ULONG NewFlags
  169. );
  170. NTSTATUS
  171. LsapAdtTrustedForestInfoEntryAdd(
  172. IN PUNICODE_STRING pForestRootDomainName,
  173. IN PSID pForestRootDomainSid,
  174. IN PLUID pOperationId,
  175. IN LSA_FOREST_TRUST_RECORD_TYPE EntryType,
  176. IN ULONG Flags,
  177. IN PUNICODE_STRING TopLevelName,
  178. IN PUNICODE_STRING DnsName,
  179. IN PUNICODE_STRING NetbiosName,
  180. IN PSID pSid
  181. );
  182. NTSTATUS
  183. LsapAdtTrustedForestInfoEntryRem(
  184. IN PUNICODE_STRING pForestRootDomainName,
  185. IN PSID pForestRootDomainSid,
  186. IN PLUID pOperationId,
  187. IN LSA_FOREST_TRUST_RECORD_TYPE EntryType,
  188. IN ULONG Flags,
  189. IN PUNICODE_STRING TopLevelName,
  190. IN PUNICODE_STRING DnsName,
  191. IN PUNICODE_STRING NetbiosName,
  192. IN PSID pSid
  193. );
  194. NTSTATUS
  195. LsapAdtTrustedForestInfoEntryMod(
  196. IN PUNICODE_STRING pForestRootDomainName,
  197. IN PSID pForestRootDomainSid,
  198. IN PLUID pOperationId,
  199. IN LSA_FOREST_TRUST_RECORD_TYPE EntryType,
  200. IN ULONG OldFlags,
  201. IN PUNICODE_STRING pOldTopLevelName,
  202. IN PUNICODE_STRING pOldDnsName,
  203. IN PUNICODE_STRING pOldNetbiosName,
  204. IN PSID pOldSid,
  205. IN ULONG NewFlags,
  206. IN PUNICODE_STRING pNewTopLevelName,
  207. IN PUNICODE_STRING pNewDnsName,
  208. IN PUNICODE_STRING pNewNetbiosName,
  209. IN PSID pNewSid
  210. );
  211. //
  212. // Macro to determine the size of a PRIVILEGE_SET
  213. //
  214. #define LsapPrivilegeSetSize( PrivilegeSet ) \
  215. ( ( PrivilegeSet ) == NULL ? 0 : \
  216. ((( PrivilegeSet )->PrivilegeCount > 0) \
  217. ? \
  218. ((ULONG)sizeof(PRIVILEGE_SET) + \
  219. ( \
  220. (( PrivilegeSet )->PrivilegeCount - ANYSIZE_ARRAY) * \
  221. (ULONG)sizeof(LUID_AND_ATTRIBUTES) \
  222. ) \
  223. ) \
  224. : ((ULONG)sizeof(PRIVILEGE_SET) - (ULONG)sizeof(LUID_AND_ATTRIBUTES)) \
  225. ))
  226. ULONG
  227. LsapStringListSize(
  228. IN PLSA_ADT_STRING_LIST pStringList
  229. );
  230. ULONG
  231. LsapSidListSize(
  232. IN PLSA_ADT_SID_LIST pSidList
  233. );
  234. #endif // _ADT_H