ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

lsa.idl
Go to the documentation of this file.
00001 /*
00002  * Local Security Authority interface definition
00003  */
00004 
00005 #include <ms-dtyp.idl>
00006 
00007 typedef [handle] LPWSTR PLSAPR_SERVER_NAME;
00008 
00009 typedef [context_handle] PVOID LSAPR_HANDLE;
00010 typedef LSAPR_HANDLE *PLSAPR_HANDLE;
00011 
00012 cpp_quote("#ifndef _WINNT_H")
00013 typedef struct _LUID {
00014     DWORD LowPart;
00015     LONG HighPart;
00016 } LUID, *PLUID;
00017 cpp_quote("#endif")
00018 
00019 cpp_quote("#ifndef _NTDEF_")
00020 typedef long NTSTATUS;
00021 typedef struct _STRING {
00022     WORD Length;
00023     WORD MaximumLength;
00024     [size_is(MaximumLength), length_is(Length)] LPSTR Buffer;
00025 } STRING, *PSTRING;
00026 
00027 cpp_quote("#endif")
00028 
00029 typedef struct _LSAPR_ACL {
00030     BYTE AclRevision;
00031     BYTE Sbz1;
00032     WORD AclSize;
00033     [size_is(AclSize - 4)] BYTE Dummy1[*];
00034 } LSAPR_ACL, *PLSAPR_ACL;
00035 
00036 cpp_quote("#ifndef _WINNT_H")
00037 typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
00038 cpp_quote("#endif")
00039 
00040 typedef struct _LSAPR_SECURITY_DESCRIPTOR {
00041     BYTE Revision;
00042     BYTE Sbz1;
00043     SECURITY_DESCRIPTOR_CONTROL Control;
00044     PRPC_SID Owner;
00045     PRPC_SID Group;
00046     LSAPR_ACL *Sacl;
00047     /* FIXME: should be PLSAPR_ACL Sacl; */
00048     LSAPR_ACL *Dacl;
00049     /* FIXME: should be PLSAPR_ACL Dacl; */
00050 } LSAPR_SECURITY_DESCRIPTOR, *PLSAPR_SECURITY_DESCRIPTOR;
00051 
00052 cpp_quote("#if 0")
00053 
00054 typedef enum _SECURITY_IMPERSONATION_LEVEL {
00055     SecurityAnonymous = 0,
00056     SecurityIdentification,
00057     SecurityImpersonation,
00058     SecurityDelegation,
00059 } SECURITY_IMPERSONATION_LEVEL, *PSECURITY_IMPERSONATION_LEVEL;
00060 
00061 typedef BYTE SECURITY_CONTEXT_TRACKING_MODE, *PSECURITY_CONTEXT_TRACKING_MODE;
00062 
00063 typedef struct _SECURITY_QUALITY_OF_SERVICE {
00064     DWORD Length;
00065     SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
00066     SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
00067     BYTE EffectiveOnly;
00068 } SECURITY_QUALITY_OF_SERVICE, *PSECURITY_QUALITY_OF_SERVICE;
00069 
00070 cpp_quote("#endif")
00071 
00072 typedef struct _LSAPR_OBJECT_ATTRIBUTES {
00073     DWORD Length;
00074     BYTE *RootDirectory;
00075     PSTRING ObjectName;
00076     DWORD Attributes;
00077     PLSAPR_SECURITY_DESCRIPTOR SecurityDescriptor;
00078     PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService;
00079 } LSAPR_OBJECT_ATTRIBUTES, *PLSAPR_OBJECT_ATTRIBUTES;
00080 
00081 typedef struct _LSAPR_POLICY_PRIVILEGE_DEF {
00082     RPC_UNICODE_STRING Name;
00083     LUID LocalValue;
00084 } LSAPR_POLICY_PRIVILEGE_DEF, *PLSAPR_POLICY_PRIVILEGE_DEF;
00085 
00086 typedef struct _LSAPR_PRIVILEGE_ENUM_BUFFER {
00087     DWORD Entries;
00088     [size_is(Entries)] PLSAPR_POLICY_PRIVILEGE_DEF Privileges;
00089 } LSAPR_PRIVILEGE_ENUM_BUFFER, *PLSAPR_PRIVILEGE_ENUM_BUFFER;
00090 
00091 typedef struct _LSAPR_ACCOUNT_INFORMATION {
00092     PRPC_SID Sid;
00093 } LSAPR_ACCOUNT_INFORMATION, *PLSAPR_ACCOUNT_INFORMATION;
00094 
00095 typedef struct _LSAPR_ACCOUNT_ENUM_BUFFER {
00096     DWORD EntriesRead;
00097     [size_is(EntriesRead)] PLSAPR_ACCOUNT_INFORMATION Information;
00098 } LSAPR_ACCOUNT_ENUM_BUFFER, *PLSAPR_ACCOUNT_ENUM_BUFFER;
00099 
00100 cpp_quote("#ifndef _NTSECAPI_H")
00101 typedef RPC_UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING;
00102 cpp_quote("#endif")
00103 
00104 typedef struct _LSAPR_TRUST_INFORMATION {
00105     RPC_UNICODE_STRING Name;
00106     PRPC_SID Sid;
00107 } LSAPR_TRUST_INFORMATION, *PLSAPR_TRUST_INFORMATION;
00108 
00109 typedef struct _LSAPR_REFERENCED_DOMAIN_LIST {
00110     DWORD Entries;
00111     [size_is(Entries)] PLSAPR_TRUST_INFORMATION Domains;
00112     DWORD MaxEntries;
00113 } LSAPR_REFERENCED_DOMAIN_LIST, *PLSAPR_REFERENCED_DOMAIN_LIST;
00114 
00115 cpp_quote("#if 0")
00116 
00117 typedef enum _SID_NAME_USE {
00118     SidTypeUser = 1,
00119     SidTypeGroup,
00120     SidTypeDomain,
00121     SidTypeAlias,
00122     SidTypeWellKnownGroup,
00123     SidTypeDeletedAccount,
00124     SidTypeInvalid,
00125     SidTypeUnknown,
00126     SidTypeComputer,
00127     SidTypeLabel,
00128 } SID_NAME_USE, *PSID_NAME_USE;
00129 
00130 cpp_quote("#endif")
00131 
00132 cpp_quote("#ifndef _NTDEF_")
00133 
00134 typedef struct _LSA_TRANSLATED_SID {
00135     SID_NAME_USE Use;
00136     DWORD RelativeId;
00137     LONG DomainIndex;
00138 } LSA_TRANSLATED_SID, *PLSA_TRANSLATED_SID;
00139 
00140 cpp_quote("#endif")
00141 
00142 typedef struct _LSAPR_TRANSLATED_SIDS {
00143     DWORD Entries;
00144     [size_is(Entries)] PLSA_TRANSLATED_SID Sids;
00145 } LSAPR_TRANSLATED_SIDS, *PLSAPR_TRANSLATED_SIDS;
00146 
00147 typedef enum _LSAP_LOOKUP_LEVEL {
00148     LsapLookupWksta = 1,
00149     LsapLookupPDC,
00150     LsapLookupTDL,
00151     LsapLookupGC,
00152     LsapLookupXForestReferral,
00153     LsapLookupXForestResolve,
00154     LsapLookupRODCReferralToFullDC,
00155 } LSAP_LOOKUP_LEVEL, *PLSAP_LOOKUP_LEVEL;
00156 
00157 typedef struct _LSAPR_SID_INFORMATION {
00158     PRPC_SID Sid;
00159 } LSAPR_SID_INFORMATION, *PLSAPR_SID_INFORMATION;
00160 
00161 typedef struct _LSAPR_SID_ENUM_BUFFER {
00162     DWORD Entries;
00163     [size_is(Entries)] PLSAPR_SID_INFORMATION SidInfo;
00164 } LSAPR_SID_ENUM_BUFFER, *PLSAPR_SID_ENUM_BUFFER;
00165 
00166 typedef struct _LSAPR_TRANSLATED_NAME {
00167     SID_NAME_USE Use;
00168     RPC_UNICODE_STRING Name;
00169     LONG DomainIndex;
00170 } LSAPR_TRANSLATED_NAME, *PLSAPR_TRANSLATED_NAME;
00171 
00172 typedef struct _LSAPR_TRANSLATED_NAMES {
00173     DWORD Entries;
00174     [size_is(Entries)] PLSAPR_TRANSLATED_NAME Names;
00175 } LSAPR_TRANSLATED_NAMES, *PLSAPR_TRANSLATED_NAMES;
00176 
00177 typedef struct _LSAPR_TRANSLATED_NAME_EX {
00178     SID_NAME_USE Use;
00179     RPC_UNICODE_STRING Name;
00180     LONG DomainIndex;
00181     DWORD Flags;
00182 } LSAPR_TRANSLATED_NAME_EX, *PLSAPR_TRANSLATED_NAME_EX;
00183 
00184 typedef struct _LSAPR_TRANSLATED_NAMES_EX {
00185     DWORD Entries;
00186     [size_is(Entries)] PLSAPR_TRANSLATED_NAME_EX Names;
00187 } LSAPR_TRANSLATED_NAMES_EX, *PLSAPR_TRANSLATED_NAMES_EX;
00188 
00189 typedef struct _LSAPR_TRANSLATED_SID_EX {
00190     SID_NAME_USE Use;
00191     DWORD RelativeId;
00192     LONG DomainIndex;
00193     DWORD Flags;
00194 } LSAPR_TRANSLATED_SID_EX, *PLSAPR_TRANSLATED_SID_EX;
00195 
00196 typedef struct _LSAPR_TRANSLATED_SIDS_EX {
00197     DWORD Entries;
00198     [size_is(Entries)] PLSAPR_TRANSLATED_SID_EX Sids;
00199 } LSAPR_TRANSLATED_SIDS_EX, *PLSAPR_TRANSLATED_SIDS_EX;
00200 
00201 typedef struct _LSAPR_TRANSLATED_SID_EX2 {
00202     SID_NAME_USE Use;
00203     PRPC_SID Sid;
00204     LONG DomainIndex;
00205     DWORD Flags;
00206 } LSAPR_TRANSLATED_SID_EX2, *PLSAPR_TRANSLATED_SID_EX2;
00207 
00208 typedef struct _LSAPR_TRANSLATED_SIDS_EX2 {
00209     DWORD Entries;
00210     [size_is(Entries)] PLSAPR_TRANSLATED_SID_EX2 Sids;
00211 } LSAPR_TRANSLATED_SIDS_EX2, *PLSAPR_TRANSLATED_SIDS_EX2;
00212 
00213 typedef LSAPR_TRUST_INFORMATION LSAPR_TRUSTED_DOMAIN_INFORMATION_BASIC;
00214 
00215 typedef struct _LSAPR_SR_SECURITY_DESCRIPTOR {
00216     DWORD Length;
00217     [size_is(Length)] BYTE *SecurityDescriptor;
00218 } LSAPR_SR_SECURITY_DESCRIPTOR, *PLSAPR_SR_SECURITY_DESCRIPTOR;
00219 
00220 cpp_quote("#ifndef _NTSECAPI_H")
00221 typedef enum _POLICY_INFORMATION_CLASS {
00222     PolicyAuditLogInformation = 1,
00223     PolicyAuditEventsInformation,
00224     PolicyPrimaryDomainInformation,
00225     PolicyPdAccountInformation,
00226     PolicyAccountDomainInformation,
00227     PolicyLsaServerRoleInformation,
00228     PolicyReplicaSourceInformation,
00229     PolicyDefaultQuotaInformation,
00230     PolicyModificationInformation,
00231     PolicyAuditFullSetInformation,
00232     PolicyAuditFullQueryInformation,
00233     PolicyDnsDomainInformation,
00234     PolicyDnsDomainInformationInt,
00235     PolicyLocalAccountDomainInformation,
00236     PolicyLastEntry,
00237 } POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS;
00238 
00239 typedef struct _POLICY_AUDIT_LOG_INFO {
00240     DWORD AuditLogPercentFull;
00241     DWORD MaximumLogSize;
00242     LARGE_INTEGER AuditRetentionPeriod;
00243     BYTE AuditLogFullShutdownInProgress;
00244     LARGE_INTEGER TimeToShutdown;
00245     DWORD NextAuditRecordId;
00246 } POLICY_AUDIT_LOG_INFO, *PPOLICY_AUDIT_LOG_INFO;
00247 cpp_quote("#endif")
00248 
00249 typedef struct _LSAPR_POLICY_AUDIT_EVENTS_INFO {
00250     BYTE AuditingMode;
00251     [size_is(MaximumAuditEventCount)] DWORD *EventAuditingOptions;
00252     DWORD MaximumAuditEventCount;
00253 } LSAPR_POLICY_AUDIT_EVENTS_INFO, *PLSAPR_POLICY_AUDIT_EVENTS_INFO;
00254 
00255 typedef struct _LSAPR_POLICY_PRIMARY_DOM_INFO {
00256     RPC_UNICODE_STRING Name;
00257     PRPC_SID Sid;
00258 } LSAPR_POLICY_PRIMARY_DOM_INFO, *PLSAPR_POLICY_PRIMARY_DOM_INFO;
00259 
00260 typedef struct _LSAPR_POLICY_ACCOUNT_DOM_INFO {
00261     RPC_UNICODE_STRING DomainName;
00262     PRPC_SID Sid;
00263 } LSAPR_POLICY_ACCOUNT_DOM_INFO, *PLSAPR_POLICY_ACCOUNT_DOM_INFO;
00264 
00265 typedef struct _LSAPR_POLICY_PD_ACCOUNT_INFO {
00266     RPC_UNICODE_STRING Name;
00267 } LSAPR_POLICY_PD_ACCOUNT_INFO, *PLSAPR_POLICY_PD_ACCOUNT_INFO;
00268 
00269 cpp_quote("#ifndef _NTSECAPI_H")
00270 typedef enum _POLICY_LSA_SERVER_ROLE {
00271     PolicyServerRoleBackup = 2,
00272     PolicyServerRolePrimary,
00273 } POLICY_LSA_SERVER_ROLE, *PPOLICY_LSA_SERVER_ROLE;
00274 
00275 typedef struct _POLICY_LSA_SERVER_ROLE_INFO {
00276     POLICY_LSA_SERVER_ROLE LsaServerRole;
00277 } POLICY_LSA_SERVER_ROLE_INFO, *PPOLICY_LSA_SERVER_ROLE_INFO;
00278 cpp_quote("#endif")
00279 
00280 typedef struct _POLICY_LSA_REPLICA_SRCE_INFO {
00281     RPC_UNICODE_STRING ReplicaSource;
00282     RPC_UNICODE_STRING ReplicaAccountName;
00283 } POLICY_LSA_REPLICA_SRCE_INFO, *PPOLICY_LSA_REPLICA_SRCE_INFO;
00284 
00285 cpp_quote("#ifndef _WINNT_H")
00286 typedef struct _QUOTA_LIMITS {
00287     INT64 PagedPoolLimit;
00288     INT64 NonPagedPoolLimit;
00289     INT64 MinimumWorkingSetSize;
00290     INT64 MaximumWorkingSetSize;
00291     INT64 PagefileLimit;
00292     LARGE_INTEGER TimeLimit;
00293 } QUOTA_LIMITS, *PQUOTA_LIMITS;
00294 cpp_quote("#endif")
00295 
00296 cpp_quote("#ifndef _NTSECAPI_H")
00297 typedef struct _POLICY_DEFAULT_QUOTA_INFO {
00298     QUOTA_LIMITS QuotaLimits;
00299 } POLICY_DEFAULT_QUOTA_INFO, *PPOLICY_DEFAULT_QUOTA_INFO;
00300 
00301 typedef struct _POLICY_MODIFICATION_INFO {
00302     LARGE_INTEGER ModifiedId;
00303     LARGE_INTEGER DatabaseCreationTime;
00304 } POLICY_MODIFICATION_INFO, *PPOLICY_MODIFICATION_INFO;
00305 
00306 typedef struct _POLICY_AUDIT_FULL_SET_INFO {
00307     BOOL ShutDownOnFull;
00308 } POLICY_AUDIT_FULL_SET_INFO, *PPOLICY_AUDIT_FULL_SET_INFO;
00309 
00310 typedef struct _POLICY_AUDIT_FULL_QUERY_INFO {
00311     BOOL ShutDownOnFull;
00312     BOOL LogIsFull;
00313 } POLICY_AUDIT_FULL_QUERY_INFO, *PPOLICY_AUDIT_FULL_QUERY_INFO;
00314 cpp_quote("#endif")
00315 
00316 typedef struct _LSAPR_POLICY_DNS_DOMAIN_INFO {
00317     RPC_UNICODE_STRING Name;
00318     RPC_UNICODE_STRING DnsDomainName;
00319     RPC_UNICODE_STRING DnsForestName;
00320     GUID DomainGuid;
00321     PRPC_SID Sid;
00322 } LSAPR_POLICY_DNS_DOMAIN_INFO, *PLSAPR_POLICY_DNS_DOMAIN_INFO;
00323 
00324 typedef
00325 [switch_type(POLICY_INFORMATION_CLASS)] union _LSAPR_POLICY_INFORMATION {
00326     [case(PolicyAuditLogInformation)] POLICY_AUDIT_LOG_INFO PolicyAuditLogInfo;
00327     [case(PolicyAuditEventsInformation)] LSAPR_POLICY_AUDIT_EVENTS_INFO PolicyAuditEventsInfo;
00328     [case(PolicyPrimaryDomainInformation)] LSAPR_POLICY_PRIMARY_DOM_INFO PolicyPrimaryDomInfo;
00329     [case(PolicyPdAccountInformation)] LSAPR_POLICY_PD_ACCOUNT_INFO PolicyPdAccountInfo;
00330     [case(PolicyAccountDomainInformation)] LSAPR_POLICY_ACCOUNT_DOM_INFO PolicyAccountDomainInfo;
00331     [case(PolicyLsaServerRoleInformation)] POLICY_LSA_SERVER_ROLE_INFO PolicyServerRoleInfo;
00332     [case(PolicyReplicaSourceInformation)] POLICY_LSA_REPLICA_SRCE_INFO PolicyReplicaSourceInfo;
00333     [case(PolicyDefaultQuotaInformation)] POLICY_DEFAULT_QUOTA_INFO PolicyDefaultQuotaInfo;
00334     [case(PolicyModificationInformation)] POLICY_MODIFICATION_INFO PolicyModificationInfo;
00335     [case(PolicyAuditFullSetInformation)] POLICY_AUDIT_FULL_SET_INFO PolicyAuditFullSetInfo;
00336     [case(PolicyAuditFullQueryInformation)] POLICY_AUDIT_FULL_QUERY_INFO PolicyAuditFullQueryInfo;
00337     [case(PolicyDnsDomainInformation)] LSAPR_POLICY_DNS_DOMAIN_INFO PolicyDnsDomainInfo;
00338     [case(PolicyDnsDomainInformationInt)] LSAPR_POLICY_DNS_DOMAIN_INFO PolicyDnsDomainInfoInt;
00339     [case(PolicyLocalAccountDomainInformation)] LSAPR_POLICY_ACCOUNT_DOM_INFO PolicyLocalAccountDomainInfo;
00340 } LSAPR_POLICY_INFORMATION, *PLSAPR_POLICY_INFORMATION;
00341 
00342 typedef struct _LSAPR_TRUSTED_ENUM_BUFFER {
00343     DWORD EntriesRead;
00344     [size_is(EntriesRead)] PLSAPR_TRUST_INFORMATION Information;
00345 } LSAPR_TRUSTED_ENUM_BUFFER, *PLSAPR_TRUSTED_ENUM_BUFFER;
00346 
00347 cpp_quote("#ifndef _NTSECAPI_H")
00348 typedef enum _TRUSTED_INFORMATION_CLASS {
00349     TrustedDomainNameInformation = 1,
00350     TrustedControllersInformation,
00351     TrustedPosixOffsetInformation,
00352     TrustedPasswordInformation,
00353     TrustedDomainInformationBasic,
00354     TrustedDomainInformationEx,
00355     TrustedDomainAuthInformation,
00356     TrustedDomainFullInformation,
00357     TrustedDomainAuthInformationInternal,
00358     TrustedDomainFullInformationInternal,
00359     TrustedDomainInformationEx2Internal,
00360     TrustedDomainFullInformation2Internal,
00361     TrustedDomainSupportedEncryptionTypes,
00362 } TRUSTED_INFORMATION_CLASS, *PTRUSTED_INFORMATION_CLASS;
00363 cpp_quote("#endif")
00364 
00365 typedef struct _LSAPR_TRUSTED_DOMAIN_NAME_INFO {
00366     RPC_UNICODE_STRING Name;
00367 } LSAPR_TRUSTED_DOMAIN_NAME_INFO, *PLSAPR_TRUSTED_DOMAIN_NAME_INFO;
00368 
00369 typedef struct _LSAPR_TRUSTED_CONTROLLERS_INFO {
00370     DWORD Entries;
00371     [size_is(Entries)] PRPC_UNICODE_STRING Names;
00372 } LSAPR_TRUSTED_CONTROLLERS_INFO, *PLSAPR_TRUSTED_CONTROLLERS_INFO;
00373 
00374 cpp_quote("#ifndef _NTSECAPI_H")
00375 typedef struct _TRUSTED_POSIX_OFFSET_INFO {
00376     DWORD Offset;
00377 } TRUSTED_POSIX_OFFSET_INFO, *PTRUSTED_POSIX_OFFSET_INFO;
00378 cpp_quote("#endif")
00379 
00380 typedef struct _LSAPR_CR_CIPHER_VALUE {
00381     DWORD Length;
00382     DWORD MaximumLength;
00383     [size_is(MaximumLength), length_is(Length)] BYTE *Buffer;
00384 } LSAPR_CR_CIPHER_VALUE, *PLSAPR_CR_CIPHER_VALUE;
00385 
00386 typedef struct _LSAPR_TRUSTED_PASSWORD_INFO {
00387     PLSAPR_CR_CIPHER_VALUE Password;
00388     PLSAPR_CR_CIPHER_VALUE OldPassword;
00389 } LSAPR_TRUSTED_PASSWORD_INFO, *PLSAPR_TRUSTED_PASSWORD_INFO;
00390 
00391 typedef struct _LSAPR_USER_RIGHT_SET {
00392     DWORD Entries;
00393     [size_is(Entries)] PRPC_UNICODE_STRING UserRights;
00394 } LSAPR_USER_RIGHT_SET, *PLSAPR_USER_RIGHT_SET;
00395 
00396 cpp_quote("#ifndef _NTSECAPI_H")
00397 typedef enum _POLICY_DOMAIN_INFORMATION_CLASS {
00398     PolicyDomainQualityOfServiceInformation = 1,
00399     PolicyDomainEfsInformation = 2,
00400     PolicyDomainKerberosTicketInformation = 3,
00401 } POLICY_DOMAIN_INFORMATION_CLASS, *PPOLICY_DOMAIN_INFORMATION_CLASS;
00402 
00403 typedef struct _POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO {
00404     DWORD QualityOfService;
00405 } POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO, *PPOLICY_DOMAIN_QUALITY_OF_SERVICE_INFO;
00406 cpp_quote("#endif")
00407 
00408 typedef struct _LSAPR_POLICY_DOMAIN_EFS_INFO {
00409     DWORD InfoLength;
00410     [size_is(InfoLength)] BYTE *EfsBlob;
00411 } LSAPR_POLICY_DOMAIN_EFS_INFO, *PLSAPR_POLICY_DOMAIN_EFS_INFO;
00412 
00413 cpp_quote("#ifndef _NTSECAPI_H")
00414 typedef struct _POLICY_DOMAIN_KERBEROS_TICKET_INFO {
00415     DWORD AuthenticationOptions;
00416     LARGE_INTEGER MaxServiceTicketAge;
00417     LARGE_INTEGER MaxTicketAge;
00418     LARGE_INTEGER MaxRenewAge;
00419     LARGE_INTEGER MaxClockSkew;
00420     LARGE_INTEGER Reserved;
00421 } POLICY_DOMAIN_KERBEROS_TICKET_INFO, *PPOLICY_DOMAIN_KERBEROS_TICKET_INFO;
00422 cpp_quote("#endif")
00423 
00424 typedef
00425 [switch_type(POLICY_DOMAIN_INFORMATION_CLASS)] union _LSAPR_POLICY_DOMAIN_INFORMATION {
00426     [case(PolicyDomainQualityOfServiceInformation)] POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO PolicyDomainQualityOfServiceInfo;
00427     [case(PolicyDomainEfsInformation)] LSAPR_POLICY_DOMAIN_EFS_INFO PolicyDomainEfsInfo;
00428     [case(PolicyDomainKerberosTicketInformation)] POLICY_DOMAIN_KERBEROS_TICKET_INFO PolicyDomainKerbTicketInfo;
00429 } LSAPR_POLICY_DOMAIN_INFORMATION, *PLSAPR_POLICY_DOMAIN_INFORMATION;
00430 
00431 typedef struct _LSAPR_TRUSTED_DOMAIN_INFORMATION_EX {
00432     RPC_UNICODE_STRING Name;
00433     RPC_UNICODE_STRING FlatName;
00434     PRPC_SID Sid;
00435     DWORD TrustDirection;
00436     DWORD TrustType;
00437     DWORD TrustAttributes;
00438 } LSAPR_TRUSTED_DOMAIN_INFORMATION_EX, *PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX;
00439 
00440 typedef struct _LSAPR_TRUSTED_ENUM_BUFFER_EX {
00441     DWORD EntriesRead;
00442     [size_is(EntriesRead)] PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX EnumerationBuffer;
00443 } LSAPR_TRUSTED_ENUM_BUFFER_EX, *PLSAPR_TRUSTED_ENUM_BUFFER_EX;
00444 
00445 typedef struct _LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2 {
00446     RPC_UNICODE_STRING Name;
00447     RPC_UNICODE_STRING FlatName;
00448     PRPC_SID Sid;
00449     DWORD TrustDirection;
00450     DWORD TrustType;
00451     DWORD TrustAttributes;
00452     DWORD ForestTrustLength;
00453     [size_is(ForestTrustLength)] BYTE *ForestTrustInfo;
00454 } LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2, *PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX2;
00455 
00456 typedef struct _LSAPR_AUTH_INFORMATION {
00457     LARGE_INTEGER LastUpdateTime;
00458     DWORD AuthType;
00459     DWORD AuthInfoLength;
00460     [size_is(AuthInfoLength)] BYTE *AuthInfo;
00461 } LSAPR_AUTH_INFORMATION, *PLSAPR_AUTH_INFORMATION;
00462 
00463 typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION {
00464     DWORD IncomingAuthInfos;
00465     PLSAPR_AUTH_INFORMATION IncomingAuthenticationInformation;
00466     PLSAPR_AUTH_INFORMATION IncomingPreviousAuthenticationInformation;
00467     DWORD OutgoingAuthInfos;
00468     PLSAPR_AUTH_INFORMATION OutgoingAuthenticationInformation;
00469     PLSAPR_AUTH_INFORMATION OutgoingPreviousAuthenticationInformation;
00470 } LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION, *PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION;
00471 
00472 typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_BLOB {
00473     DWORD AuthSize;
00474     [size_is(AuthSize)] BYTE *AuthBlob;
00475 } LSAPR_TRUSTED_DOMAIN_AUTH_BLOB, *PLSAPR_TRUSTED_DOMAIN_AUTH_BLOB;
00476 
00477 typedef struct _LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL {
00478     LSAPR_TRUSTED_DOMAIN_AUTH_BLOB AuthBlob;
00479 } LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL, *PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL;
00480 
00481 typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION {
00482     LSAPR_TRUSTED_DOMAIN_INFORMATION_EX Information;
00483     TRUSTED_POSIX_OFFSET_INFO PosixOffset;
00484     LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation;
00485 } LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION, *PLSAPR_TRUSTED_DOMAIN_FULL_INFORMATION;
00486 
00487 typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL {
00488     LSAPR_TRUSTED_DOMAIN_INFORMATION_EX Information;
00489     TRUSTED_POSIX_OFFSET_INFO PosixOffset;
00490     LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL AuthInformation;
00491 } LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL, *PLSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL;
00492 
00493 typedef struct _LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2 {
00494     LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2 Information;
00495     TRUSTED_POSIX_OFFSET_INFO PosixOffset;
00496     LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation;
00497 } LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2, *PLSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2;
00498 
00499 typedef struct _TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES {
00500     DWORD SupportedEncryptionTypes;
00501 } TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES, *PTRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES;
00502 
00503 typedef
00504 [switch_type(TRUSTED_INFORMATION_CLASS)] union _LSAPR_TRUSTED_DOMAIN_INFO {
00505     [case(TrustedDomainNameInformation)] LSAPR_TRUSTED_DOMAIN_NAME_INFO TrustedDomainNameInfo;
00506     [case(TrustedControllersInformation)] LSAPR_TRUSTED_CONTROLLERS_INFO TrustedControllersInfo;
00507     [case(TrustedPosixOffsetInformation)] TRUSTED_POSIX_OFFSET_INFO TrustedPosixOffsetInfo;
00508     [case(TrustedPasswordInformation)] LSAPR_TRUSTED_PASSWORD_INFO TrustedPasswordInfo;
00509     [case(TrustedDomainInformationBasic)] LSAPR_TRUSTED_DOMAIN_INFORMATION_BASIC TrustedDomainInfoBasic;
00510     [case(TrustedDomainInformationEx)] LSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInfoEx;
00511     [case(TrustedDomainAuthInformation)] LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION TrustedAuthInfo;
00512     [case(TrustedDomainFullInformation)] LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION TrustedFullInfo;
00513     [case(TrustedDomainAuthInformationInternal)] LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL TrustedAuthInfoInternal;
00514     [case(TrustedDomainFullInformationInternal)] LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION_INTERNAL TrustedFullInfoInternal;
00515     [case(TrustedDomainInformationEx2Internal)] LSAPR_TRUSTED_DOMAIN_INFORMATION_EX2 TrustedDomainInfoEx2;
00516     [case(TrustedDomainFullInformation2Internal)] LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2 TrustedFullInfo2;
00517     [case(TrustedDomainSupportedEncryptionTypes)] TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES TrustedDomainSETs;
00518 } LSAPR_TRUSTED_DOMAIN_INFO, *PLSAPR_TRUSTED_DOMAIN_INFO;
00519 
00520 typedef struct _LSAPR_LUID_AND_ATTRIBUTES {
00521     LUID Luid;
00522     DWORD Attributes;
00523 } LSAPR_LUID_AND_ATTRIBUTES, *PLSAPR_LUID_AND_ATTRIBUTES;
00524 
00525 typedef struct _LSAPR_PRIVILEGE_SET {
00526     DWORD PrivilegeCount;
00527     DWORD Control;
00528     [size_is(PrivilegeCount)] LSAPR_LUID_AND_ATTRIBUTES Privilege[*];
00529 } LSAPR_PRIVILEGE_SET, *PLSAPR_PRIVILEGE_SET;
00530 
00531 cpp_quote("#ifndef _NTSECAPI_H")
00532 typedef enum _LSA_FOREST_TRUST_RECORD_TYPE {
00533     ForestTrustTopLevelName = 0,
00534     ForestTrustTopLevelNameEx = 1,
00535     ForestTrustDomainInfo = 2,
00536 } LSA_FOREST_TRUST_RECORD_TYPE;
00537 
00538 typedef struct _LSA_FOREST_TRUST_BINARY_DATA {
00539     DWORD Length;
00540     [size_is(Length)] BYTE *Buffer;
00541 } LSA_FOREST_TRUST_BINARY_DATA, *PLSA_FOREST_TRUST_BINARY_DATA;
00542 
00543 typedef struct _LSA_FOREST_TRUST_DOMAIN_INFO {
00544     PRPC_SID Sid;
00545     LSA_UNICODE_STRING DnsName;
00546     LSA_UNICODE_STRING NetbiosName;
00547 } LSA_FOREST_TRUST_DOMAIN_INFO, *PLSA_FOREST_TRUST_DOMAIN_INFO;
00548 
00549 typedef struct _LSA_FOREST_TRUST_RECORD {
00550     DWORD Flags;
00551     LSA_FOREST_TRUST_RECORD_TYPE ForestTrustType;
00552     LARGE_INTEGER Time;
00553     [switch_type(LSA_FOREST_TRUST_RECORD_TYPE), switch_is(ForestTrustType)] union {
00554         [case(ForestTrustTopLevelName, ForestTrustTopLevelNameEx)] LSA_UNICODE_STRING TopLevelName;
00555         [case(ForestTrustDomainInfo)] LSA_FOREST_TRUST_DOMAIN_INFO DomainInfo;
00556         [default] LSA_FOREST_TRUST_BINARY_DATA Data;
00557     } ForestTrustData;
00558 } LSA_FOREST_TRUST_RECORD, *PLSA_FOREST_TRUST_RECORD;
00559 
00560 typedef struct _LSA_FOREST_TRUST_INFORMATION {
00561     DWORD RecordCount;
00562     [size_is(RecordCount)] PLSA_FOREST_TRUST_RECORD *Entries;
00563 } LSA_FOREST_TRUST_INFORMATION, *PLSA_FOREST_TRUST_INFORMATION;
00564 
00565 typedef enum _LSA_FOREST_TRUST_COLLISION_RECORD_TYPE {
00566     CollisionTdo = 0,
00567     CollisionXref,
00568     CollisionOther,
00569 } LSA_FOREST_TRUST_COLLISION_RECORD_TYPE;
00570 
00571 typedef struct _LSA_FOREST_TRUST_COLLISION_RECORD {
00572     DWORD Index;
00573     LSA_FOREST_TRUST_COLLISION_RECORD_TYPE Type;
00574     DWORD Flags;
00575     LSA_UNICODE_STRING Name;
00576 } LSA_FOREST_TRUST_COLLISION_RECORD, *PLSA_FOREST_TRUST_COLLISION_RECORD;
00577 
00578 typedef struct _LSA_FOREST_TRUST_COLLISION_INFORMATION {
00579     DWORD RecordCount;
00580     [size_is(RecordCount)] PLSA_FOREST_TRUST_COLLISION_RECORD *Entries;
00581 } LSA_FOREST_TRUST_COLLISION_INFORMATION, *PLSA_FOREST_TRUST_COLLISION_INFORMATION;
00582 cpp_quote("#endif")
00583 
00584 [
00585   uuid(12345778-1234-abcd-ef00-0123456789ab),
00586   version(0.0),
00587   pointer_default(unique),
00588   endpoint("ncacn_np:[\\pipe\\lsarpc]")
00589   #ifndef __midl
00590   ,explicit_handle
00591   #endif
00592 ]
00593 interface lsarpc
00594 {
00595     /* Function 0 */
00596     NTSTATUS __stdcall LsarClose(
00597         [in, out] LSAPR_HANDLE *ObjectHandle);
00598 
00599     /* Function 1 */
00600     NTSTATUS __stdcall LsarDelete(
00601         [in] LSAPR_HANDLE ObjectHandle);
00602 
00603     /* Function 2 */
00604     NTSTATUS __stdcall LsarEnumeratePrivileges(
00605         [in] LSAPR_HANDLE PolicyHandle,
00606         [in, out] DWORD *EnumerationContext,
00607         [out] PLSAPR_PRIVILEGE_ENUM_BUFFER EnumerationBuffer,
00608         [in] DWORD PreferedMaximumLength);
00609 
00610     /* Function 3 */
00611     NTSTATUS __stdcall LsarQuerySecurityObject(
00612         [in] LSAPR_HANDLE ObjectHandle,
00613         [in] SECURITY_INFORMATION SecurityInformation,
00614         [out] PLSAPR_SR_SECURITY_DESCRIPTOR *SecurityDescriptor);
00615 
00616     /* Function 4 */
00617     NTSTATUS __stdcall LsarSetSecurityObject(
00618         [in] LSAPR_HANDLE ObjectHandle,
00619         [in] SECURITY_INFORMATION SecurityInformation,
00620         [in] PLSAPR_SR_SECURITY_DESCRIPTOR SecurityDescriptor);
00621 
00622     /* Function 5 */
00623     NTSTATUS __stdcall LsarChangePassword(
00624         [in] PRPC_UNICODE_STRING String1,
00625         [in] PRPC_UNICODE_STRING String2,
00626         [in] PRPC_UNICODE_STRING String3,
00627         [in] PRPC_UNICODE_STRING String4,
00628         [in] PRPC_UNICODE_STRING String5);
00629 
00630     /* Function 6 */
00631     NTSTATUS __stdcall LsarOpenPolicy(
00632         [in, unique] PLSAPR_SERVER_NAME SystemName,
00633         [in] PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes,
00634         [in] ACCESS_MASK DesiredAccess,
00635         [out] LSAPR_HANDLE *PolicyHandle);
00636 
00637     /* Function 7 */
00638     NTSTATUS __stdcall LsarQueryInformationPolicy(
00639         [in] LSAPR_HANDLE PolicyHandle,
00640         [in] POLICY_INFORMATION_CLASS InformationClass,
00641         [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION *PolicyInformation);
00642 
00643     /* Function 8 */
00644     NTSTATUS __stdcall LsarSetInformationPolicy(
00645         [in] LSAPR_HANDLE PolicyHandle,
00646         [in] POLICY_INFORMATION_CLASS InformationClass,
00647         [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION PolicyInformation);
00648 
00649     /* Function 9 */
00650     NTSTATUS __stdcall LsarClearAuditLog(
00651         [in] LSAPR_HANDLE ObjectHandle);
00652 
00653     /* Function 10 */
00654     NTSTATUS __stdcall LsarCreateAccount(
00655         [in] LSAPR_HANDLE PolicyHandle,
00656         [in] PRPC_SID AccountSid,
00657         [in] ACCESS_MASK DesiredAccess,
00658         [out] LSAPR_HANDLE *AccountHandle);
00659 
00660     /* Function 11 */
00661     NTSTATUS __stdcall LsarEnumerateAccounts(
00662         [in] LSAPR_HANDLE PolicyHandle,
00663         [in, out] DWORD *EnumerationContext,
00664         [out] PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer,
00665         [in] DWORD PreferedMaximumLength);
00666 
00667     /* Function 12 */
00668     NTSTATUS __stdcall LsarCreateTrustedDomain(
00669         [in] LSAPR_HANDLE PolicyHandle,
00670         [in] PLSAPR_TRUST_INFORMATION TrustedDomainInformation,
00671         [in] ACCESS_MASK DesiredAccess,
00672         [out] LSAPR_HANDLE *TrustedDomainHandle);
00673 
00674     /* Function 13 */
00675     NTSTATUS __stdcall LsarEnumerateTrustedDomains(
00676         [in] LSAPR_HANDLE PolicyHandle,
00677         [in, out] DWORD *EnumerationContext,
00678         [out] PLSAPR_TRUSTED_ENUM_BUFFER EnumerationBuffer,
00679         [in] DWORD PreferedMaximumLength);
00680 
00681     /* Function 14 */
00682     NTSTATUS __stdcall LsarLookupNames(
00683         [in] LSAPR_HANDLE PolicyHandle,
00684         [in] DWORD Count,
00685         [in, size_is(Count)] PRPC_UNICODE_STRING Names,
00686         [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
00687         [in, out] PLSAPR_TRANSLATED_SIDS TranslatedSids,
00688         [in] LSAP_LOOKUP_LEVEL LookupLevel,
00689         [in, out] DWORD *MappedCount);
00690 
00691     /* Function 15 */
00692     NTSTATUS __stdcall LsarLookupSids(
00693         [in] LSAPR_HANDLE PolicyHandle,
00694         [in] PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
00695         [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
00696         [in, out] PLSAPR_TRANSLATED_NAMES TranslatedNames,
00697         [in] LSAP_LOOKUP_LEVEL LookupLevel,
00698         [in, out] DWORD *MappedCount);
00699 
00700     /* Function 16 */
00701     NTSTATUS __stdcall LsarCreateSecret(
00702         [in] LSAPR_HANDLE PolicyHandle,
00703         [in] PRPC_UNICODE_STRING SecretName,
00704         [in] ACCESS_MASK DesiredAccess,
00705         [out] LSAPR_HANDLE *SecretHandle);
00706 
00707     /* Function 17 */
00708     NTSTATUS __stdcall LsarOpenAccount(
00709         [in] LSAPR_HANDLE PolicyHandle,
00710         [in] PRPC_SID AccountSid,
00711         [in] ACCESS_MASK DesiredAccess,
00712         [out] LSAPR_HANDLE *AccountHandle);
00713 
00714     /* Function 18 */
00715     NTSTATUS __stdcall LsarEnumeratePrivilegesAccount(
00716         [in] LSAPR_HANDLE AccountHandle,
00717         [out] PLSAPR_PRIVILEGE_SET *Privileges);
00718 
00719     /* Function 19 */
00720     NTSTATUS __stdcall LsarAddPrivilegesToAccount(
00721         [in] LSAPR_HANDLE AccountHandle,
00722         [in] PLSAPR_PRIVILEGE_SET Privileges);
00723 
00724     /* Function 20 */
00725     NTSTATUS __stdcall LsarRemovePrivilegesFromAccount(
00726         [in] LSAPR_HANDLE AccountHandle,
00727         [in] BOOL AllPrivileges,
00728         [in, unique] PLSAPR_PRIVILEGE_SET Privileges);
00729 
00730     /* Function 21 */
00731     NTSTATUS __stdcall LsarGetQuotasForAccount(
00732         [in] LSAPR_HANDLE AccountHandle,
00733         [out] PQUOTA_LIMITS QuotaLimits);
00734 
00735     /* Function 22 */
00736     NTSTATUS __stdcall LsarSetQuotasForAccount(
00737         [in] LSAPR_HANDLE AccountHandle,
00738         [in] PQUOTA_LIMITS QuotaLimits);
00739 
00740     /* Function 23 */
00741     NTSTATUS __stdcall LsarGetSystemAccessAccount(
00742         [in] LSAPR_HANDLE AccountHandle,
00743         [out] ACCESS_MASK *SystemAccess);
00744 
00745     /* Function 24 */
00746     NTSTATUS __stdcall LsarSetSystemAccessAccount(
00747         [in] LSAPR_HANDLE AccountHandle,
00748         [in] ACCESS_MASK SystemAccess);
00749 
00750     /* Function 25 */
00751     NTSTATUS __stdcall LsarOpenTrustedDomain(
00752         [in] LSAPR_HANDLE PolicyHandle,
00753         [in] PRPC_SID TrustedDomainSid,
00754         [in] ACCESS_MASK DesiredAccess,
00755         [out] LSAPR_HANDLE *TrustedDomainHandle);
00756 
00757     /* Function 26 */
00758     NTSTATUS __stdcall LsarQueryInfoTrustedDomain(
00759         [in] LSAPR_HANDLE TrustedDomainHandle,
00760         [in] TRUSTED_INFORMATION_CLASS InformationClass,
00761         [out, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation);
00762 
00763     /* Function 27 */
00764     NTSTATUS __stdcall LsarSetInformationTrustedDomain(
00765         [in] LSAPR_HANDLE TrustedDomainHandle,
00766         [in] TRUSTED_INFORMATION_CLASS InformationClass,
00767         [in, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation);
00768 
00769     /* Function 28 */
00770     NTSTATUS __stdcall LsarOpenSecret(
00771         [in] LSAPR_HANDLE PolicyHandle,
00772         [in] PRPC_UNICODE_STRING SecretName,
00773         [in] ACCESS_MASK DesiredAccess,
00774         [out] LSAPR_HANDLE *SecretHandle);
00775 
00776     /* Function 29 */
00777     NTSTATUS __stdcall LsarSetSecret(
00778         [in] LSAPR_HANDLE *SecretHandle,
00779         [in, unique] PLSAPR_CR_CIPHER_VALUE EncryptedCurrentValue,
00780         [in, unique] PLSAPR_CR_CIPHER_VALUE EncryptedOldValue);
00781 
00782     /* Function 30 */
00783     NTSTATUS __stdcall LsarQuerySecret(
00784         [in] LSAPR_HANDLE SecretHandle,
00785         [in, out, unique] PLSAPR_CR_CIPHER_VALUE *EncryptedCurrentValue,
00786         [in, out, unique] PLARGE_INTEGER CurrentValueSetTime,
00787         [in, out, unique] PLSAPR_CR_CIPHER_VALUE *EncryptedOldValue,
00788         [in, out, unique] PLARGE_INTEGER OldValueSetTime);
00789 
00790     /* Function 31 */
00791     NTSTATUS __stdcall LsarLookupPrivilegeValue(
00792         [in] LSAPR_HANDLE PolicyHandle,
00793         [in] PRPC_UNICODE_STRING Name,
00794         [out] PLUID Value);
00795 
00796     /* Function 32 */
00797     NTSTATUS __stdcall LsarLookupPrivilegeName(
00798         [in] LSAPR_HANDLE PolicyHandle,
00799         [in] PLUID Value,
00800         [out] PRPC_UNICODE_STRING *Name);
00801 
00802     /* Function 33 */
00803     NTSTATUS __stdcall LsarLookupPrivilegeDisplayName(
00804         [in] LSAPR_HANDLE PolicyHandle,
00805         [in] PRPC_UNICODE_STRING Name,
00806         [in] USHORT ClientLanguage,
00807         [in] USHORT ClientSystemDefaultLanguage,
00808         [out] PRPC_UNICODE_STRING *DisplayName,
00809         [out] USHORT *LanguageReturned);
00810 
00811     /* Function 34 */
00812     NTSTATUS __stdcall LsarDeleteObject(
00813         [in, out] LSAPR_HANDLE *ObjectHandle);
00814 
00815 cpp_quote("#if _WIN32_WINNT >= 0x0351")
00816 
00817     /* Function 35 */
00818     NTSTATUS __stdcall LsarEnumerateAccountsWithUserRight(
00819         [in] LSAPR_HANDLE PolicyHandle,
00820         [in, unique] PRPC_UNICODE_STRING UserRight,
00821         [out] PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer);
00822 
00823     /* Function 36 */
00824     NTSTATUS __stdcall LsarEnmuerateAccountRights(
00825         [in] LSAPR_HANDLE PolicyHandle,
00826         [in] PRPC_SID AccountSid,
00827         [out] PLSAPR_USER_RIGHT_SET UserRights);
00828 
00829     /* Function 37 */
00830     NTSTATUS __stdcall LsarAddAccountRights(
00831         [in] LSAPR_HANDLE PolicyHandle,
00832         [in] PRPC_SID AccountSid,
00833         [in] PLSAPR_USER_RIGHT_SET UserRights);
00834 
00835     /* Function 38 */
00836     NTSTATUS __stdcall LsarRemoveAccountRights(
00837         [in] LSAPR_HANDLE PolicyHandle,
00838         [in] PRPC_SID AccountSid,
00839         [in] BOOL AllRights,
00840         [in] PLSAPR_USER_RIGHT_SET UserRights);
00841 
00842     /* Function 39 */
00843     NTSTATUS __stdcall LsarQueryTrustedDomainInfo(
00844         [in] LSAPR_HANDLE PolicyHandle,
00845         [in] PRPC_SID TrustedDomainSid,
00846         [in] TRUSTED_INFORMATION_CLASS InformationClass,
00847         [out, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation);
00848 
00849     /* Function 40 */
00850     NTSTATUS __stdcall LsarSetTrustedDomainInfo(
00851         [in] LSAPR_HANDLE PolicyHandle,
00852         [in] PRPC_SID TrustedDomainSid,
00853         [in] TRUSTED_INFORMATION_CLASS InformationClass,
00854         [in, switch_is(InformationClass)] PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation);
00855 
00856     /* Function 41 */
00857     NTSTATUS __stdcall LsarDeleteTrustedDomain(
00858         [in] LSAPR_HANDLE PolicyHandle,
00859         [in] PRPC_SID TrustedDomainSid);
00860 
00861     /* Function 42 */
00862     NTSTATUS __stdcall LsarStorePrivateData(
00863         [in] LSAPR_HANDLE PolicyHandle,
00864         [in] PRPC_UNICODE_STRING KeyName,
00865         [in, unique] PLSAPR_CR_CIPHER_VALUE EncryptedData);
00866 
00867     /* Function 43 */
00868     NTSTATUS __stdcall LsarRetrievePrivateData(
00869         [in] LSAPR_HANDLE PolicyHandle,
00870         [in] PRPC_UNICODE_STRING KeyName,
00871         [in, out] PLSAPR_CR_CIPHER_VALUE *EncryptedData);
00872 
00873     /* Function 44 */
00874     NTSTATUS __stdcall LsarOpenPolicy2(
00875         [in, unique, string] PLSAPR_SERVER_NAME SystemName,
00876         [in] PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes,
00877         [in] ACCESS_MASK DesiredAccess,
00878         [out] LSAPR_HANDLE *PolicyHandle);
00879 
00880     /* Function 45 */
00881     NTSTATUS __stdcall LsarGetUserName(
00882         [in, unique, string] PLSAPR_SERVER_NAME SystemName,
00883         [in, out] PRPC_UNICODE_STRING *UserName,
00884         [in, out, unique] PRPC_UNICODE_STRING *DomainName);
00885 
00886 cpp_quote("#if _WIN32_WINNT >= 0x0500")
00887 
00888     /* Function 46 */
00889     NTSTATUS __stdcall LsarQueryInformationPolicy2(
00890         [in] LSAPR_HANDLE PolicyHandle,
00891         [in] POLICY_INFORMATION_CLASS InformationClass,
00892         [out] unsigned long *PolicyInformation);
00893         /* FIXME: should be [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION *PolicyInformation); */
00894 
00895     /* Function 47 */
00896     NTSTATUS __stdcall LsarSetInformationPolicy2(
00897         [in] LSAPR_HANDLE PolicyHandle,
00898         [in] POLICY_INFORMATION_CLASS InformationClass,
00899         [in] unsigned long PolicyInformation);
00900         /* FIXME: should be [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION PolicyInformation); */
00901 
00902     /* Function 48 */
00903     NTSTATUS __stdcall LsarQueryTrustedDomainInfoByName(
00904         [in] LSAPR_HANDLE PolicyHandle,
00905         [in] PRPC_UNICODE_STRING TrustedDomainName,
00906         [in] POLICY_INFORMATION_CLASS InformationClass,
00907         [out] unsigned long *PolicyInformation);
00908         /* FIXME: should be [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION *PolicyInformation); */
00909 
00910     /* Function 49 */
00911     NTSTATUS __stdcall LsarSetTrustedDomainInfoByName(
00912         [in] LSAPR_HANDLE PolicyHandle,
00913         [in] PRPC_UNICODE_STRING TrustedDomainName,
00914         [in] POLICY_INFORMATION_CLASS InformationClass,
00915         [in] unsigned long PolicyInformation);
00916         /* FIXME: should be [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION PolicyInformation); */
00917 
00918     /* Function 50 */
00919     NTSTATUS __stdcall LsarEnumerateTrustedDomainsEx(
00920         [in] LSAPR_HANDLE PolicyHandle,
00921         [in, out] DWORD *EnumerationContext,
00922         [out] PLSAPR_TRUSTED_ENUM_BUFFER_EX EnumerationBuffer,
00923         [in] DWORD PreferedMaximumLength);
00924 
00925     /* Function 51 */
00926     NTSTATUS __stdcall LsarCreateTrustedDomainEx(
00927         [in] LSAPR_HANDLE PolicyHandle,
00928         [in] PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation,
00929         [in] PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthentificationInformation,
00930         [in] ACCESS_MASK DesiredAccess,
00931         [out] LSAPR_HANDLE *TrustedDomainHandle);
00932 
00933     /* Function 52 */
00934     NTSTATUS __stdcall LsarSetPolicyReplicationHandle(
00935         [in, out] PLSAPR_HANDLE PolicyHandle);
00936 
00937     /* Function 53 */
00938     NTSTATUS __stdcall LsarQueryDomainInformationPolicy(
00939         [in] LSAPR_HANDLE PolicyHandle,
00940         [in] POLICY_INFORMATION_CLASS InformationClass,
00941         [out] unsigned long *PolicyInformation);
00942         /* FIXME: should be [out, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION *PolicyInformation); */
00943 
00944     /* Function 54 */
00945     NTSTATUS __stdcall LsarSetDomainInformationPolicy(
00946         [in] LSAPR_HANDLE PolicyHandle,
00947         [in] POLICY_INFORMATION_CLASS InformationClass,
00948         [in] unsigned long PolicyInformation);
00949         /* FIXME: should be [in, switch_is(InformationClass)] PLSAPR_POLICY_INFORMATION PolicyInformation); */
00950 
00951     /* Function 55 */
00952     NTSTATUS __stdcall LsarOpenTrustedDomainByName(
00953         [in] LSAPR_HANDLE PolicyHandle,
00954         [in] PRPC_UNICODE_STRING TrustedDomainName,
00955         [in] ACCESS_MASK DesiredAccess,
00956         [out] LSAPR_HANDLE *TrustedDomainHandle);
00957 
00958     /* Function 56 */
00959     NTSTATUS __stdcall LsarTestCall(
00960         [in] handle_t hBinding); /* FIXME */
00961 
00962     /* Function 57 */
00963     NTSTATUS __stdcall LsarLookupSids2(
00964         [in] LSAPR_HANDLE PolicyHandle,
00965         [in] PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
00966         [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
00967         [in, out] PLSAPR_TRANSLATED_NAMES_EX TranslatedNames,
00968         [in] LSAP_LOOKUP_LEVEL LookupLevel,
00969         [in, out] DWORD *MappedCount,
00970         [in] DWORD LookupOptions,
00971         [in] DWORD ClientRevision);
00972 
00973     /* Function 58 */
00974     NTSTATUS __stdcall LsarLookupNames2(
00975         [in] LSAPR_HANDLE PolicyHandle,
00976         [in] DWORD Count,
00977         [in, size_is(Count)] PRPC_UNICODE_STRING Names,
00978         [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
00979         [in, out] PLSAPR_TRANSLATED_SIDS_EX TranslatedSids,
00980         [in] LSAP_LOOKUP_LEVEL LookupLevel,
00981         [in, out] DWORD *MappedCount,
00982         [in] DWORD LookupOptions,
00983         [in] DWORD ClientRevision);
00984 
00985     /* Function 59 */
00986     NTSTATUS __stdcall LsarCreateTrustedDomainEx2(
00987         [in] LSAPR_HANDLE PolicyHandle,
00988         [in] PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation,
00989         [in] PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL AuthentificationInformation,
00990         [in] ACCESS_MASK DesiredAccess,
00991         [out] LSAPR_HANDLE *TrustedDomainHandle);
00992 
00993 cpp_quote("#if _WIN32_WINNT >= 0x0501")
00994 
00995     /* Function 60 */
00996     NTSTATUS __stdcall CredrWrite(
00997         [in] handle_t hBinding); /* FIXME */
00998 
00999     /* Function 61 */
01000     NTSTATUS __stdcall CredrRead(
01001         [in] handle_t hBinding); /* FIXME */
01002 
01003     /* Function 62 */
01004     NTSTATUS __stdcall CredrEnumerate(
01005         [in] handle_t hBinding); /* FIXME */
01006 
01007     /* Function 63 */
01008     NTSTATUS __stdcall CredrWriteDomainCredentials(
01009         [in] handle_t hBinding); /* FIXME */
01010 
01011     /* Function 64 */
01012     NTSTATUS __stdcall CredrReadDomainCredentials(
01013         [in] handle_t hBinding); /* FIXME */
01014 
01015     /* Function 65 */
01016     NTSTATUS __stdcall CredrDelete(
01017         [in] handle_t hBinding); /* FIXME */
01018 
01019     /* Function 66 */
01020     NTSTATUS __stdcall CredrGetTargetInfo(
01021         [in] handle_t hBinding); /* FIXME */
01022 
01023     /* Function 67 */
01024     NTSTATUS __stdcall CredrProfileLoaded(
01025         [in] handle_t hBinding); /* FIXME */
01026 
01027     /* Function 68 */
01028     NTSTATUS __stdcall LsarLookupNames3(
01029         [in] LSAPR_HANDLE PolicyHandle,
01030         [in] DWORD Count,
01031         [in, size_is(Count)] PRPC_UNICODE_STRING Names,
01032         [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
01033         [in, out] PLSAPR_TRANSLATED_SIDS_EX2 TranslatedSids,
01034         [in] LSAP_LOOKUP_LEVEL LookupLevel,
01035         [in, out] DWORD *MappedCount,
01036         [in] DWORD LookupOptions,
01037         [in] DWORD ClientRevision);
01038 
01039     /* Function 69 */
01040     NTSTATUS __stdcall CredrGetSessionTypes(
01041         [in] handle_t hBinding); /* FIXME */
01042 
01043     /* Function 70 */
01044     NTSTATUS __stdcall LsarRegisterAuditEvent(
01045         [in] handle_t hBinding); /* FIXME */
01046 
01047     /* Function 71 */
01048     NTSTATUS __stdcall LsarGenAuditEvent(
01049         [in] handle_t hBinding); /* FIXME */
01050 
01051     /* Function 72 */
01052     NTSTATUS __stdcall LsarUnregisterAuditEvent(
01053         [in] handle_t hBinding); /* FIXME */
01054 
01055     /* Function 73 */
01056     NTSTATUS __stdcall LsarQueryForestTrustInformation(
01057         [in] LSAPR_HANDLE PolicyHandle,
01058         [in] PLSA_UNICODE_STRING TrustedDomainName,
01059         [in] LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType,
01060         [out] PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo);
01061 
01062     /* Function 74 */
01063     NTSTATUS __stdcall LsarSetForestTrustInformation(
01064         [in] LSAPR_HANDLE PolicyHandle,
01065         [in] PLSA_UNICODE_STRING TrustedDomainName,
01066         [in] LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType,
01067         [in] PLSA_FOREST_TRUST_INFORMATION ForestTrustInfo,
01068         [in] BOOL CheckOnly,
01069         [out] PLSA_FOREST_TRUST_COLLISION_INFORMATION *CollisionInfo);
01070 
01071     /* Function 75 */
01072     NTSTATUS __stdcall CredrRename(
01073         [in] handle_t hBinding); /* FIXME */
01074 
01075     /* Function 76 */
01076     NTSTATUS __stdcall LsarLookupSids3(
01077         [in] LSAPR_HANDLE PolicyHandle,
01078         [in] PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
01079         [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
01080         [in, out] PLSAPR_TRANSLATED_NAMES_EX TranslatedNames,
01081         [in] LSAP_LOOKUP_LEVEL LookupLevel,
01082         [in, out] DWORD *MappedCount,
01083         [in] DWORD LookupOptions,
01084         [in] DWORD ClientRevision);
01085 
01086     /* Function 77 */
01087     NTSTATUS __stdcall LsarLookupNames4(
01088         [in] LSAPR_HANDLE PolicyHandle,
01089         [in] DWORD Count,
01090         [in, size_is(Count)] PRPC_UNICODE_STRING Names,
01091         [out] PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
01092         [in, out] PLSAPR_TRANSLATED_SIDS_EX2 TranslatedSids,
01093         [in] LSAP_LOOKUP_LEVEL LookupLevel,
01094         [in, out] DWORD *MappedCount,
01095         [in] DWORD LookupOptions,
01096         [in] DWORD ClientRevision);
01097 
01098     /* Function 78 */
01099     NTSTATUS __stdcall LsarOpenPolicySce(
01100         [in] handle_t hBinding); /* FIXME */
01101 
01102     /* Function 79 */
01103     NTSTATUS __stdcall LsarAdtRegisterSecurityEventSource(
01104         [in] handle_t hBinding); /* FIXME */
01105 
01106     /* Function 80 */
01107     NTSTATUS __stdcall LsarAdtUnregisterSecurityEventSource(
01108         [in] handle_t hBinding); /* FIXME */
01109 
01110     /* Function 81 */
01111     NTSTATUS __stdcall LsarAdtReportSecurityEvent(
01112         [in] handle_t hBinding); /* FIXME */
01113 
01114 cpp_quote("#endif /* _WIN32_WINNT >= 0x0501 */")
01115 cpp_quote("#endif /* _WIN32_WINNT >= 0x0500 */")
01116 cpp_quote("#endif /* _WIN32_WINNT >= 0x0351 */")
01117 
01118 }

Generated on Sun May 27 2012 04:33:09 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.