ntsecapi.h (5.2.3790.3959-Windows 5.0) | | ntsecapi.h (6.0.6002.18005-Windows 6.0) |
| | |
skipping to change at line 17 | | skipping to change at line 17 |
ntsecapi.h | | ntsecapi.h |
| | |
Abstract: | | Abstract: |
| | |
This module defines the Local Security Authority APIs. | | This module defines the Local Security Authority APIs. |
| | |
Revision History: | | Revision History: |
| | |
--*/ | | --*/ |
| | |
|
| | // |
| | // All the subcategories are named as <Audit_CategoryName_SubCategoryName> |
| | // |
| | |
| | #ifdef DEFINE_GUID |
| | |
| | /* 0cce9210-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_System_SecurityStateChange_defined) |
| | DEFINE_GUID( |
| | Audit_System_SecurityStateChange, |
| | 0x0cce9210, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_System_SecurityStateChange_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9211-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_System_SecuritySubsystemExtension_defin |
| | ed) |
| | DEFINE_GUID( |
| | Audit_System_SecuritySubsystemExtension, |
| | 0x0cce9211, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_System_SecuritySubsystemExtension_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9212-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_System_Integrity_defined) |
| | DEFINE_GUID( |
| | Audit_System_Integrity, |
| | 0x0cce9212, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_System_Integrity_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9213-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_System_IPSecDriverEvents_defined) |
| | DEFINE_GUID( |
| | Audit_System_IPSecDriverEvents, |
| | 0x0cce9213, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_System_IPSecDriverEvents_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9214-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_System_Others_defined) |
| | DEFINE_GUID( |
| | Audit_System_Others, |
| | 0x0cce9214, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_System_Others_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9215-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_Logon_Logon_defined) |
| | DEFINE_GUID( |
| | Audit_Logon_Logon, |
| | 0x0cce9215, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_Logon_Logon_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9216-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_Logon_Logoff_defined) |
| | DEFINE_GUID( |
| | Audit_Logon_Logoff, |
| | 0x0cce9216, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_Logon_Logoff_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9217-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_Logon_AccountLockout_defined) |
| | DEFINE_GUID( |
| | Audit_Logon_AccountLockout, |
| | 0x0cce9217, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_Logon_AccountLockout_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9218-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_Logon_IPSecMainMode_defined) |
| | DEFINE_GUID( |
| | Audit_Logon_IPSecMainMode, |
| | 0x0cce9218, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_Logon_IPSecMainMode_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9219-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_Logon_IPSecQuickMode_defined) |
| | DEFINE_GUID( |
| | Audit_Logon_IPSecQuickMode, |
| | 0x0cce9219, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_Logon_IPSecQuickMode_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce921a-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_Logon_IPSecUserMode_defined) |
| | DEFINE_GUID( |
| | Audit_Logon_IPSecUserMode, |
| | 0x0cce921a, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_Logon_IPSecUserMode_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce921b-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_Logon_SpecialLogon_defined) |
| | DEFINE_GUID( |
| | Audit_Logon_SpecialLogon, |
| | 0x0cce921b, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_Logon_SpecialLogon_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce921c-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_Logon_Others_defined) |
| | DEFINE_GUID( |
| | Audit_Logon_Others, |
| | 0x0cce921c, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_Logon_Others_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce921d-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_ObjectAccess_FileSystem_defined) |
| | DEFINE_GUID( |
| | Audit_ObjectAccess_FileSystem, |
| | 0x0cce921d, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_ObjectAccess_FileSystem_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce921e-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_ObjectAccess_Registry_defined) |
| | DEFINE_GUID( |
| | Audit_ObjectAccess_Registry, |
| | 0x0cce921e, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_ObjectAccess_Registry_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce921f-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_ObjectAccess_Kernel_defined) |
| | DEFINE_GUID( |
| | Audit_ObjectAccess_Kernel, |
| | 0x0cce921f, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_ObjectAccess_Kernel_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9220-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_ObjectAccess_Sam_defined) |
| | DEFINE_GUID( |
| | Audit_ObjectAccess_Sam, |
| | 0x0cce9220, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_ObjectAccess_Sam_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9221-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_ObjectAccess_CertificationServices_defi |
| | ned) |
| | DEFINE_GUID( |
| | Audit_ObjectAccess_CertificationServices, |
| | 0x0cce9221, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_ObjectAccess_CertificationServices_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9222-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_ObjectAccess_ApplicationGenerated_defin |
| | ed) |
| | DEFINE_GUID( |
| | Audit_ObjectAccess_ApplicationGenerated, |
| | 0x0cce9222, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_ObjectAccess_ApplicationGenerated_defined |
| | #endif |
| | #endif |
| | |
| | /* |
| | The Audit_ObjectAccess_Handle sub-category behaves different from the other sub- |
| | categories. |
| | For handle based audits to be generated (Open handle AuditId: 0x1230, Close hand |
| | le AuditId: |
| | 0x1232), the corresponding object sub-category AND Audit_ObjectAccess_Handle mus |
| | t be |
| | enabled. For eg, to generate handle based audits for Reg keys, both |
| | Audit_ObjectAccess_Registry and Audit_ObjectAccess_Handle must be enabled |
| | */ |
| | |
| | /* 0cce9223-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_ObjectAccess_Handle_defined) |
| | DEFINE_GUID( |
| | Audit_ObjectAccess_Handle, |
| | 0x0cce9223, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_ObjectAccess_Handle_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9224-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_ObjectAccess_Share_defined) |
| | DEFINE_GUID( |
| | Audit_ObjectAccess_Share, |
| | 0x0cce9224, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_ObjectAccess_Share_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9225-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_ObjectAccess_FirewallPacketDrops_define |
| | d) |
| | DEFINE_GUID( |
| | Audit_ObjectAccess_FirewallPacketDrops, |
| | 0x0cce9225, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_ObjectAccess_FirewallPacketDrops_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9226-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_ObjectAccess_FirewallConnection_defined |
| | ) |
| | DEFINE_GUID( |
| | Audit_ObjectAccess_FirewallConnection, |
| | 0x0cce9226, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_ObjectAccess_FirewallConnection_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9227-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_ObjectAccess_Other_defined) |
| | DEFINE_GUID( |
| | Audit_ObjectAccess_Other, |
| | 0x0cce9227, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_ObjectAccess_Other_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9228-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_PrivilegeUse_Sensitive_defined) |
| | DEFINE_GUID( |
| | Audit_PrivilegeUse_Sensitive, |
| | 0x0cce9228, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_PrivilegeUse_Sensitive_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9229-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_PrivilegeUse_NonSensitive_defined) |
| | DEFINE_GUID( |
| | Audit_PrivilegeUse_NonSensitive, |
| | 0x0cce9229, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_PrivilegeUse_NonSensitive_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce922a-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_PrivilegeUse_Others_defined) |
| | DEFINE_GUID( |
| | Audit_PrivilegeUse_Others, |
| | 0x0cce922a, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_PrivilegeUse_Others_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce922b-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_DetailedTracking_ProcessCreation_define |
| | d) |
| | DEFINE_GUID( |
| | Audit_DetailedTracking_ProcessCreation, |
| | 0x0cce922b, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_DetailedTracking_ProcessCreation_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce922c-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_DetailedTracking_ProcessTermination_def |
| | ined) |
| | DEFINE_GUID( |
| | Audit_DetailedTracking_ProcessTermination, |
| | 0x0cce922c, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_DetailedTracking_ProcessTermination_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce922d-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_DetailedTracking_DpapiActivity_defined) |
| | DEFINE_GUID( |
| | Audit_DetailedTracking_DpapiActivity, |
| | 0x0cce922d, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_DetailedTracking_DpapiActivity_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce922e-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_DetailedTracking_RpcCall_defined) |
| | DEFINE_GUID( |
| | Audit_DetailedTracking_RpcCall, |
| | 0x0cce922e, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_DetailedTracking_RpcCall_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce922f-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_PolicyChange_AuditPolicy_defined) |
| | DEFINE_GUID( |
| | Audit_PolicyChange_AuditPolicy, |
| | 0x0cce922f, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_PolicyChange_AuditPolicy_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9230-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_PolicyChange_AuthenticationPolicy_defin |
| | ed) |
| | DEFINE_GUID( |
| | Audit_PolicyChange_AuthenticationPolicy, |
| | 0x0cce9230, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_PolicyChange_AuthenticationPolicy_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9231-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_PolicyChange_AuthorizationPolicy_define |
| | d) |
| | DEFINE_GUID( |
| | Audit_PolicyChange_AuthorizationPolicy, |
| | 0x0cce9231, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_PolicyChange_AuthorizationPolicy_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9232-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_PolicyChange_MpsscvRulePolicy_defined) |
| | DEFINE_GUID( |
| | Audit_PolicyChange_MpsscvRulePolicy, |
| | 0x0cce9232, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_PolicyChange_MpsscvRulePolicy_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9233-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_PolicyChange_WfpIPSecPolicy_defined) |
| | DEFINE_GUID( |
| | Audit_PolicyChange_WfpIPSecPolicy, |
| | 0x0cce9233, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_PolicyChange_WfpIPSecPolicy_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9234-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_PolicyChange_Others_defined) |
| | DEFINE_GUID( |
| | Audit_PolicyChange_Others, |
| | 0x0cce9234, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_PolicyChange_Others_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9235-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_AccountManagement_UserAccount_defined) |
| | DEFINE_GUID( |
| | Audit_AccountManagement_UserAccount, |
| | 0x0cce9235, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_AccountManagement_UserAccount_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9236-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_AccountManagement_ComputerAccount_defin |
| | ed) |
| | DEFINE_GUID( |
| | Audit_AccountManagement_ComputerAccount, |
| | 0x0cce9236, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_AccountManagement_ComputerAccount_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9237-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_AccountManagement_SecurityGroup_defined |
| | ) |
| | DEFINE_GUID( |
| | Audit_AccountManagement_SecurityGroup, |
| | 0x0cce9237, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_AccountManagement_SecurityGroup_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9238-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_AccountManagement_DistributionGroup_def |
| | ined) |
| | DEFINE_GUID( |
| | Audit_AccountManagement_DistributionGroup, |
| | 0x0cce9238, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_AccountManagement_DistributionGroup_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9239-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_AccountManagement_ApplicationGroup_defi |
| | ned) |
| | DEFINE_GUID( |
| | Audit_AccountManagement_ApplicationGroup, |
| | 0x0cce9239, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_AccountManagement_ApplicationGroup_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce923a-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_AccountManagement_Others_defined) |
| | DEFINE_GUID( |
| | Audit_AccountManagement_Others, |
| | 0x0cce923a, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_AccountManagement_Others_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce923b-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_DSAccess_DSAccess_defined) |
| | DEFINE_GUID( |
| | Audit_DSAccess_DSAccess, |
| | 0x0cce923b, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_DSAccess_DSAccess_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce923c-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_DsAccess_AdAuditChanges_defined) |
| | DEFINE_GUID( |
| | Audit_DsAccess_AdAuditChanges, |
| | 0x0cce923c, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_DsAccess_AdAuditChanges_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce923d-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_Ds_Replication_defined) |
| | DEFINE_GUID( |
| | Audit_Ds_Replication, |
| | 0x0cce923d, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_Ds_Replication_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce923e-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_Ds_DetailedReplication_defined) |
| | DEFINE_GUID( |
| | Audit_Ds_DetailedReplication, |
| | 0x0cce923e, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_Ds_DetailedReplication_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce923f-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_AccountLogon_CredentialValidation_defin |
| | ed) |
| | DEFINE_GUID( |
| | Audit_AccountLogon_CredentialValidation, |
| | 0x0cce923f, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_AccountLogon_CredentialValidation_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9240-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_AccountLogon_Kerberos_defined) |
| | DEFINE_GUID( |
| | Audit_AccountLogon_Kerberos, |
| | 0x0cce9240, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_AccountLogon_Kerberos_defined |
| | #endif |
| | #endif |
| | |
| | /* 0cce9241-69ae-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_AccountLogon_Others_defined) |
| | DEFINE_GUID( |
| | Audit_AccountLogon_Others, |
| | 0x0cce9241, |
| | 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_AccountLogon_Others_defined |
| | #endif |
| | #endif |
| | |
| | #endif // DEFINE_GUID |
| | |
| | // |
| | // All categories are named as <Audit_CategoryName> |
| | // |
| | |
| | #ifdef DEFINE_GUID |
| | |
| | /* 69979848-797a-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_System_defined) |
| | DEFINE_GUID( |
| | Audit_System, |
| | 0x69979848, |
| | 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_System_defined |
| | #endif |
| | #endif |
| | |
| | /* 69979849-797a-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_Logon_defined) |
| | DEFINE_GUID( |
| | Audit_Logon, |
| | 0x69979849, |
| | 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_Logon_defined |
| | #endif |
| | #endif |
| | |
| | /* 6997984a-797a-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_ObjectAccess_defined) |
| | DEFINE_GUID( |
| | Audit_ObjectAccess, |
| | 0x6997984a, |
| | 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_ObjectAccess_defined |
| | #endif |
| | #endif |
| | |
| | /* 6997984b-797a-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_PrivilegeUse_defined) |
| | DEFINE_GUID( |
| | Audit_PrivilegeUse, |
| | 0x6997984b, |
| | 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_PrivilegeUse_defined |
| | #endif |
| | #endif |
| | |
| | /* 6997984c-797a-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_DetailedTracking_defined) |
| | DEFINE_GUID( |
| | Audit_DetailedTracking, |
| | 0x6997984c, |
| | 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_DetailedTracking_defined |
| | #endif |
| | #endif |
| | |
| | /* 6997984d-797a-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_PolicyChange_defined) |
| | DEFINE_GUID( |
| | Audit_PolicyChange, |
| | 0x6997984d, |
| | 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_PolicyChange_defined |
| | #endif |
| | #endif |
| | |
| | /* 6997984e-797a-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_AccountManagement_defined) |
| | DEFINE_GUID( |
| | Audit_AccountManagement, |
| | 0x6997984e, |
| | 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_AccountManagement_defined |
| | #endif |
| | #endif |
| | |
| | /* 6997984f-797a-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_DirectoryServiceAccess_defined) |
| | DEFINE_GUID( |
| | Audit_DirectoryServiceAccess, |
| | 0x6997984f, |
| | 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_DirectoryServiceAccess_defined |
| | #endif |
| | #endif |
| | |
| | /* 69979850-797a-11d9-bed3-505054503030 */ |
| | #if !defined(INITGUID) || !defined(Audit_AccountLogon_defined) |
| | DEFINE_GUID( |
| | Audit_AccountLogon, |
| | 0x69979850, |
| | 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30 |
| | ); |
| | #ifdef INITGUID |
| | #define Audit_AccountLogon_defined |
| | #endif |
| | #endif |
| | |
| | #endif // DEFINE_GUID |
| | |
#ifndef _NTSECAPI_ | | #ifndef _NTSECAPI_ |
#define _NTSECAPI_ | | #define _NTSECAPI_ |
| | |
#ifdef __cplusplus | | #ifdef __cplusplus |
extern "C" { | | extern "C" { |
#endif | | #endif |
| | |
#ifndef _NTDEF_ | | #ifndef _NTDEF_ |
typedef LONG NTSTATUS, *PNTSTATUS; | | typedef LONG NTSTATUS, *PNTSTATUS; |
#endif | | #endif |
| | |
skipping to change at line 89 | | skipping to change at line 821 |
#define LSA_MODE_LOG_FULL (0x00000008L) | | #define LSA_MODE_LOG_FULL (0x00000008L) |
| | |
#ifndef _NTLSA_IFS_ | | #ifndef _NTLSA_IFS_ |
// begin_ntifs | | // begin_ntifs |
// | | // |
// Used by a logon process to indicate what type of logon is being | | // Used by a logon process to indicate what type of logon is being |
// requested. | | // requested. |
// | | // |
| | |
typedef enum _SECURITY_LOGON_TYPE { | | typedef enum _SECURITY_LOGON_TYPE { |
|
Interactive = 2, // Interactively logged on (locally or remotely) | | UndefinedLogonType = 0, // This is used to specify an undefied logon type |
Network, // Accessing system via network | | Interactive = 2, // Interactively logged on (locally or remotely) |
Batch, // Started via a batch queue | | Network, // Accessing system via network |
Service, // Service started by service controller | | Batch, // Started via a batch queue |
Proxy, // Proxy logon | | Service, // Service started by service controller |
Unlock, // Unlock workstation | | Proxy, // Proxy logon |
NetworkCleartext, // Network logon with cleartext credentials | | Unlock, // Unlock workstation |
NewCredentials, // Clone caller, new default credentials | | NetworkCleartext, // Network logon with cleartext credentials |
| | NewCredentials, // Clone caller, new default credentials |
| | //The types below only exist in Windows XP and greater |
| | #if (_WIN32_WINNT >= 0x0501) |
RemoteInteractive, // Remote, yet interactive. Terminal server | | RemoteInteractive, // Remote, yet interactive. Terminal server |
CachedInteractive, // Try cached credentials without hitting the net. | | CachedInteractive, // Try cached credentials without hitting the net. |
|
| | // The types below only exist in Windows Server 2003 and greater |
| | #endif |
| | #if (_WIN32_WINNT >= 0x0502) |
CachedRemoteInteractive, // Same as RemoteInteractive, this is used internal
ly for auditing purpose | | CachedRemoteInteractive, // Same as RemoteInteractive, this is used internal
ly for auditing purpose |
CachedUnlock // Cached Unlock workstation | | CachedUnlock // Cached Unlock workstation |
|
| | #endif |
} SECURITY_LOGON_TYPE, *PSECURITY_LOGON_TYPE; | | } SECURITY_LOGON_TYPE, *PSECURITY_LOGON_TYPE; |
| | |
// end_ntifs | | // end_ntifs |
#endif // _NTLSA_IFS_ | | #endif // _NTLSA_IFS_ |
| | |
#ifndef _NTLSA_IFS_ | | #ifndef _NTLSA_IFS_ |
// begin_ntifs | | // begin_ntifs |
| | |
|
| | // |
| | // All of this stuff (between the Ifndef _NTLSA_AUDIT_ and its endif) were not |
| | // present in NTIFS prior to Windows Server 2003 SP1. All of the definitions how |
| | ever |
| | // exist down to windows 2000 (except for the few exceptions noted in the code). |
| | // |
| | |
#ifndef _NTLSA_AUDIT_ | | #ifndef _NTLSA_AUDIT_ |
#define _NTLSA_AUDIT_ | | #define _NTLSA_AUDIT_ |
| | |
///////////////////////////////////////////////////////////////////////// | | ///////////////////////////////////////////////////////////////////////// |
// // | | // // |
// Data types related to Auditing // | | // Data types related to Auditing // |
// // | | // // |
///////////////////////////////////////////////////////////////////////// | | ///////////////////////////////////////////////////////////////////////// |
| | |
// | | // |
| | |
skipping to change at line 191 | | skipping to change at line 936 |
SeAdtParmTypeSid, //Produces 1 parameter. | | SeAdtParmTypeSid, //Produces 1 parameter. |
//Received value: | | //Received value: |
// | | // |
// SID (variable length) | | // SID (variable length) |
// | | // |
//Results in: | | //Results in: |
// | | // |
// String representation of SID | | // String representation of SID |
// | | // |
| | |
|
SeAdtParmTypeLogonId, //Produces 3 parameters. | | SeAdtParmTypeLogonId, //Produces 4 parameters. |
//Received Value: | | //Received Value: |
// | | // |
// LUID (fixed length) | | // LUID (fixed length) |
// | | // |
//Results in: | | //Results in: |
// | | // |
|
// param 1: Username string | | // param 1: Sid string |
// param 2: domain name string | | // param 2: Username string |
// param 3: Logon ID (Luid) string | | // param 3: domain name string |
| | // param 4: Logon ID (Luid) string |
| | |
SeAdtParmTypeNoLogonId, //Produces 3 parameters. | | SeAdtParmTypeNoLogonId, //Produces 3 parameters. |
//Received value: | | //Received value: |
// | | // |
// None. | | // None. |
// | | // |
//Results in: | | //Results in: |
// | | // |
// param 1: "-" | | // param 1: "-" |
// param 2: "-" | | // param 2: "-" |
// param 3: "-" | | // param 3: "-" |
|
| | // param 4: "-" |
// | | // |
//Note: | | //Note: |
// | | // |
// This type is used when a logon ID | | // This type is used when a logon ID |
// is needed, but one is not available | | // is needed, but one is not available |
// to pass. For example, if an | | // to pass. For example, if an |
// impersonation logon ID is expected | | // impersonation logon ID is expected |
// but the subject is not impersonating | | // but the subject is not impersonating |
// anyone. | | // anyone. |
// | | // |
| | |
skipping to change at line 256 | | skipping to change at line 1003 |
// %%1062\n\t\t%1066\n\t\t%%601 | | // %%1062\n\t\t%1066\n\t\t%%601 |
// | | // |
// The %%numbers are signals to the | | // The %%numbers are signals to the |
// event viewer to perform parameter | | // event viewer to perform parameter |
// substitution before display. | | // substitution before display. |
// | | // |
| | |
SeAdtParmTypePrivs, //Produces 1 parameter with formatting. | | SeAdtParmTypePrivs, //Produces 1 parameter with formatting. |
//Received value: | | //Received value: |
// | | // |
|
// ??? Check with RobertRe and ScottBi | | |
// | | |
//Results in: | | //Results in: |
// | | // |
// formatted unicode string similar to | | // formatted unicode string similar to |
// that for access types. Each priv | | // that for access types. Each priv |
// will be formatted to be displayed | | // will be formatted to be displayed |
// on its own line. E.g., | | // on its own line. E.g., |
// | | // |
// %%642\n\t\t%%651\n\t\t%%655 | | // %%642\n\t\t%%651\n\t\t%%655 |
// | | // |
| | |
| | |
skipping to change at line 285 | | skipping to change at line 1030 |
SeAdtParmTypeHexUlong, //Produces 1 parameter | | SeAdtParmTypeHexUlong, //Produces 1 parameter |
//Received value: | | //Received value: |
// | | // |
// Ulong | | // Ulong |
// | | // |
//Results in: | | //Results in: |
// | | // |
// Unicode string representation of | | // Unicode string representation of |
// unsigned integer value in hexadecimal. | | // unsigned integer value in hexadecimal. |
| | |
|
| | // In W2k this value did not exist, it was ParmTypeLUID |
| | |
SeAdtParmTypePtr, //Produces 1 parameter | | SeAdtParmTypePtr, //Produces 1 parameter |
//Received value: | | //Received value: |
// | | // |
// pointer | | // pointer |
// | | // |
//Results in: | | //Results in: |
// | | // |
// Unicode string representation of | | // Unicode string representation of |
// unsigned integer value in hexadecimal. | | // unsigned integer value in hexadecimal. |
| | |
|
| | // |
| | // Everything below exists only in Windows XP and greater |
| | // |
| | |
SeAdtParmTypeTime, //Produces 2 parameters | | SeAdtParmTypeTime, //Produces 2 parameters |
//Received value: | | //Received value: |
// | | // |
// LARGE_INTEGER | | // LARGE_INTEGER |
// | | // |
//Results in: | | //Results in: |
// | | // |
// Unicode string representation of | | // Unicode string representation of |
// date and time. | | // date and time. |
| | |
| | |
skipping to change at line 317 | | skipping to change at line 1068 |
//Received value: | | //Received value: |
// | | // |
// GUID pointer | | // GUID pointer |
// | | // |
//Results in: | | //Results in: |
// | | // |
// Unicode string representation of GUID | | // Unicode string representation of GUID |
// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} | | // {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} |
// | | // |
| | |
|
| | // |
| | // Everything below exists only in Windows Server 2003 and Greater |
| | // |
| | |
SeAdtParmTypeLuid, // | | SeAdtParmTypeLuid, // |
//Produces 1 parameter | | //Produces 1 parameter |
//Received value: | | //Received value: |
// | | // |
// LUID | | // LUID |
// | | // |
//Results in: | | //Results in: |
// | | // |
// Hex LUID | | // Hex LUID |
// | | // |
| | |
skipping to change at line 412 | | skipping to change at line 1167 |
SeAdtParmTypeDateTime, //Produces 1 Parameter | | SeAdtParmTypeDateTime, //Produces 1 Parameter |
//Received value: | | //Received value: |
// | | // |
// LARGE_INTEGER | | // LARGE_INTEGER |
// | | // |
//Results in: | | //Results in: |
// | | // |
// Unicode string representation of | | // Unicode string representation of |
// date and time (in _one_ string). | | // date and time (in _one_ string). |
| | |
|
SeAdtParmTypeSockAddr // Produces 2 parameters | | SeAdtParmTypeSockAddr, // Produces 2 parameters |
// | | // |
// Received value: | | // Received value: |
// | | // |
// pointer to SOCKADDR_IN/SOCKADDR_IN6 | | // pointer to SOCKADDR_IN/SOCKADDR_IN6 |
// structure | | // structure |
// | | // |
// Results in: | | // Results in: |
// | | // |
// param 1: IP address string | | // param 1: IP address string |
// param 2: Port number string | | // param 2: Port number string |
// | | // |
| | |
|
| | // |
| | // Everything below this exists only in Longhorn and greater |
| | // |
| | |
| | SeAdtParmTypeSD, // Produces 1 parameters |
| | // |
| | // Received value: |
| | // |
| | // pointer to SECURITY_DESCRIPTOR |
| | // structure |
| | // |
| | // Results in: |
| | // |
| | // SDDL string representation of SD |
| | // |
| | |
| | SeAdtParmTypeLogonHours, // Produces 1 parameters |
| | // |
| | // Received value: |
| | // |
| | // pointer to LOGON_HOURS |
| | // structure |
| | // |
| | // Results in: |
| | // |
| | // String representation of allowed logon ho |
| | urs |
| | // |
| | |
| | SeAdtParmTypeLogonIdNoSid, //Produces 3 parameters. |
| | //Received Value: |
| | // |
| | // LUID (fixed length) |
| | // |
| | //Results in: |
| | // |
| | // param 1: Username string |
| | // param 2: domain name string |
| | // param 3: Logon ID (Luid) string |
| | |
| | SeAdtParmTypeUlongNoConv, // Produces 1 parameter. |
| | // Received Value: |
| | // Ulong |
| | // |
| | //Results in: |
| | // Not converted to string |
| | // |
| | |
| | SeAdtParmTypeSockAddrNoPort // Produces 1 parameter |
| | // |
| | // Received value: |
| | // |
| | // pointer to SOCKADDR_IN/SOCKADDR_IN6 |
| | // structure |
| | // |
| | // Results in: |
| | // |
| | // param 1: IPv4/IPv6 address string |
| | // |
| | |
} SE_ADT_PARAMETER_TYPE, *PSE_ADT_PARAMETER_TYPE; | | } SE_ADT_PARAMETER_TYPE, *PSE_ADT_PARAMETER_TYPE; |
| | |
#ifndef GUID_DEFINED | | #ifndef GUID_DEFINED |
#include <guiddef.h> | | #include <guiddef.h> |
#endif /* GUID_DEFINED */ | | #endif /* GUID_DEFINED */ |
| | |
typedef struct _SE_ADT_OBJECT_TYPE { | | typedef struct _SE_ADT_OBJECT_TYPE { |
GUID ObjectType; | | GUID ObjectType; |
USHORT Flags; | | USHORT Flags; |
#define SE_ADT_OBJECT_ONLY 0x1 | | #define SE_ADT_OBJECT_ONLY 0x1 |
| | |
skipping to change at line 462 | | skipping to change at line 1276 |
| | |
#define SE_MAX_AUDIT_PARAMETERS 32 | | #define SE_MAX_AUDIT_PARAMETERS 32 |
#define SE_MAX_GENERIC_AUDIT_PARAMETERS 28 | | #define SE_MAX_GENERIC_AUDIT_PARAMETERS 28 |
| | |
typedef struct _SE_ADT_PARAMETER_ARRAY { | | typedef struct _SE_ADT_PARAMETER_ARRAY { |
| | |
ULONG CategoryId; | | ULONG CategoryId; |
ULONG AuditId; | | ULONG AuditId; |
ULONG ParameterCount; | | ULONG ParameterCount; |
ULONG Length; | | ULONG Length; |
|
| | USHORT FlatSubCategoryId; |
USHORT Type; | | USHORT Type; |
ULONG Flags; | | ULONG Flags; |
SE_ADT_PARAMETER_ARRAY_ENTRY Parameters[ SE_MAX_AUDIT_PARAMETERS ]; | | SE_ADT_PARAMETER_ARRAY_ENTRY Parameters[ SE_MAX_AUDIT_PARAMETERS ]; |
| | |
} SE_ADT_PARAMETER_ARRAY, *PSE_ADT_PARAMETER_ARRAY; | | } SE_ADT_PARAMETER_ARRAY, *PSE_ADT_PARAMETER_ARRAY; |
| | |
#define SE_ADT_PARAMETERS_SELF_RELATIVE 0x00000001 | | #define SE_ADT_PARAMETERS_SELF_RELATIVE 0x00000001 |
|
| | #define SE_ADT_PARAMETERS_SEND_TO_LSA 0x00000002 |
| | #define SE_ADT_PARAMETER_EXTENSIBLE_AUDIT 0x00000004 |
| | #define SE_ADT_PARAMETER_GENERIC_AUDIT 0x00000008 |
| | #define SE_ADT_PARAMETER_WRITE_SYNCHRONOUS 0x00000010 |
| | |
| | // |
| | // This macro only existed in longhorn and after |
| | // |
| | |
| | #define LSAP_SE_ADT_PARAMETER_ARRAY_TRUE_SIZE(AuditParameters) \ |
| | ( sizeof(SE_ADT_PARAMETER_ARRAY) - \ |
| | sizeof(SE_ADT_PARAMETER_ARRAY_ENTRY) * \ |
| | (SE_MAX_AUDIT_PARAMETERS - AuditParameters->ParameterCount) ) |
| | |
#endif // _NTLSA_AUDIT_ | | #endif // _NTLSA_AUDIT_ |
| | |
// end_ntifs | | // end_ntifs |
#endif // _NTLSA_IFS_ | | #endif // _NTLSA_IFS_ |
| | |
// | | // |
// Audit Event Categories | | // Audit Event Categories |
// | | // |
// The following are the built-in types or Categories of audit event. | | // The following are the built-in types or Categories of audit event. |
// WARNING! This structure is subject to expansion. The user should not | | // WARNING! This structure is subject to expansion. The user should not |
// compute the number of elements of this type directly, but instead | | // compute the number of elements of this type directly, but instead |
// should obtain the count of elements by calling LsaQueryInformationPolicy() | | // should obtain the count of elements by calling LsaQueryInformationPolicy() |
// for the PolicyAuditEventsInformation class and extracting the count from | | // for the PolicyAuditEventsInformation class and extracting the count from |
// the MaximumAuditEventCount field of the returned structure. | | // the MaximumAuditEventCount field of the returned structure. |
// | | // |
| | |
typedef enum _POLICY_AUDIT_EVENT_TYPE { | | typedef enum _POLICY_AUDIT_EVENT_TYPE { |
| | |
|
AuditCategorySystem, | | AuditCategorySystem = 0, |
AuditCategoryLogon, | | AuditCategoryLogon, |
AuditCategoryObjectAccess, | | AuditCategoryObjectAccess, |
AuditCategoryPrivilegeUse, | | AuditCategoryPrivilegeUse, |
AuditCategoryDetailedTracking, | | AuditCategoryDetailedTracking, |
AuditCategoryPolicyChange, | | AuditCategoryPolicyChange, |
AuditCategoryAccountManagement, | | AuditCategoryAccountManagement, |
AuditCategoryDirectoryServiceAccess, | | AuditCategoryDirectoryServiceAccess, |
AuditCategoryAccountLogon | | AuditCategoryAccountLogon |
| | |
} POLICY_AUDIT_EVENT_TYPE, *PPOLICY_AUDIT_EVENT_TYPE; | | } POLICY_AUDIT_EVENT_TYPE, *PPOLICY_AUDIT_EVENT_TYPE; |
| | |
skipping to change at line 590 | | skipping to change at line 1418 |
// begin_ntifs | | // begin_ntifs |
| | |
NTSTATUS | | NTSTATUS |
NTAPI | | NTAPI |
LsaRegisterLogonProcess ( | | LsaRegisterLogonProcess ( |
__in PLSA_STRING LogonProcessName, | | __in PLSA_STRING LogonProcessName, |
__out PHANDLE LsaHandle, | | __out PHANDLE LsaHandle, |
__out PLSA_OPERATIONAL_MODE SecurityMode | | __out PLSA_OPERATIONAL_MODE SecurityMode |
); | | ); |
| | |
|
| | // |
| | // The function below did not exist in NTIFS before windows XP |
| | // However, the function has always been there, so it is okay to use |
| | // even on w2k |
| | // |
| | |
NTSTATUS | | NTSTATUS |
NTAPI | | NTAPI |
LsaLogonUser ( | | LsaLogonUser ( |
__in HANDLE LsaHandle, | | __in HANDLE LsaHandle, |
__in PLSA_STRING OriginName, | | __in PLSA_STRING OriginName, |
__in SECURITY_LOGON_TYPE LogonType, | | __in SECURITY_LOGON_TYPE LogonType, |
__in ULONG AuthenticationPackage, | | __in ULONG AuthenticationPackage, |
__in_bcount(AuthenticationInformationLength) PVOID AuthenticationInformation
, | | __in_bcount(AuthenticationInformationLength) PVOID AuthenticationInformation
, |
__in ULONG AuthenticationInformationLength, | | __in ULONG AuthenticationInformationLength, |
__in_opt PTOKEN_GROUPS LocalGroups, | | __in_opt PTOKEN_GROUPS LocalGroups, |
| | |
skipping to change at line 784 | | skipping to change at line 1618 |
// DomainIndex field. | | // DomainIndex field. |
// | | // |
// DomainIndex - Is the index of an entry in a related | | // DomainIndex - Is the index of an entry in a related |
// LSA_REFERENCED_DOMAIN_LIST data structure describing the | | // LSA_REFERENCED_DOMAIN_LIST data structure describing the |
// domain in which the account was found. | | // domain in which the account was found. |
// | | // |
// If there is no corresponding reference domain for an entry, then | | // If there is no corresponding reference domain for an entry, then |
// this field will contain a negative value. | | // this field will contain a negative value. |
// | | // |
| | |
|
| | #if (_WIN32_WINNT >= 0x0501) |
typedef struct _LSA_TRANSLATED_SID2 { | | typedef struct _LSA_TRANSLATED_SID2 { |
| | |
SID_NAME_USE Use; | | SID_NAME_USE Use; |
PSID Sid; | | PSID Sid; |
LONG DomainIndex; | | LONG DomainIndex; |
ULONG Flags; | | ULONG Flags; |
| | |
} LSA_TRANSLATED_SID2, *PLSA_TRANSLATED_SID2; | | } LSA_TRANSLATED_SID2, *PLSA_TRANSLATED_SID2; |
| | |
// where members have the following usage: | | // where members have the following usage: |
| | |
skipping to change at line 808 | | skipping to change at line 1643 |
// | | // |
// Sid - Contains the complete Sid of the tranlated SID | | // Sid - Contains the complete Sid of the tranlated SID |
// | | // |
// DomainIndex - Is the index of an entry in a related | | // DomainIndex - Is the index of an entry in a related |
// LSA_REFERENCED_DOMAIN_LIST data structure describing the | | // LSA_REFERENCED_DOMAIN_LIST data structure describing the |
// domain in which the account was found. | | // domain in which the account was found. |
// | | // |
// If there is no corresponding reference domain for an entry, then | | // If there is no corresponding reference domain for an entry, then |
// this field will contain a negative value. | | // this field will contain a negative value. |
// | | // |
|
| | #endif |
| | |
// | | // |
// The following data type is used in SID to name lookup services to | | // The following data type is used in SID to name lookup services to |
// describe the domains referenced in the lookup operation. | | // describe the domains referenced in the lookup operation. |
// | | // |
| | |
typedef struct _LSA_TRANSLATED_NAME { | | typedef struct _LSA_TRANSLATED_NAME { |
| | |
SID_NAME_USE Use; | | SID_NAME_USE Use; |
LSA_UNICODE_STRING Name; | | LSA_UNICODE_STRING Name; |
| | |
skipping to change at line 851 | | skipping to change at line 1687 |
// server (primary or backup). | | // server (primary or backup). |
// | | // |
| | |
typedef enum _POLICY_LSA_SERVER_ROLE { | | typedef enum _POLICY_LSA_SERVER_ROLE { |
| | |
PolicyServerRoleBackup = 2, | | PolicyServerRoleBackup = 2, |
PolicyServerRolePrimary | | PolicyServerRolePrimary |
| | |
} POLICY_LSA_SERVER_ROLE, *PPOLICY_LSA_SERVER_ROLE; | | } POLICY_LSA_SERVER_ROLE, *PPOLICY_LSA_SERVER_ROLE; |
| | |
|
| | #if (_WIN32_WINNT < 0x0502) |
| | // |
| | // The following data type is used to represent the state of the LSA |
| | // server (enabled or disabled). Some operations may only be performed on |
| | // an enabled LSA server. |
| | // |
| | |
| | typedef enum _POLICY_SERVER_ENABLE_STATE { |
| | |
| | PolicyServerEnabled = 2, |
| | PolicyServerDisabled |
| | |
| | } POLICY_SERVER_ENABLE_STATE, *PPOLICY_SERVER_ENABLE_STATE; |
| | #endif |
| | |
// | | // |
// The following data type is used to specify the auditing options for | | // The following data type is used to specify the auditing options for |
// an Audit Event Type. | | // an Audit Event Type. |
// | | // |
| | |
typedef ULONG POLICY_AUDIT_EVENT_OPTIONS, *PPOLICY_AUDIT_EVENT_OPTIONS; | | typedef ULONG POLICY_AUDIT_EVENT_OPTIONS, *PPOLICY_AUDIT_EVENT_OPTIONS; |
| | |
// where the following flags can be set: | | // where the following flags can be set: |
// | | // |
// POLICY_AUDIT_EVENT_UNCHANGED - Leave existing auditing options | | // POLICY_AUDIT_EVENT_UNCHANGED - Leave existing auditing options |
| | |
skipping to change at line 895 | | skipping to change at line 1746 |
PolicyPrimaryDomainInformation, | | PolicyPrimaryDomainInformation, |
PolicyPdAccountInformation, | | PolicyPdAccountInformation, |
PolicyAccountDomainInformation, | | PolicyAccountDomainInformation, |
PolicyLsaServerRoleInformation, | | PolicyLsaServerRoleInformation, |
PolicyReplicaSourceInformation, | | PolicyReplicaSourceInformation, |
PolicyDefaultQuotaInformation, | | PolicyDefaultQuotaInformation, |
PolicyModificationInformation, | | PolicyModificationInformation, |
PolicyAuditFullSetInformation, | | PolicyAuditFullSetInformation, |
PolicyAuditFullQueryInformation, | | PolicyAuditFullQueryInformation, |
PolicyDnsDomainInformation, | | PolicyDnsDomainInformation, |
|
PolicyDnsDomainInformationInt | | PolicyDnsDomainInformationInt, |
| | PolicyLocalAccountDomainInformation, |
| | PolicyLastEntry |
| | |
} POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS; | | } POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS; |
| | |
// | | // |
// The following data type corresponds to the PolicyAuditLogInformation | | // The following data type corresponds to the PolicyAuditLogInformation |
// information class. It is used to represent information relating to | | // information class. It is used to represent information relating to |
// the Audit Log. | | // the Audit Log. |
// | | // |
// This structure may be used in both query and set operations. However, | | // This structure may be used in both query and set operations. However, |
// when used in set operations, some fields are ignored. | | // when used in set operations, some fields are ignored. |
| | |
skipping to change at line 996 | | skipping to change at line 1849 |
// indexed by Audit Event Type. | | // indexed by Audit Event Type. |
// | | // |
// MaximumAuditEventCount - Specifiesa count of the number of Audit | | // MaximumAuditEventCount - Specifiesa count of the number of Audit |
// Event Types specified by the EventAuditingOptions parameter. If | | // Event Types specified by the EventAuditingOptions parameter. If |
// this count is less than the number of Audit Event Types supported | | // this count is less than the number of Audit Event Types supported |
// by the system, the Auditing Options for Event Types with IDs | | // by the system, the Auditing Options for Event Types with IDs |
// higher than (MaximumAuditEventCount + 1) are left unchanged. | | // higher than (MaximumAuditEventCount + 1) are left unchanged. |
// | | // |
| | |
// | | // |
|
| | // The following data type is used to represent information relating to |
| | // the audit requirements. |
| | // |
| | |
| | typedef struct _POLICY_AUDIT_SUBCATEGORIES_INFO { |
| | |
| | ULONG MaximumSubCategoryCount; |
| | PPOLICY_AUDIT_EVENT_OPTIONS EventAuditingOptions; |
| | |
| | } POLICY_AUDIT_SUBCATEGORIES_INFO, *PPOLICY_AUDIT_SUBCATEGORIES_INFO; |
| | |
| | typedef struct _POLICY_AUDIT_CATEGORIES_INFO { |
| | |
| | ULONG MaximumCategoryCount; |
| | PPOLICY_AUDIT_SUBCATEGORIES_INFO SubCategoriesInfo; |
| | |
| | } POLICY_AUDIT_CATEGORIES_INFO, *PPOLICY_AUDIT_CATEGORIES_INFO; |
| | |
| | // |
| | // Valid bits for Per user policy mask. |
| | // |
| | |
| | #define PER_USER_POLICY_UNCHANGED (0x00) |
| | #define PER_USER_AUDIT_SUCCESS_INCLUDE (0x01) |
| | #define PER_USER_AUDIT_SUCCESS_EXCLUDE (0x02) |
| | #define PER_USER_AUDIT_FAILURE_INCLUDE (0x04) |
| | #define PER_USER_AUDIT_FAILURE_EXCLUDE (0x08) |
| | #define PER_USER_AUDIT_NONE (0x10) |
| | |
| | #define VALID_PER_USER_AUDIT_POLICY_FLAG (PER_USER_AUDIT_SUCCESS_INCLUDE | \ |
| | PER_USER_AUDIT_SUCCESS_EXCLUDE | \ |
| | PER_USER_AUDIT_FAILURE_INCLUDE | \ |
| | PER_USER_AUDIT_FAILURE_EXCLUDE | \ |
| | PER_USER_AUDIT_NONE) |
| | |
| | // |
// The following structure corresponds to the PolicyAccountDomainInformation | | // The following structure corresponds to the PolicyAccountDomainInformation |
// information class. | | // information class. |
// | | // |
| | |
typedef struct _POLICY_ACCOUNT_DOMAIN_INFO { | | typedef struct _POLICY_ACCOUNT_DOMAIN_INFO { |
| | |
LSA_UNICODE_STRING DomainName; | | LSA_UNICODE_STRING DomainName; |
PSID DomainSid; | | PSID DomainSid; |
| | |
} POLICY_ACCOUNT_DOMAIN_INFO, *PPOLICY_ACCOUNT_DOMAIN_INFO; | | } POLICY_ACCOUNT_DOMAIN_INFO, *PPOLICY_ACCOUNT_DOMAIN_INFO; |
| | |
skipping to change at line 1170 | | skipping to change at line 2059 |
| | |
} POLICY_AUDIT_FULL_QUERY_INFO, *PPOLICY_AUDIT_FULL_QUERY_INFO; | | } POLICY_AUDIT_FULL_QUERY_INFO, *PPOLICY_AUDIT_FULL_QUERY_INFO; |
| | |
// | | // |
// The following data type defines the classes of Policy Information | | // The following data type defines the classes of Policy Information |
// that may be queried/set that has domain wide effect. | | // that may be queried/set that has domain wide effect. |
// | | // |
| | |
typedef enum _POLICY_DOMAIN_INFORMATION_CLASS { | | typedef enum _POLICY_DOMAIN_INFORMATION_CLASS { |
| | |
|
// PolicyDomainQualityOfServiceInformation, // value was used in W2K; no longer | | #if (_WIN32_WINNT <= 0x0500) |
supported | | PolicyDomainQualityOfServiceInformation = 1, |
| | #endif |
PolicyDomainEfsInformation = 2, | | PolicyDomainEfsInformation = 2, |
PolicyDomainKerberosTicketInformation | | PolicyDomainKerberosTicketInformation |
| | |
} POLICY_DOMAIN_INFORMATION_CLASS, *PPOLICY_DOMAIN_INFORMATION_CLASS; | | } POLICY_DOMAIN_INFORMATION_CLASS, *PPOLICY_DOMAIN_INFORMATION_CLASS; |
| | |
|
| | #if (_WIN32_WINNT < 0x0502) |
| | // |
| | // QualityOfService information. Corresponds to PolicyDomainQualityOfServiceInf |
| | ormation |
| | // |
| | |
| | #define POLICY_QOS_SCHANNEL_REQUIRED 0x00000001 |
| | #define POLICY_QOS_OUTBOUND_INTEGRITY 0x00000002 |
| | #define POLICY_QOS_OUTBOUND_CONFIDENTIALITY 0x00000004 |
| | #define POLICY_QOS_INBOUND_INTEGRITY 0x00000008 |
| | #define POLICY_QOS_INBOUND_CONFIDENTIALITY 0x00000010 |
| | #define POLICY_QOS_ALLOW_LOCAL_ROOT_CERT_STORE 0x00000020 |
| | #define POLICY_QOS_RAS_SERVER_ALLOWED 0x00000040 |
| | #define POLICY_QOS_DHCP_SERVER_ALLOWED 0x00000080 |
| | |
| | // |
| | // Bits 0x00000100 through 0xFFFFFFFF are reserved for future use. |
| | // |
| | #endif |
| | |
| | #if (_WIN32_WINNT == 0x0500) |
| | typedef struct _POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO { |
| | |
| | ULONG QualityOfService; |
| | |
| | } POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO, *PPOLICY_DOMAIN_QUALITY_OF_SERVICE_INFO |
| | ; |
| | // |
| | // where the members have the following usage: |
| | // |
| | // QualityOfService - Determines what specific QOS actions a machine should tak |
| | e |
| | // |
| | #endif |
| | |
// | | // |
// The following structure corresponds to the PolicyEfsInformation | | // The following structure corresponds to the PolicyEfsInformation |
// information class | | // information class |
// | | // |
| | |
typedef struct _POLICY_DOMAIN_EFS_INFO { | | typedef struct _POLICY_DOMAIN_EFS_INFO { |
| | |
ULONG InfoLength; | | ULONG InfoLength; |
PUCHAR EfsBlob; | | PUCHAR EfsBlob; |
| | |
| | |
skipping to change at line 1276 | | skipping to change at line 2199 |
TrustedPosixOffsetInformation, | | TrustedPosixOffsetInformation, |
TrustedPasswordInformation, | | TrustedPasswordInformation, |
TrustedDomainInformationBasic, | | TrustedDomainInformationBasic, |
TrustedDomainInformationEx, | | TrustedDomainInformationEx, |
TrustedDomainAuthInformation, | | TrustedDomainAuthInformation, |
TrustedDomainFullInformation, | | TrustedDomainFullInformation, |
TrustedDomainAuthInformationInternal, | | TrustedDomainAuthInformationInternal, |
TrustedDomainFullInformationInternal, | | TrustedDomainFullInformationInternal, |
TrustedDomainInformationEx2Internal, | | TrustedDomainInformationEx2Internal, |
TrustedDomainFullInformation2Internal, | | TrustedDomainFullInformation2Internal, |
|
| | TrustedDomainSupportedEncryptionTypes, |
} TRUSTED_INFORMATION_CLASS, *PTRUSTED_INFORMATION_CLASS; | | } TRUSTED_INFORMATION_CLASS, *PTRUSTED_INFORMATION_CLASS; |
| | |
// | | // |
// The following data type corresponds to the TrustedDomainNameInformation | | // The following data type corresponds to the TrustedDomainNameInformation |
// information class. | | // information class. |
// | | // |
| | |
typedef struct _TRUSTED_DOMAIN_NAME_INFO { | | typedef struct _TRUSTED_DOMAIN_NAME_INFO { |
| | |
LSA_UNICODE_STRING Name; | | LSA_UNICODE_STRING Name; |
| | |
skipping to change at line 1366 | | skipping to change at line 2289 |
// Direction of the trust | | // Direction of the trust |
// | | // |
#define TRUST_DIRECTION_DISABLED 0x00000000 | | #define TRUST_DIRECTION_DISABLED 0x00000000 |
#define TRUST_DIRECTION_INBOUND 0x00000001 | | #define TRUST_DIRECTION_INBOUND 0x00000001 |
#define TRUST_DIRECTION_OUTBOUND 0x00000002 | | #define TRUST_DIRECTION_OUTBOUND 0x00000002 |
#define TRUST_DIRECTION_BIDIRECTIONAL (TRUST_DIRECTION_INBOUND | TRUST_DIRECTI
ON_OUTBOUND) | | #define TRUST_DIRECTION_BIDIRECTIONAL (TRUST_DIRECTION_INBOUND | TRUST_DIRECTI
ON_OUTBOUND) |
| | |
#define TRUST_TYPE_DOWNLEVEL 0x00000001 // NT4 and before | | #define TRUST_TYPE_DOWNLEVEL 0x00000001 // NT4 and before |
#define TRUST_TYPE_UPLEVEL 0x00000002 // NT5 | | #define TRUST_TYPE_UPLEVEL 0x00000002 // NT5 |
#define TRUST_TYPE_MIT 0x00000003 // Trust with a MIT Kerberos
realm | | #define TRUST_TYPE_MIT 0x00000003 // Trust with a MIT Kerberos
realm |
|
// #define TRUST_TYPE_DCE 0x00000004 // Trust with a DCE realm | | |
| | #if (_WIN32_WINNT < 0x0502) |
| | #define TRUST_TYPE_DCE 0x00000004 // Trust with a DCE realm |
| | #endif |
| | |
// Levels 0x5 - 0x000FFFFF reserved for future use | | // Levels 0x5 - 0x000FFFFF reserved for future use |
// Provider specific trust levels are from 0x00100000 to 0xFFF00000 | | // Provider specific trust levels are from 0x00100000 to 0xFFF00000 |
| | |
|
#define TRUST_ATTRIBUTE_NON_TRANSITIVE 0x00000001 // Disallow transitivity | | #define TRUST_ATTRIBUTE_NON_TRANSITIVE 0x00000001 // Disallow tr |
#define TRUST_ATTRIBUTE_UPLEVEL_ONLY 0x00000002 // Trust link only valid | | ansitivity |
for uplevel client | | #define TRUST_ATTRIBUTE_UPLEVEL_ONLY 0x00000002 // Trust link |
#define TRUST_ATTRIBUTE_QUARANTINED_DOMAIN 0x00000004 // Used to quarantine dom | | only valid for uplevel client |
ains | | #if (_WIN32_WINNT == 0x0500) |
#define TRUST_ATTRIBUTE_FOREST_TRANSITIVE 0x00000008 // This link may contain | | #define TRUST_ATTRIBUTE_TREE_PARENT 0x00400000 // Denotes that we are setti |
forest trust information | | ng the trust |
#define TRUST_ATTRIBUTE_CROSS_ORGANIZATION 0x00000010 // This trust is to a dom | | // to our parent in the org |
ain/forest which is not part of this enterprise | | tree... |
#define TRUST_ATTRIBUTE_WITHIN_FOREST 0x00000020 // Trust is internal to t | | #define TRUST_ATTRIBUTE_TREE_ROOT 0x00800000 // Denotes that we are setti |
his forest | | ng the trust |
#define TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL 0x00000040 // Trust is to be treated | | // to another tree root in a |
as external for trust boundary purposes | | forest... |
#define TRUST_ATTRIBUTE_TRUST_USES_RC4_ENCRYPTION 0x00000080 // MIT trust wi | | // Trust attributes 0x00000004 through 0x004FFFFF reserved for future use |
th RC4 | | // Trust attributes 0x00F00000 through 0x00400000 are reserved for internal use |
| | // Trust attributes 0x01000000 through 0xFF000000 are reserved for user |
| | // defined values |
| | #define TRUST_ATTRIBUTES_VALID 0xFF02FFFF |
| | #endif |
| | |
| | #if (_WIN32_WINNT < 0x0502) |
| | #define TRUST_ATTRIBUTE_FILTER_SIDS 0x00000004 // Used to quarantine dom |
| | ains |
| | #else |
| | #define TRUST_ATTRIBUTE_QUARANTINED_DOMAIN 0x00000004 // Used to qua |
| | rantine domains |
| | #endif |
| | |
| | #if (_WIN32_WINNT >= 0x0501) |
| | #define TRUST_ATTRIBUTE_FOREST_TRANSITIVE 0x00000008 // This link m |
| | ay contain forest trust information |
| | #if (_WIN32_WINNT >= 0x0502) |
| | #define TRUST_ATTRIBUTE_CROSS_ORGANIZATION 0x00000010 // This trust |
| | is to a domain/forest which is not part of this enterprise |
| | #define TRUST_ATTRIBUTE_WITHIN_FOREST 0x00000020 // Trust is in |
| | ternal to this forest |
| | #define TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL 0x00000040 // Trust is to |
| | be treated as external for trust boundary purposes |
| | #if (_WIN32_WINNT >= 0x0600) |
| | #define TRUST_ATTRIBUTE_TRUST_USES_RC4_ENCRYPTION 0x00000080 // MIT trust w |
| | ith RC4 |
| | #define TRUST_ATTRIBUTE_TRUST_USES_AES_KEYS 0x00000100 // Use AES key |
| | s to encrypte KRB TGTs |
| | #endif |
// Trust attributes 0x00000040 through 0x00200000 are reserved for future use | | // Trust attributes 0x00000040 through 0x00200000 are reserved for future use |
|
| | #else |
| | // Trust attributes 0x00000010 through 0x00200000 are reserved for future use |
| | #endif |
// Trust attributes 0x00400000 through 0x00800000 were used previously (up to W2
K) and should not be re-used | | // Trust attributes 0x00400000 through 0x00800000 were used previously (up to W2
K) and should not be re-used |
// Trust attributes 0x01000000 through 0x80000000 are reserved for user | | // Trust attributes 0x01000000 through 0x80000000 are reserved for user |
#define TRUST_ATTRIBUTES_VALID 0xFF03FFFF | | #define TRUST_ATTRIBUTES_VALID 0xFF03FFFF |
|
| | #endif |
#define TRUST_ATTRIBUTES_USER 0xFF000000 | | #define TRUST_ATTRIBUTES_USER 0xFF000000 |
| | |
typedef struct _TRUSTED_DOMAIN_INFORMATION_EX { | | typedef struct _TRUSTED_DOMAIN_INFORMATION_EX { |
| | |
LSA_UNICODE_STRING Name; | | LSA_UNICODE_STRING Name; |
LSA_UNICODE_STRING FlatName; | | LSA_UNICODE_STRING FlatName; |
PSID Sid; | | PSID Sid; |
ULONG TrustDirection; | | ULONG TrustDirection; |
ULONG TrustType; | | ULONG TrustType; |
ULONG TrustAttributes; | | ULONG TrustAttributes; |
| | |
skipping to change at line 1454 | | skipping to change at line 2407 |
} TRUSTED_DOMAIN_FULL_INFORMATION, *PTRUSTED_DOMAIN_FULL_INFORMATION; | | } TRUSTED_DOMAIN_FULL_INFORMATION, *PTRUSTED_DOMAIN_FULL_INFORMATION; |
| | |
typedef struct _TRUSTED_DOMAIN_FULL_INFORMATION2 { | | typedef struct _TRUSTED_DOMAIN_FULL_INFORMATION2 { |
| | |
TRUSTED_DOMAIN_INFORMATION_EX2 Information; | | TRUSTED_DOMAIN_INFORMATION_EX2 Information; |
TRUSTED_POSIX_OFFSET_INFO PosixOffset; | | TRUSTED_POSIX_OFFSET_INFO PosixOffset; |
TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation; | | TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation; |
| | |
} TRUSTED_DOMAIN_FULL_INFORMATION2, *PTRUSTED_DOMAIN_FULL_INFORMATION2; | | } TRUSTED_DOMAIN_FULL_INFORMATION2, *PTRUSTED_DOMAIN_FULL_INFORMATION2; |
| | |
|
| | typedef struct _TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES { |
| | |
| | ULONG SupportedEncryptionTypes; |
| | |
| | } TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES, *PTRUSTED_DOMAIN_SUPPORTED_ENCRYPTI |
| | ON_TYPES; |
| | |
typedef enum { | | typedef enum { |
| | |
ForestTrustTopLevelName, | | ForestTrustTopLevelName, |
ForestTrustTopLevelNameEx, | | ForestTrustTopLevelNameEx, |
ForestTrustDomainInfo, | | ForestTrustDomainInfo, |
ForestTrustRecordTypeLast = ForestTrustDomainInfo | | ForestTrustRecordTypeLast = ForestTrustDomainInfo |
| | |
} LSA_FOREST_TRUST_RECORD_TYPE; | | } LSA_FOREST_TRUST_RECORD_TYPE; |
| | |
|
| | #if (_WIN32_WINNT < 0x0502) |
| | #define LSA_FOREST_TRUST_RECORD_TYPE_UNRECOGNIZED 0x80000000 |
| | #endif |
| | |
// | | // |
// Bottom 16 bits of the flags are reserved for disablement reasons | | // Bottom 16 bits of the flags are reserved for disablement reasons |
// | | // |
| | |
#define LSA_FTRECORD_DISABLED_REASONS ( 0x0000FFFFL ) | | #define LSA_FTRECORD_DISABLED_REASONS ( 0x0000FFFFL ) |
| | |
// | | // |
// Reasons for a top-level name forest trust record to be disabled | | // Reasons for a top-level name forest trust record to be disabled |
// | | // |
| | |
| | |
skipping to change at line 1498 | | skipping to change at line 2461 |
#ifdef MIDL_PASS | | #ifdef MIDL_PASS |
PISID Sid; | | PISID Sid; |
#else | | #else |
PSID Sid; | | PSID Sid; |
#endif | | #endif |
LSA_UNICODE_STRING DnsName; | | LSA_UNICODE_STRING DnsName; |
LSA_UNICODE_STRING NetbiosName; | | LSA_UNICODE_STRING NetbiosName; |
| | |
} LSA_FOREST_TRUST_DOMAIN_INFO, *PLSA_FOREST_TRUST_DOMAIN_INFO; | | } LSA_FOREST_TRUST_DOMAIN_INFO, *PLSA_FOREST_TRUST_DOMAIN_INFO; |
| | |
|
| | #if (_WIN32_WINNT >= 0x0502) |
// | | // |
// To prevent huge data to be passed in, we should put a limit on LSA_FOREST_TR
UST_BINARY_DATA. | | // To prevent huge data to be passed in, we should put a limit on LSA_FOREST_TR
UST_BINARY_DATA. |
// 128K is large enough that can't be reached in the near future, and small
enough not to | | // 128K is large enough that can't be reached in the near future, and small
enough not to |
// cause memory problems. | | // cause memory problems. |
| | |
#define MAX_FOREST_TRUST_BINARY_DATA_SIZE ( 128 * 1024 ) | | #define MAX_FOREST_TRUST_BINARY_DATA_SIZE ( 128 * 1024 ) |
|
| | #endif |
| | |
typedef struct _LSA_FOREST_TRUST_BINARY_DATA { | | typedef struct _LSA_FOREST_TRUST_BINARY_DATA { |
| | |
#ifdef MIDL_PASS | | #ifdef MIDL_PASS |
[range(0, MAX_FOREST_TRUST_BINARY_DATA_SIZE)] ULONG Length; | | [range(0, MAX_FOREST_TRUST_BINARY_DATA_SIZE)] ULONG Length; |
[size_is( Length )] PUCHAR Buffer; | | [size_is( Length )] PUCHAR Buffer; |
#else | | #else |
ULONG Length; | | ULONG Length; |
PUCHAR Buffer; | | PUCHAR Buffer; |
#endif | | #endif |
| | |
skipping to change at line 1543 | | skipping to change at line 2508 |
[default] LSA_FOREST_TRUST_BINARY_DATA Data; | | [default] LSA_FOREST_TRUST_BINARY_DATA Data; |
#else | | #else |
LSA_UNICODE_STRING TopLevelName; | | LSA_UNICODE_STRING TopLevelName; |
LSA_FOREST_TRUST_DOMAIN_INFO DomainInfo; | | LSA_FOREST_TRUST_DOMAIN_INFO DomainInfo; |
LSA_FOREST_TRUST_BINARY_DATA Data; // used for unrecognized types | | LSA_FOREST_TRUST_BINARY_DATA Data; // used for unrecognized types |
#endif | | #endif |
} ForestTrustData; | | } ForestTrustData; |
| | |
} LSA_FOREST_TRUST_RECORD, *PLSA_FOREST_TRUST_RECORD; | | } LSA_FOREST_TRUST_RECORD, *PLSA_FOREST_TRUST_RECORD; |
| | |
|
| | #if (_WIN32_WINNT >= 0x0502) |
// | | // |
// To prevent forest trust blobs of large size, number of records must be | | // To prevent forest trust blobs of large size, number of records must be |
// smaller than MAX_RECORDS_IN_FOREST_TRUST_INFO | | // smaller than MAX_RECORDS_IN_FOREST_TRUST_INFO |
// | | // |
| | |
#define MAX_RECORDS_IN_FOREST_TRUST_INFO 4000 | | #define MAX_RECORDS_IN_FOREST_TRUST_INFO 4000 |
|
| | #endif |
| | |
typedef struct _LSA_FOREST_TRUST_INFORMATION { | | typedef struct _LSA_FOREST_TRUST_INFORMATION { |
| | |
#ifdef MIDL_PASS | | #ifdef MIDL_PASS |
[range(0, MAX_RECORDS_IN_FOREST_TRUST_INFO)] ULONG RecordCount; | | [range(0, MAX_RECORDS_IN_FOREST_TRUST_INFO)] ULONG RecordCount; |
[size_is( RecordCount )] PLSA_FOREST_TRUST_RECORD * Entries; | | [size_is( RecordCount )] PLSA_FOREST_TRUST_RECORD * Entries; |
#else | | #else |
ULONG RecordCount; | | ULONG RecordCount; |
PLSA_FOREST_TRUST_RECORD * Entries; | | PLSA_FOREST_TRUST_RECORD * Entries; |
#endif | | #endif |
| | |
skipping to change at line 1622 | | skipping to change at line 2589 |
LsaFreeMemory( | | LsaFreeMemory( |
__in_opt PVOID Buffer | | __in_opt PVOID Buffer |
); | | ); |
| | |
NTSTATUS | | NTSTATUS |
NTAPI | | NTAPI |
LsaClose( | | LsaClose( |
__in LSA_HANDLE ObjectHandle | | __in LSA_HANDLE ObjectHandle |
); | | ); |
| | |
|
| | #if (_WIN32_WINNT >= 0x0600) |
| | |
| | typedef struct _LSA_LAST_INTER_LOGON_INFO { |
| | LARGE_INTEGER LastSuccessfulLogon; |
| | LARGE_INTEGER LastFailedLogon; |
| | ULONG FailedAttemptCountSinceLastSuccessfulLogon; |
| | } LSA_LAST_INTER_LOGON_INFO, *PLSA_LAST_INTER_LOGON_INFO; |
| | |
| | #endif |
| | |
| | #if (_WIN32_WINNT >= 0x0501) |
typedef struct _SECURITY_LOGON_SESSION_DATA { | | typedef struct _SECURITY_LOGON_SESSION_DATA { |
|
ULONG Size ; | | ULONG Size; |
LUID LogonId ; | | LUID LogonId; |
LSA_UNICODE_STRING UserName ; | | LSA_UNICODE_STRING UserName; |
LSA_UNICODE_STRING LogonDomain ; | | LSA_UNICODE_STRING LogonDomain; |
LSA_UNICODE_STRING AuthenticationPackage ; | | LSA_UNICODE_STRING AuthenticationPackage; |
ULONG LogonType ; | | ULONG LogonType; |
ULONG Session ; | | ULONG Session; |
PSID Sid ; | | PSID Sid; |
LARGE_INTEGER LogonTime ; | | LARGE_INTEGER LogonTime; |
| | |
// | | // |
// new for whistler: | | // new for whistler: |
// | | // |
| | |
|
LSA_UNICODE_STRING LogonServer ; | | LSA_UNICODE_STRING LogonServer; |
LSA_UNICODE_STRING DnsDomainName ; | | LSA_UNICODE_STRING DnsDomainName; |
LSA_UNICODE_STRING Upn ; | | LSA_UNICODE_STRING Upn; |
} SECURITY_LOGON_SESSION_DATA, * PSECURITY_LOGON_SESSION_DATA ; | | |
| | #if (_WIN32_WINNT >= 0x0600) |
| | |
| | // |
| | // new for LH |
| | // |
| | |
| | ULONG UserFlags; |
| | |
| | LSA_LAST_INTER_LOGON_INFO LastLogonInfo; |
| | LSA_UNICODE_STRING LogonScript; |
| | LSA_UNICODE_STRING ProfilePath; |
| | LSA_UNICODE_STRING HomeDirectory; |
| | LSA_UNICODE_STRING HomeDirectoryDrive; |
| | |
| | LARGE_INTEGER LogoffTime; |
| | LARGE_INTEGER KickOffTime; |
| | LARGE_INTEGER PasswordLastSet; |
| | LARGE_INTEGER PasswordCanChange; |
| | LARGE_INTEGER PasswordMustChange; |
| | |
| | #endif |
| | } SECURITY_LOGON_SESSION_DATA, * PSECURITY_LOGON_SESSION_DATA; |
| | |
NTSTATUS | | NTSTATUS |
NTAPI | | NTAPI |
LsaEnumerateLogonSessions( | | LsaEnumerateLogonSessions( |
|
__out PULONG LogonSessionCount, | | __out PULONG LogonSessionCount, |
__out PLUID * LogonSessionList | | __out PLUID * LogonSessionList |
); | | ); |
| | |
NTSTATUS | | NTSTATUS |
NTAPI | | NTAPI |
LsaGetLogonSessionData( | | LsaGetLogonSessionData( |
|
__in PLUID LogonId, | | __in PLUID LogonId, |
__out PSECURITY_LOGON_SESSION_DATA * ppLogonSessionData | | __out PSECURITY_LOGON_SESSION_DATA * ppLogonSessionData |
); | | ); |
| | |
|
| | #endif |
NTSTATUS | | NTSTATUS |
NTAPI | | NTAPI |
LsaOpenPolicy( | | LsaOpenPolicy( |
__in_opt PLSA_UNICODE_STRING SystemName, | | __in_opt PLSA_UNICODE_STRING SystemName, |
__in PLSA_OBJECT_ATTRIBUTES ObjectAttributes, | | __in PLSA_OBJECT_ATTRIBUTES ObjectAttributes, |
__in ACCESS_MASK DesiredAccess, | | __in ACCESS_MASK DesiredAccess, |
__out PLSA_HANDLE PolicyHandle | | __out PLSA_HANDLE PolicyHandle |
); | | ); |
| | |
NTSTATUS | | NTSTATUS |
| | |
skipping to change at line 1731 | | skipping to change at line 2732 |
NTSTATUS | | NTSTATUS |
NTAPI | | NTAPI |
LsaLookupNames( | | LsaLookupNames( |
__in LSA_HANDLE PolicyHandle, | | __in LSA_HANDLE PolicyHandle, |
__in ULONG Count, | | __in ULONG Count, |
__in PLSA_UNICODE_STRING Names, | | __in PLSA_UNICODE_STRING Names, |
__out PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains, | | __out PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains, |
__out PLSA_TRANSLATED_SID *Sids | | __out PLSA_TRANSLATED_SID *Sids |
); | | ); |
| | |
|
| | #if (_WIN32_WINNT >= 0x0501) |
NTSTATUS | | NTSTATUS |
NTAPI | | NTAPI |
LsaLookupNames2( | | LsaLookupNames2( |
__in LSA_HANDLE PolicyHandle, | | __in LSA_HANDLE PolicyHandle, |
__in ULONG Flags, // Reserved | | __in ULONG Flags, // Reserved |
__in ULONG Count, | | __in ULONG Count, |
__in PLSA_UNICODE_STRING Names, | | __in PLSA_UNICODE_STRING Names, |
__out PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains, | | __out PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains, |
__out PLSA_TRANSLATED_SID2 *Sids | | __out PLSA_TRANSLATED_SID2 *Sids |
); | | ); |
|
| | #endif |
| | |
NTSTATUS | | NTSTATUS |
NTAPI | | NTAPI |
LsaLookupSids( | | LsaLookupSids( |
__in LSA_HANDLE PolicyHandle, | | __in LSA_HANDLE PolicyHandle, |
__in ULONG Count, | | __in ULONG Count, |
__in PSID *Sids, | | __in PSID *Sids, |
__out PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains, | | __out PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains, |
__out PLSA_TRANSLATED_NAME *Names | | __out PLSA_TRANSLATED_NAME *Names |
); | | ); |
| | |
#define SE_INTERACTIVE_LOGON_NAME TEXT("SeInteractiveLogonRight") | | #define SE_INTERACTIVE_LOGON_NAME TEXT("SeInteractiveLogonRight") |
#define SE_NETWORK_LOGON_NAME TEXT("SeNetworkLogonRight") | | #define SE_NETWORK_LOGON_NAME TEXT("SeNetworkLogonRight") |
#define SE_BATCH_LOGON_NAME TEXT("SeBatchLogonRight") | | #define SE_BATCH_LOGON_NAME TEXT("SeBatchLogonRight") |
#define SE_SERVICE_LOGON_NAME TEXT("SeServiceLogonRight") | | #define SE_SERVICE_LOGON_NAME TEXT("SeServiceLogonRight") |
#define SE_DENY_INTERACTIVE_LOGON_NAME TEXT("SeDenyInteractiveLogonRight") | | #define SE_DENY_INTERACTIVE_LOGON_NAME TEXT("SeDenyInteractiveLogonRight") |
#define SE_DENY_NETWORK_LOGON_NAME TEXT("SeDenyNetworkLogonRight") | | #define SE_DENY_NETWORK_LOGON_NAME TEXT("SeDenyNetworkLogonRight") |
#define SE_DENY_BATCH_LOGON_NAME TEXT("SeDenyBatchLogonRight") | | #define SE_DENY_BATCH_LOGON_NAME TEXT("SeDenyBatchLogonRight") |
#define SE_DENY_SERVICE_LOGON_NAME TEXT("SeDenyServiceLogonRight") | | #define SE_DENY_SERVICE_LOGON_NAME TEXT("SeDenyServiceLogonRight") |
|
| | #if (_WIN32_WINNT >= 0x0501) |
#define SE_REMOTE_INTERACTIVE_LOGON_NAME TEXT("SeRemoteInteractiveLogonRight"
) | | #define SE_REMOTE_INTERACTIVE_LOGON_NAME TEXT("SeRemoteInteractiveLogonRight"
) |
#define SE_DENY_REMOTE_INTERACTIVE_LOGON_NAME TEXT("SeDenyRemoteInteractiveLogon
Right") | | #define SE_DENY_REMOTE_INTERACTIVE_LOGON_NAME TEXT("SeDenyRemoteInteractiveLogon
Right") |
|
| | #endif |
| | |
// | | // |
// This new API returns all the accounts with a certain privilege | | // This new API returns all the accounts with a certain privilege |
// | | // |
| | |
NTSTATUS | | NTSTATUS |
NTAPI | | NTAPI |
LsaEnumerateAccountsWithUserRight( | | LsaEnumerateAccountsWithUserRight( |
__in LSA_HANDLE PolicyHandle, | | __in LSA_HANDLE PolicyHandle, |
__in_opt PLSA_UNICODE_STRING UserRight, | | __in_opt PLSA_UNICODE_STRING UserRight, |
| | |
skipping to change at line 1887 | | skipping to change at line 2892 |
NTSTATUS | | NTSTATUS |
NTAPI | | NTAPI |
LsaCreateTrustedDomainEx( | | LsaCreateTrustedDomainEx( |
__in LSA_HANDLE PolicyHandle, | | __in LSA_HANDLE PolicyHandle, |
__in PTRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation, | | __in PTRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation, |
__in PTRUSTED_DOMAIN_AUTH_INFORMATION AuthenticationInformation, | | __in PTRUSTED_DOMAIN_AUTH_INFORMATION AuthenticationInformation, |
__in ACCESS_MASK DesiredAccess, | | __in ACCESS_MASK DesiredAccess, |
__out PLSA_HANDLE TrustedDomainHandle | | __out PLSA_HANDLE TrustedDomainHandle |
); | | ); |
| | |
|
| | #if (_WIN32_WINNT >= 0x0501) |
NTSTATUS | | NTSTATUS |
NTAPI | | NTAPI |
LsaQueryForestTrustInformation( | | LsaQueryForestTrustInformation( |
__in LSA_HANDLE PolicyHandle, | | __in LSA_HANDLE PolicyHandle, |
__in PLSA_UNICODE_STRING TrustedDomainName, | | __in PLSA_UNICODE_STRING TrustedDomainName, |
__out PLSA_FOREST_TRUST_INFORMATION * ForestTrustInfo | | __out PLSA_FOREST_TRUST_INFORMATION * ForestTrustInfo |
); | | ); |
| | |
NTSTATUS | | NTSTATUS |
NTAPI | | NTAPI |
| | |
skipping to change at line 1919 | | skipping to change at line 2925 |
NTSTATUS | | NTSTATUS |
NTAPI | | NTAPI |
LsaForestTrustFindMatch( | | LsaForestTrustFindMatch( |
__in LSA_HANDLE PolicyHandle, | | __in LSA_HANDLE PolicyHandle, |
__in ULONG Type, | | __in ULONG Type, |
__in PLSA_UNICODE_STRING Name, | | __in PLSA_UNICODE_STRING Name, |
__out PLSA_UNICODE_STRING * Match | | __out PLSA_UNICODE_STRING * Match |
); | | ); |
| | |
#endif | | #endif |
|
| | #endif |
| | |
// | | // |
// This API sets the workstation password (equivalent of setting/getting | | // This API sets the workstation password (equivalent of setting/getting |
// the SSI_SECRET_NAME secret) | | // the SSI_SECRET_NAME secret) |
// | | // |
| | |
NTSTATUS | | NTSTATUS |
NTAPI | | NTAPI |
LsaStorePrivateData( | | LsaStorePrivateData( |
__in LSA_HANDLE PolicyHandle, | | __in LSA_HANDLE PolicyHandle, |
| | |
skipping to change at line 1965 | | skipping to change at line 2972 |
// end_ntifs | | // end_ntifs |
| | |
// | | // |
// SPNEGO package stuff | | // SPNEGO package stuff |
// | | // |
| | |
enum NEGOTIATE_MESSAGES { | | enum NEGOTIATE_MESSAGES { |
NegEnumPackagePrefixes = 0, | | NegEnumPackagePrefixes = 0, |
NegGetCallerName = 1, | | NegGetCallerName = 1, |
NegCallPackageMax | | NegCallPackageMax |
|
} ; | | }; |
| | |
#define NEGOTIATE_MAX_PREFIX 32 | | #define NEGOTIATE_MAX_PREFIX 32 |
| | |
typedef struct _NEGOTIATE_PACKAGE_PREFIX { | | typedef struct _NEGOTIATE_PACKAGE_PREFIX { |
|
ULONG_PTR PackageId ; | | ULONG_PTR PackageId; |
PVOID PackageDataA ; | | PVOID PackageDataA; |
PVOID PackageDataW ; | | PVOID PackageDataW; |
ULONG_PTR PrefixLen ; | | ULONG_PTR PrefixLen; |
UCHAR Prefix[ NEGOTIATE_MAX_PREFIX ]; | | UCHAR Prefix[ NEGOTIATE_MAX_PREFIX ]; |
|
} NEGOTIATE_PACKAGE_PREFIX, * PNEGOTIATE_PACKAGE_PREFIX ; | | } NEGOTIATE_PACKAGE_PREFIX, * PNEGOTIATE_PACKAGE_PREFIX; |
| | |
typedef struct _NEGOTIATE_PACKAGE_PREFIXES { | | typedef struct _NEGOTIATE_PACKAGE_PREFIXES { |
|
ULONG MessageType ; | | ULONG MessageType; |
ULONG PrefixCount ; | | ULONG PrefixCount; |
ULONG Offset ; // Offset to array of _PREFIX above | | ULONG Offset; // Offset to array of _PREFIX above |
ULONG Pad ; // Align structure for 64-bit | | #if(_WIN32_WINNT >= 0x0502) |
} NEGOTIATE_PACKAGE_PREFIXES, *PNEGOTIATE_PACKAGE_PREFIXES ; | | ULONG Pad; // Align structure for 64-bit |
| | #endif |
| | } NEGOTIATE_PACKAGE_PREFIXES, *PNEGOTIATE_PACKAGE_PREFIXES; |
| | |
typedef struct _NEGOTIATE_CALLER_NAME_REQUEST { | | typedef struct _NEGOTIATE_CALLER_NAME_REQUEST { |
|
ULONG MessageType ; | | ULONG MessageType; |
LUID LogonId ; | | LUID LogonId; |
} NEGOTIATE_CALLER_NAME_REQUEST, *PNEGOTIATE_CALLER_NAME_REQUEST ; | | } NEGOTIATE_CALLER_NAME_REQUEST, *PNEGOTIATE_CALLER_NAME_REQUEST; |
| | |
typedef struct _NEGOTIATE_CALLER_NAME_RESPONSE { | | typedef struct _NEGOTIATE_CALLER_NAME_RESPONSE { |
|
ULONG MessageType ; | | ULONG MessageType; |
PWSTR CallerName ; | | PWSTR CallerName; |
} NEGOTIATE_CALLER_NAME_RESPONSE, * PNEGOTIATE_CALLER_NAME_RESPONSE ; | | } NEGOTIATE_CALLER_NAME_RESPONSE, * PNEGOTIATE_CALLER_NAME_RESPONSE; |
| | |
#ifndef _NTDEF_ | | #ifndef _NTDEF_ |
typedef LSA_UNICODE_STRING UNICODE_STRING, *PUNICODE_STRING; | | typedef LSA_UNICODE_STRING UNICODE_STRING, *PUNICODE_STRING; |
typedef LSA_STRING STRING, *PSTRING ; | | typedef LSA_STRING STRING, *PSTRING ; |
#endif | | #endif |
| | |
#ifndef _DOMAIN_PASSWORD_INFORMATION_DEFINED | | #ifndef _DOMAIN_PASSWORD_INFORMATION_DEFINED |
#define _DOMAIN_PASSWORD_INFORMATION_DEFINED | | #define _DOMAIN_PASSWORD_INFORMATION_DEFINED |
typedef struct _DOMAIN_PASSWORD_INFORMATION { | | typedef struct _DOMAIN_PASSWORD_INFORMATION { |
USHORT MinPasswordLength; | | USHORT MinPasswordLength; |
| | |
skipping to change at line 2015 | | skipping to change at line 3024 |
#if defined(MIDL_PASS) | | #if defined(MIDL_PASS) |
OLD_LARGE_INTEGER MaxPasswordAge; | | OLD_LARGE_INTEGER MaxPasswordAge; |
OLD_LARGE_INTEGER MinPasswordAge; | | OLD_LARGE_INTEGER MinPasswordAge; |
#else | | #else |
LARGE_INTEGER MaxPasswordAge; | | LARGE_INTEGER MaxPasswordAge; |
LARGE_INTEGER MinPasswordAge; | | LARGE_INTEGER MinPasswordAge; |
#endif | | #endif |
} DOMAIN_PASSWORD_INFORMATION, *PDOMAIN_PASSWORD_INFORMATION; | | } DOMAIN_PASSWORD_INFORMATION, *PDOMAIN_PASSWORD_INFORMATION; |
#endif | | #endif |
| | |
|
| | #if (_WIN32_WINNT >= 0x0501) |
// | | // |
// PasswordProperties flags | | // PasswordProperties flags |
// | | // |
| | |
#define DOMAIN_PASSWORD_COMPLEX 0x00000001L | | #define DOMAIN_PASSWORD_COMPLEX 0x00000001L |
#define DOMAIN_PASSWORD_NO_ANON_CHANGE 0x00000002L | | #define DOMAIN_PASSWORD_NO_ANON_CHANGE 0x00000002L |
#define DOMAIN_PASSWORD_NO_CLEAR_CHANGE 0x00000004L | | #define DOMAIN_PASSWORD_NO_CLEAR_CHANGE 0x00000004L |
#define DOMAIN_LOCKOUT_ADMINS 0x00000008L | | #define DOMAIN_LOCKOUT_ADMINS 0x00000008L |
#define DOMAIN_PASSWORD_STORE_CLEARTEXT 0x00000010L | | #define DOMAIN_PASSWORD_STORE_CLEARTEXT 0x00000010L |
#define DOMAIN_REFUSE_PASSWORD_CHANGE 0x00000020L | | #define DOMAIN_REFUSE_PASSWORD_CHANGE 0x00000020L |
|
| | #if(_WIN32_WINNT >= 0x0502) |
| | #define DOMAIN_NO_LM_OWF_CHANGE 0x00000040L |
| | #endif |
| | #endif |
| | |
#ifndef _PASSWORD_NOTIFICATION_DEFINED | | #ifndef _PASSWORD_NOTIFICATION_DEFINED |
#define _PASSWORD_NOTIFICATION_DEFINED | | #define _PASSWORD_NOTIFICATION_DEFINED |
typedef NTSTATUS (*PSAM_PASSWORD_NOTIFICATION_ROUTINE) ( | | typedef NTSTATUS (*PSAM_PASSWORD_NOTIFICATION_ROUTINE) ( |
PUNICODE_STRING UserName, | | PUNICODE_STRING UserName, |
ULONG RelativeId, | | ULONG RelativeId, |
PUNICODE_STRING NewPassword | | PUNICODE_STRING NewPassword |
); | | ); |
| | |
#define SAM_PASSWORD_CHANGE_NOTIFY_ROUTINE "PasswordChangeNotify" | | #define SAM_PASSWORD_CHANGE_NOTIFY_ROUTINE "PasswordChangeNotify" |
| | |
skipping to change at line 2097 | | skipping to change at line 3111 |
| | |
// | | // |
// MSV1.0 LsaLogonUser() submission message types. | | // MSV1.0 LsaLogonUser() submission message types. |
// | | // |
| | |
typedef enum _MSV1_0_LOGON_SUBMIT_TYPE { | | typedef enum _MSV1_0_LOGON_SUBMIT_TYPE { |
MsV1_0InteractiveLogon = 2, | | MsV1_0InteractiveLogon = 2, |
MsV1_0Lm20Logon, | | MsV1_0Lm20Logon, |
MsV1_0NetworkLogon, | | MsV1_0NetworkLogon, |
MsV1_0SubAuthLogon, | | MsV1_0SubAuthLogon, |
|
MsV1_0WorkstationUnlockLogon = 7 | | MsV1_0WorkstationUnlockLogon = 7, |
| | // defined in Longhorn and up |
| | MsV1_0S4ULogon = 12, |
} MSV1_0_LOGON_SUBMIT_TYPE, *PMSV1_0_LOGON_SUBMIT_TYPE; | | } MSV1_0_LOGON_SUBMIT_TYPE, *PMSV1_0_LOGON_SUBMIT_TYPE; |
| | |
// | | // |
// MSV1.0 LsaLogonUser() profile buffer types. | | // MSV1.0 LsaLogonUser() profile buffer types. |
// | | // |
| | |
typedef enum _MSV1_0_PROFILE_BUFFER_TYPE { | | typedef enum _MSV1_0_PROFILE_BUFFER_TYPE { |
MsV1_0InteractiveProfile = 2, | | MsV1_0InteractiveProfile = 2, |
MsV1_0Lm20LogonProfile, | | MsV1_0Lm20LogonProfile, |
MsV1_0SmartCardProfile | | MsV1_0SmartCardProfile |
| | |
skipping to change at line 2236 | | skipping to change at line 3252 |
#define MSV1_0_DONT_TRY_GUEST_ACCOUNT 0x10 | | #define MSV1_0_DONT_TRY_GUEST_ACCOUNT 0x10 |
#define MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT 0x20 | | #define MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT 0x20 |
#define MSV1_0_RETURN_PASSWORD_EXPIRY 0x40 | | #define MSV1_0_RETURN_PASSWORD_EXPIRY 0x40 |
// this next flag says that CaseInsensitiveChallengeResponse | | // this next flag says that CaseInsensitiveChallengeResponse |
// (aka LmResponse) contains a client challenge in the first 8 bytes | | // (aka LmResponse) contains a client challenge in the first 8 bytes |
#define MSV1_0_USE_CLIENT_CHALLENGE 0x80 | | #define MSV1_0_USE_CLIENT_CHALLENGE 0x80 |
#define MSV1_0_TRY_GUEST_ACCOUNT_ONLY 0x100 | | #define MSV1_0_TRY_GUEST_ACCOUNT_ONLY 0x100 |
#define MSV1_0_RETURN_PROFILE_PATH 0x200 | | #define MSV1_0_RETURN_PROFILE_PATH 0x200 |
#define MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY 0x400 | | #define MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY 0x400 |
#define MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT 0x800 | | #define MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT 0x800 |
|
| | //#if (_WIN32_WINNT >= 0x0501) -- Disabled until IIS fixes their target version. |
#define MSV1_0_DISABLE_PERSONAL_FALLBACK 0x00001000 | | #define MSV1_0_DISABLE_PERSONAL_FALLBACK 0x00001000 |
#define MSV1_0_ALLOW_FORCE_GUEST 0x00002000 | | #define MSV1_0_ALLOW_FORCE_GUEST 0x00002000 |
|
| | //#endif |
| | #if (_WIN32_WINNT >= 0x0502) |
#define MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED 0x00004000 | | #define MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED 0x00004000 |
|
| | // Start |
| | // Doesnt exist in Windows XP but does exist in Windows 2000 Security Rollup and |
| | up |
#define MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY 0x00008000 | | #define MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY 0x00008000 |
|
| | #endif |
#define MSV1_0_SUBAUTHENTICATION_DLL_EX 0x00100000 | | #define MSV1_0_SUBAUTHENTICATION_DLL_EX 0x00100000 |
|
| | // Defined in Windows Server 2003 SP1 and above |
#define MSV1_0_ALLOW_MSVCHAPV2 0x00010000 | | #define MSV1_0_ALLOW_MSVCHAPV2 0x00010000 |
| | |
|
| | #if (_WIN32_WINNT >= 0x0600) |
| | |
| | //Defined in Longhorn and up |
| | #define MSV1_0_S4U2SELF 0x00020000 // no password is needed |
| | #define MSV1_0_CHECK_LOGONHOURS_FOR_S4U 0x00040000 // check logon hours for |
| | S4U logon |
| | |
| | #endif |
| | |
// | | // |
// The high order byte is a value indicating the SubAuthentication DLL. | | // The high order byte is a value indicating the SubAuthentication DLL. |
// Zero indicates no SubAuthentication DLL. | | // Zero indicates no SubAuthentication DLL. |
// | | // |
#define MSV1_0_SUBAUTHENTICATION_DLL 0xFF000000 | | #define MSV1_0_SUBAUTHENTICATION_DLL 0xFF000000 |
#define MSV1_0_SUBAUTHENTICATION_DLL_SHIFT 24 | | #define MSV1_0_SUBAUTHENTICATION_DLL_SHIFT 24 |
#define MSV1_0_MNS_LOGON 0x01000000 | | #define MSV1_0_MNS_LOGON 0x01000000 |
| | |
// | | // |
// This is the list of subauthentication dlls used in MS | | // This is the list of subauthentication dlls used in MS |
| | |
skipping to change at line 2285 | | skipping to change at line 3316 |
UNICODE_STRING LogonDomainName; | | UNICODE_STRING LogonDomainName; |
UNICODE_STRING UserName; | | UNICODE_STRING UserName; |
UNICODE_STRING Workstation; | | UNICODE_STRING Workstation; |
UCHAR ChallengeToClient[MSV1_0_CHALLENGE_LENGTH]; | | UCHAR ChallengeToClient[MSV1_0_CHALLENGE_LENGTH]; |
STRING AuthenticationInfo1; | | STRING AuthenticationInfo1; |
STRING AuthenticationInfo2; | | STRING AuthenticationInfo2; |
ULONG ParameterControl; | | ULONG ParameterControl; |
ULONG SubAuthPackageId; | | ULONG SubAuthPackageId; |
} MSV1_0_SUBAUTH_LOGON, * PMSV1_0_SUBAUTH_LOGON; | | } MSV1_0_SUBAUTH_LOGON, * PMSV1_0_SUBAUTH_LOGON; |
| | |
|
| | #if (_WIN32_WINNT >= 0x0600) |
| | |
| | // |
| | // s4u2self logon |
| | // |
| | // Defined in Longhorn and above |
| | |
| | // |
| | // request to enforce logon hours policy |
| | // |
| | |
| | #define MSV1_0_S4U_LOGON_FLAG_CHECK_LOGONHOURS 0x2 |
| | |
| | typedef struct _MSV1_0_S4U_LOGON { |
| | MSV1_0_LOGON_SUBMIT_TYPE MessageType; |
| | ULONG Flags; |
| | UNICODE_STRING UserPrincipalName; // username or username@domain |
| | UNICODE_STRING DomainName; // Optional: if missing, using the local machine |
| | } MSV1_0_S4U_LOGON, *PMSV1_0_S4U_LOGON; |
| | |
| | #endif |
| | |
// | | // |
// Values for UserFlags. | | // Values for UserFlags. |
// | | // |
| | |
#define LOGON_GUEST 0x01 | | #define LOGON_GUEST 0x01 |
#define LOGON_NOENCRYPTION 0x02 | | #define LOGON_NOENCRYPTION 0x02 |
#define LOGON_CACHED_ACCOUNT 0x04 | | #define LOGON_CACHED_ACCOUNT 0x04 |
#define LOGON_USED_LM_PASSWORD 0x08 | | #define LOGON_USED_LM_PASSWORD 0x08 |
#define LOGON_EXTRA_SIDS 0x20 | | #define LOGON_EXTRA_SIDS 0x20 |
#define LOGON_SUBAUTH_SESSION_KEY 0x40 | | #define LOGON_SUBAUTH_SESSION_KEY 0x40 |
#define LOGON_SERVER_TRUST_ACCOUNT 0x80 | | #define LOGON_SERVER_TRUST_ACCOUNT 0x80 |
#define LOGON_NTLMV2_ENABLED 0x100 // says DC understands NTLMv2 | | #define LOGON_NTLMV2_ENABLED 0x100 // says DC understands NTLMv2 |
#define LOGON_RESOURCE_GROUPS 0x200 | | #define LOGON_RESOURCE_GROUPS 0x200 |
#define LOGON_PROFILE_PATH_RETURNED 0x400 | | #define LOGON_PROFILE_PATH_RETURNED 0x400 |
|
| | // Defined in Longhorn and above |
| | #define LOGON_NT_V2 0x800 // NT response was used for validati |
| | on |
| | #define LOGON_LM_V2 0x1000 // LM response was used for validati |
| | on |
| | #define LOGON_NTLM_V2 0x2000 // LM response was used to authentic |
| | ate but NT response was used to derive the session key |
| | |
| | #if (_WIN32_WINNT >= 0x0600) |
| | |
| | #define LOGON_OPTIMIZED 0x4000 // this is an optimized logon |
| | #define LOGON_WINLOGON 0x8000 // the logon session was created for |
| | winlogon |
| | #define LOGON_PKINIT 0x10000 // Kerberos PKINIT extension was use |
| | d to authenticate the user |
| | #define LOGON_NO_OPTIMIZED 0x20000 // optimized logon has been disabled |
| | for this account |
| | |
| | #endif |
| | |
// | | // |
// The high order byte is reserved for return by SubAuthentication DLLs. | | // The high order byte is reserved for return by SubAuthentication DLLs. |
// | | // |
| | |
#define MSV1_0_SUBAUTHENTICATION_FLAGS 0xFF000000 | | #define MSV1_0_SUBAUTHENTICATION_FLAGS 0xFF000000 |
| | |
// Values returned by the MSV1_0_MNS_LOGON SubAuthentication DLL | | // Values returned by the MSV1_0_MNS_LOGON SubAuthentication DLL |
#define LOGON_GRACE_LOGON 0x01000000 | | #define LOGON_GRACE_LOGON 0x01000000 |
| | |
| | |
skipping to change at line 2349 | | skipping to change at line 3415 |
// NTLM3 definitions. | | // NTLM3 definitions. |
// | | // |
| | |
#define MSV1_0_NTLM3_RESPONSE_LENGTH 16 | | #define MSV1_0_NTLM3_RESPONSE_LENGTH 16 |
#define MSV1_0_NTLM3_OWF_LENGTH 16 | | #define MSV1_0_NTLM3_OWF_LENGTH 16 |
| | |
// | | // |
// this is the longest amount of time we'll allow challenge response | | // this is the longest amount of time we'll allow challenge response |
// pairs to be used. Note that this also has to allow for worst case clock skew | | // pairs to be used. Note that this also has to allow for worst case clock skew |
// | | // |
|
| | #if (_WIN32_WINNT == 0x0500) |
| | #define MSV1_0_MAX_NTLM3_LIFE 1800 // 30 minutes (in seconds) |
| | #else |
#define MSV1_0_MAX_NTLM3_LIFE 129600 // 36 hours (in seconds) | | #define MSV1_0_MAX_NTLM3_LIFE 129600 // 36 hours (in seconds) |
|
| | #endif |
#define MSV1_0_MAX_AVL_SIZE 64000 | | #define MSV1_0_MAX_AVL_SIZE 64000 |
| | |
|
| | #if (_WIN32_WINNT >= 0x0501) |
// | | // |
// MsvAvFlags bit values | | // MsvAvFlags bit values |
// | | // |
|
| | // Exists only after Windows 2000 |
| | // |
| | |
|
#define MSV1_0_AV_FLAG_FORCE_GUEST 0x00000001 | | #define MSV1_0_AV_FLAG_FORCE_GUEST 0x00000001 |
| | #if (_WIN32_WINNT >= 0x0600) |
| | #define MSV1_0_AV_FLAG_MIC_HANDSHAKE_MESSAGES 0x00000002 // the client sup |
| | ports |
| | // hand-shake mes |
| | sages integrity |
| | #endif |
| | #endif |
| | |
// this is an MSV1_0 private data structure, defining the layout of an NTLM3 res
ponse, as sent by a | | // this is an MSV1_0 private data structure, defining the layout of an NTLM3 res
ponse, as sent by a |
// client in the NtChallengeResponse field of the NETLOGON_NETWORK_INFO structu
re. If can be differentiated | | // client in the NtChallengeResponse field of the NETLOGON_NETWORK_INFO structu
re. If can be differentiated |
// from an old style NT response by its length. This is crude, but it needs to
pass through servers and | | // from an old style NT response by its length. This is crude, but it needs to
pass through servers and |
// the servers' DCs that do not understand NTLM3 but that are willing to pass l
onger responses. | | // the servers' DCs that do not understand NTLM3 but that are willing to pass l
onger responses. |
typedef struct _MSV1_0_NTLM3_RESPONSE { | | typedef struct _MSV1_0_NTLM3_RESPONSE { |
UCHAR Response[MSV1_0_NTLM3_RESPONSE_LENGTH]; // hash of OWF of password wit
h all the following fields | | UCHAR Response[MSV1_0_NTLM3_RESPONSE_LENGTH]; // hash of OWF of password wit
h all the following fields |
UCHAR RespType; // id number of response; current is 1 | | UCHAR RespType; // id number of response; current is 1 |
UCHAR HiRespType; // highest id number understood by client | | UCHAR HiRespType; // highest id number understood by client |
USHORT Flags; // reserved; must be sent as zero at this version | | USHORT Flags; // reserved; must be sent as zero at this version |
ULONG MsgWord; // 32 bit message from client to server (for use by auth
protocol) | | ULONG MsgWord; // 32 bit message from client to server (for use by auth
protocol) |
ULONGLONG TimeStamp; // time stamp when client generated response -- NT s
ystem time, quad part | | ULONGLONG TimeStamp; // time stamp when client generated response -- NT s
ystem time, quad part |
UCHAR ChallengeFromClient[MSV1_0_CHALLENGE_LENGTH]; | | UCHAR ChallengeFromClient[MSV1_0_CHALLENGE_LENGTH]; |
ULONG AvPairsOff; // offset to start of AvPairs (to allow future expansion
) | | ULONG AvPairsOff; // offset to start of AvPairs (to allow future expansion
) |
UCHAR Buffer[1]; // start of buffer with AV pairs (or future stuff -- so
use the offset) | | UCHAR Buffer[1]; // start of buffer with AV pairs (or future stuff -- so
use the offset) |
} MSV1_0_NTLM3_RESPONSE, *PMSV1_0_NTLM3_RESPONSE; | | } MSV1_0_NTLM3_RESPONSE, *PMSV1_0_NTLM3_RESPONSE; |
| | |
#define MSV1_0_NTLM3_INPUT_LENGTH (sizeof(MSV1_0_NTLM3_RESPONSE) - MSV1_0_NTLM3_
RESPONSE_LENGTH) | | #define MSV1_0_NTLM3_INPUT_LENGTH (sizeof(MSV1_0_NTLM3_RESPONSE) - MSV1_0_NTLM3_
RESPONSE_LENGTH) |
|
| | #if(_WIN32_WINNT >= 0x0502) |
#define MSV1_0_NTLM3_MIN_NT_RESPONSE_LENGTH RTL_SIZEOF_THROUGH_FIELD(MSV1_0_NTLM
3_RESPONSE, AvPairsOff) | | #define MSV1_0_NTLM3_MIN_NT_RESPONSE_LENGTH RTL_SIZEOF_THROUGH_FIELD(MSV1_0_NTLM
3_RESPONSE, AvPairsOff) |
|
| | #endif |
| | |
typedef enum { | | typedef enum { |
MsvAvEOL, // end of list | | MsvAvEOL, // end of list |
MsvAvNbComputerName, // server's computer name -- NetBIOS | | MsvAvNbComputerName, // server's computer name -- NetBIOS |
MsvAvNbDomainName, // server's domain name -- NetBIOS | | MsvAvNbDomainName, // server's domain name -- NetBIOS |
MsvAvDnsComputerName, // server's computer name -- DNS | | MsvAvDnsComputerName, // server's computer name -- DNS |
MsvAvDnsDomainName, // server's domain name -- DNS | | MsvAvDnsDomainName, // server's domain name -- DNS |
|
| | #if (_WIN32_WINNT >= 0x0501) |
MsvAvDnsTreeName, // server's tree name -- DNS | | MsvAvDnsTreeName, // server's tree name -- DNS |
|
MsvAvFlags // server's extended flags -- DWORD mask | | MsvAvFlags, // server's extended flags -- DWORD mask |
| | #if (_WIN32_WINNT >= 0x0600) |
| | MsvAvTimestamp, // contains the server's local time in FILETIME, |
| | // (64 bit 100 ns ticks since 1602 |
| | // (UTC)) in little endian byte order |
| | MsvAvRestrictions, // token restrictions |
| | #endif |
| | #endif |
} MSV1_0_AVID; | | } MSV1_0_AVID; |
| | |
typedef struct _MSV1_0_AV_PAIR { | | typedef struct _MSV1_0_AV_PAIR { |
USHORT AvId; | | USHORT AvId; |
USHORT AvLen; | | USHORT AvLen; |
// Data is treated as byte array following structure | | // Data is treated as byte array following structure |
} MSV1_0_AV_PAIR, *PMSV1_0_AV_PAIR; | | } MSV1_0_AV_PAIR, *PMSV1_0_AV_PAIR; |
/////////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////////// |
// // | | // // |
// CALL PACKAGE Related Data Structures // | | // CALL PACKAGE Related Data Structures // |
| | |
skipping to change at line 2416 | | skipping to change at line 3504 |
MsV1_0EnumerateUsers, // Both submission and response | | MsV1_0EnumerateUsers, // Both submission and response |
MsV1_0GetUserInfo, // Both submission and response | | MsV1_0GetUserInfo, // Both submission and response |
MsV1_0ReLogonUsers, // Submission only | | MsV1_0ReLogonUsers, // Submission only |
MsV1_0ChangePassword, // Both submission and response | | MsV1_0ChangePassword, // Both submission and response |
MsV1_0ChangeCachedPassword, // Both submission and response | | MsV1_0ChangeCachedPassword, // Both submission and response |
MsV1_0GenericPassthrough, // Both submission and response | | MsV1_0GenericPassthrough, // Both submission and response |
MsV1_0CacheLogon, // Submission only, no response | | MsV1_0CacheLogon, // Submission only, no response |
MsV1_0SubAuth, // Both submission and response | | MsV1_0SubAuth, // Both submission and response |
MsV1_0DeriveCredential, // Both submission and response | | MsV1_0DeriveCredential, // Both submission and response |
MsV1_0CacheLookup, // Both submission and response | | MsV1_0CacheLookup, // Both submission and response |
|
| | #if (_WIN32_WINNT >= 0x0501) |
MsV1_0SetProcessOption, // Submission only, no response | | MsV1_0SetProcessOption, // Submission only, no response |
|
| | #endif |
| | #if (_WIN32_WINNT >= 0x0600) |
| | MsV1_0ConfigLocalAliases, |
| | #endif |
} MSV1_0_PROTOCOL_MESSAGE_TYPE, *PMSV1_0_PROTOCOL_MESSAGE_TYPE; | | } MSV1_0_PROTOCOL_MESSAGE_TYPE, *PMSV1_0_PROTOCOL_MESSAGE_TYPE; |
| | |
typedef struct _MSV1_0_CHANGEPASSWORD_REQUEST { | | typedef struct _MSV1_0_CHANGEPASSWORD_REQUEST { |
MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; | | MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; |
UNICODE_STRING DomainName; | | UNICODE_STRING DomainName; |
UNICODE_STRING AccountName; | | UNICODE_STRING AccountName; |
UNICODE_STRING OldPassword; | | UNICODE_STRING OldPassword; |
UNICODE_STRING NewPassword; | | UNICODE_STRING NewPassword; |
BOOLEAN Impersonating; | | BOOLEAN Impersonating; |
} MSV1_0_CHANGEPASSWORD_REQUEST, *PMSV1_0_CHANGEPASSWORD_REQUEST; | | } MSV1_0_CHANGEPASSWORD_REQUEST, *PMSV1_0_CHANGEPASSWORD_REQUEST; |
| | |
typedef struct _MSV1_0_CHANGEPASSWORD_RESPONSE { | | typedef struct _MSV1_0_CHANGEPASSWORD_RESPONSE { |
MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; | | MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; |
BOOLEAN PasswordInfoValid; | | BOOLEAN PasswordInfoValid; |
DOMAIN_PASSWORD_INFORMATION DomainPasswordInfo; | | DOMAIN_PASSWORD_INFORMATION DomainPasswordInfo; |
} MSV1_0_CHANGEPASSWORD_RESPONSE, *PMSV1_0_CHANGEPASSWORD_RESPONSE; | | } MSV1_0_CHANGEPASSWORD_RESPONSE, *PMSV1_0_CHANGEPASSWORD_RESPONSE; |
| | |
|
| | #if(_WIN32_WINNT >= 0x0502) |
// | | // |
// MsV1_0GenericPassthrough - for remoting a CallPackage to | | // MsV1_0GenericPassthrough - for remoting a CallPackage to |
// a domain controller on the specified domain | | // a domain controller on the specified domain |
// | | // |
| | |
typedef struct _MSV1_0_PASSTHROUGH_REQUEST { | | typedef struct _MSV1_0_PASSTHROUGH_REQUEST { |
MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; | | MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; |
UNICODE_STRING DomainName; | | UNICODE_STRING DomainName; |
UNICODE_STRING PackageName; | | UNICODE_STRING PackageName; |
ULONG DataLength; | | ULONG DataLength; |
PUCHAR LogonData; | | PUCHAR LogonData; |
ULONG Pad ; | | ULONG Pad ; |
} MSV1_0_PASSTHROUGH_REQUEST, *PMSV1_0_PASSTHROUGH_REQUEST; | | } MSV1_0_PASSTHROUGH_REQUEST, *PMSV1_0_PASSTHROUGH_REQUEST; |
| | |
typedef struct _MSV1_0_PASSTHROUGH_RESPONSE { | | typedef struct _MSV1_0_PASSTHROUGH_RESPONSE { |
MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; | | MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; |
ULONG Pad; | | ULONG Pad; |
ULONG DataLength; | | ULONG DataLength; |
PUCHAR ValidationData; | | PUCHAR ValidationData; |
} MSV1_0_PASSTHROUGH_RESPONSE, *PMSV1_0_PASSTHROUGH_RESPONSE; | | } MSV1_0_PASSTHROUGH_RESPONSE, *PMSV1_0_PASSTHROUGH_RESPONSE; |
|
| | #endif |
| | |
// | | // |
// MsV1_0SubAuthInfo submit buffer and response - for submitting a buffer to a | | // MsV1_0SubAuthInfo submit buffer and response - for submitting a buffer to a |
// specified Subauthentication Package during an LsaCallAuthenticationPackage(). | | // specified Subauthentication Package during an LsaCallAuthenticationPackage(). |
// If this Subauthentication is to be done locally, then package this message | | // If this Subauthentication is to be done locally, then package this message |
// in LsaCallAuthenticationPackage(). If this SubAuthentication needs to be done | | // in LsaCallAuthenticationPackage(). If this SubAuthentication needs to be done |
// on the domain controller, then call LsaCallauthenticationPackage with the | | // on the domain controller, then call LsaCallauthenticationPackage with the |
// message type being MsV1_0GenericPassThrough and the LogonData in this struct | | // message type being MsV1_0GenericPassThrough and the LogonData in this struct |
// should be a PMSV1_0_SUBAUTH_REQUEST | | // should be a PMSV1_0_SUBAUTH_REQUEST |
// | | // |
| | |
skipping to change at line 2478 | | skipping to change at line 3573 |
ULONG SubAuthInfoLength; | | ULONG SubAuthInfoLength; |
PUCHAR SubAuthSubmitBuffer; | | PUCHAR SubAuthSubmitBuffer; |
} MSV1_0_SUBAUTH_REQUEST, *PMSV1_0_SUBAUTH_REQUEST; | | } MSV1_0_SUBAUTH_REQUEST, *PMSV1_0_SUBAUTH_REQUEST; |
| | |
typedef struct _MSV1_0_SUBAUTH_RESPONSE{ | | typedef struct _MSV1_0_SUBAUTH_RESPONSE{ |
MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; | | MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; |
ULONG SubAuthInfoLength; | | ULONG SubAuthInfoLength; |
PUCHAR SubAuthReturnBuffer; | | PUCHAR SubAuthReturnBuffer; |
} MSV1_0_SUBAUTH_RESPONSE, *PMSV1_0_SUBAUTH_RESPONSE; | | } MSV1_0_SUBAUTH_RESPONSE, *PMSV1_0_SUBAUTH_RESPONSE; |
| | |
|
| | #if(_WIN32_WINNT >= 0x0501) |
#define RtlGenRandom SystemFunction036 | | #define RtlGenRandom SystemFunction036 |
|
| | #endif |
| | #if(_WIN32_WINNT >= 0x0500) |
#define RtlEncryptMemory SystemFunction040 | | #define RtlEncryptMemory SystemFunction040 |
#define RtlDecryptMemory SystemFunction041 | | #define RtlDecryptMemory SystemFunction041 |
|
| | #endif |
| | |
|
| | #if(_WIN32_WINNT >= 0x0501) |
BOOLEAN | | BOOLEAN |
RtlGenRandom( | | RtlGenRandom( |
__out_bcount(RandomBufferLength) PVOID RandomBuffer, | | __out_bcount(RandomBufferLength) PVOID RandomBuffer, |
__in ULONG RandomBufferLength | | __in ULONG RandomBufferLength |
); | | ); |
|
| | #endif |
| | |
| | /* |
| | * #if(_WIN32_WINNT >= 0x0500) -- Disabled until WinHTTP fixes their target vers |
| | ion. |
| | */ |
| | |
// | | // |
// The buffer passed into RtlEncryptMemory and RtlDecryptMemory | | // The buffer passed into RtlEncryptMemory and RtlDecryptMemory |
// must be a multiple of this length. | | // must be a multiple of this length. |
// | | // |
| | |
#define RTL_ENCRYPT_MEMORY_SIZE 8 | | #define RTL_ENCRYPT_MEMORY_SIZE 8 |
| | |
// | | // |
// Allow Encrypt/Decrypt across process boundaries. | | // Allow Encrypt/Decrypt across process boundaries. |
| | |
skipping to change at line 2522 | | skipping to change at line 3627 |
__in ULONG MemorySize, | | __in ULONG MemorySize, |
__in ULONG OptionFlags | | __in ULONG OptionFlags |
); | | ); |
| | |
NTSTATUS | | NTSTATUS |
RtlDecryptMemory( | | RtlDecryptMemory( |
__inout_bcount(MemorySize) PVOID Memory, | | __inout_bcount(MemorySize) PVOID Memory, |
__in ULONG MemorySize, | | __in ULONG MemorySize, |
__in ULONG OptionFlags | | __in ULONG OptionFlags |
); | | ); |
|
| | //#endif |
| | |
// Revision of the Kerberos Protocol. MS uses Version 5, Revision 6 | | // Revision of the Kerberos Protocol. MS uses Version 5, Revision 6 |
| | |
#define KERBEROS_VERSION 5 | | #define KERBEROS_VERSION 5 |
#define KERBEROS_REVISION 6 | | #define KERBEROS_REVISION 6 |
| | |
// Encryption Types: | | // Encryption Types: |
// These encryption types are supported by the default MS KERBSUPP DLL | | // These encryption types are supported by the default MS KERBSUPP DLL |
// as crypto systems. Values over 127 are local values, and may be changed | | // as crypto systems. Values over 127 are local values, and may be changed |
// without notice. | | // without notice. |
| | |
#define KERB_ETYPE_NULL 0 | | #define KERB_ETYPE_NULL 0 |
#define KERB_ETYPE_DES_CBC_CRC 1 | | #define KERB_ETYPE_DES_CBC_CRC 1 |
#define KERB_ETYPE_DES_CBC_MD4 2 | | #define KERB_ETYPE_DES_CBC_MD4 2 |
#define KERB_ETYPE_DES_CBC_MD5 3 | | #define KERB_ETYPE_DES_CBC_MD5 3 |
|
| | #define KERB_ETYPE_AES128_CTS_HMAC_SHA1_96 17 |
| | #define KERB_ETYPE_AES256_CTS_HMAC_SHA1_96 18 |
| | |
#define KERB_ETYPE_RC4_MD4 -128 // FFFFFF80 | | #define KERB_ETYPE_RC4_MD4 -128 // FFFFFF80 |
#define KERB_ETYPE_RC4_PLAIN2 -129 | | #define KERB_ETYPE_RC4_PLAIN2 -129 |
#define KERB_ETYPE_RC4_LM -130 | | #define KERB_ETYPE_RC4_LM -130 |
#define KERB_ETYPE_RC4_SHA -131 | | #define KERB_ETYPE_RC4_SHA -131 |
#define KERB_ETYPE_DES_PLAIN -132 | | #define KERB_ETYPE_DES_PLAIN -132 |
#define KERB_ETYPE_RC4_HMAC_OLD -133 // FFFFFF7B | | #define KERB_ETYPE_RC4_HMAC_OLD -133 // FFFFFF7B |
#define KERB_ETYPE_RC4_PLAIN_OLD -134 | | #define KERB_ETYPE_RC4_PLAIN_OLD -134 |
#define KERB_ETYPE_RC4_HMAC_OLD_EXP -135 | | #define KERB_ETYPE_RC4_HMAC_OLD_EXP -135 |
#define KERB_ETYPE_RC4_PLAIN_OLD_EXP -136 | | #define KERB_ETYPE_RC4_PLAIN_OLD_EXP -136 |
#define KERB_ETYPE_RC4_PLAIN -140 | | #define KERB_ETYPE_RC4_PLAIN -140 |
#define KERB_ETYPE_RC4_PLAIN_EXP -141 | | #define KERB_ETYPE_RC4_PLAIN_EXP -141 |
| | |
// | | // |
|
| | // used internally by userapi.cxx |
| | // |
| | |
| | #define KERB_ETYPE_AES128_CTS_HMAC_SHA1_96_PLAIN -148 |
| | #define KERB_ETYPE_AES256_CTS_HMAC_SHA1_96_PLAIN -149 |
| | |
| | // |
// Pkinit encryption types | | // Pkinit encryption types |
// | | // |
| | |
#define KERB_ETYPE_DSA_SHA1_CMS 9 | | #define KERB_ETYPE_DSA_SHA1_CMS 9 |
#define KERB_ETYPE_RSA_MD5_CMS 10 | | #define KERB_ETYPE_RSA_MD5_CMS 10 |
#define KERB_ETYPE_RSA_SHA1_CMS 11 | | #define KERB_ETYPE_RSA_SHA1_CMS 11 |
#define KERB_ETYPE_RC2_CBC_ENV 12 | | #define KERB_ETYPE_RC2_CBC_ENV 12 |
#define KERB_ETYPE_RSA_ENV 13 | | #define KERB_ETYPE_RSA_ENV 13 |
#define KERB_ETYPE_RSA_ES_OEAP_ENV 14 | | #define KERB_ETYPE_RSA_ES_OEAP_ENV 14 |
#define KERB_ETYPE_DES_EDE3_CBC_ENV 15 | | #define KERB_ETYPE_DES_EDE3_CBC_ENV 15 |
| | |
skipping to change at line 2573 | | skipping to change at line 3688 |
// Deprecated | | // Deprecated |
// | | // |
| | |
#define KERB_ETYPE_DSA_SIGN 8 | | #define KERB_ETYPE_DSA_SIGN 8 |
#define KERB_ETYPE_RSA_PRIV 9 | | #define KERB_ETYPE_RSA_PRIV 9 |
#define KERB_ETYPE_RSA_PUB 10 | | #define KERB_ETYPE_RSA_PUB 10 |
#define KERB_ETYPE_RSA_PUB_MD5 11 | | #define KERB_ETYPE_RSA_PUB_MD5 11 |
#define KERB_ETYPE_RSA_PUB_SHA1 12 | | #define KERB_ETYPE_RSA_PUB_SHA1 12 |
#define KERB_ETYPE_PKCS7_PUB 13 | | #define KERB_ETYPE_PKCS7_PUB 13 |
| | |
|
| | #if(_WIN32_WINNT >= 0x0502) |
// | | // |
// Unsupported but defined types | | // Unsupported but defined types |
// | | // |
| | |
#define KERB_ETYPE_DES3_CBC_MD5 5 | | #define KERB_ETYPE_DES3_CBC_MD5 5 |
#define KERB_ETYPE_DES3_CBC_SHA1 7 | | #define KERB_ETYPE_DES3_CBC_SHA1 7 |
#define KERB_ETYPE_DES3_CBC_SHA1_KD 16 | | #define KERB_ETYPE_DES3_CBC_SHA1_KD 16 |
|
| | #endif |
| | |
// | | // |
// In use types | | // In use types |
// | | // |
| | |
#define KERB_ETYPE_DES_CBC_MD5_NT 20 | | #define KERB_ETYPE_DES_CBC_MD5_NT 20 |
#define KERB_ETYPE_RC4_HMAC_NT 23 | | #define KERB_ETYPE_RC4_HMAC_NT 23 |
#define KERB_ETYPE_RC4_HMAC_NT_EXP 24 | | #define KERB_ETYPE_RC4_HMAC_NT_EXP 24 |
| | |
// Checksum algorithms. | | // Checksum algorithms. |
// These algorithms are keyed internally for our use. | | // These algorithms are keyed internally for our use. |
| | |
#define KERB_CHECKSUM_NONE 0 | | #define KERB_CHECKSUM_NONE 0 |
#define KERB_CHECKSUM_CRC32 1 | | #define KERB_CHECKSUM_CRC32 1 |
#define KERB_CHECKSUM_MD4 2 | | #define KERB_CHECKSUM_MD4 2 |
#define KERB_CHECKSUM_KRB_DES_MAC 4 | | #define KERB_CHECKSUM_KRB_DES_MAC 4 |
|
| | #if (_WIN32_WINNT >= 0x0501) |
#define KERB_CHECKSUM_KRB_DES_MAC_K 5 | | #define KERB_CHECKSUM_KRB_DES_MAC_K 5 |
|
| | #endif |
#define KERB_CHECKSUM_MD5 7 | | #define KERB_CHECKSUM_MD5 7 |
#define KERB_CHECKSUM_MD5_DES 8 | | #define KERB_CHECKSUM_MD5_DES 8 |
| | |
|
| | #define KERB_CHECKSUM_SHA1_NEW 14 // defined in RFC3961 |
| | #define KERB_CHECKSUM_HMAC_SHA1_96_AES128 15 |
| | #define KERB_CHECKSUM_HMAC_SHA1_96_AES256 16 |
| | |
#define KERB_CHECKSUM_LM -130 | | #define KERB_CHECKSUM_LM -130 |
#define KERB_CHECKSUM_SHA1 -131 | | #define KERB_CHECKSUM_SHA1 -131 |
#define KERB_CHECKSUM_REAL_CRC32 -132 | | #define KERB_CHECKSUM_REAL_CRC32 -132 |
#define KERB_CHECKSUM_DES_MAC -133 | | #define KERB_CHECKSUM_DES_MAC -133 |
#define KERB_CHECKSUM_DES_MAC_MD5 -134 | | #define KERB_CHECKSUM_DES_MAC_MD5 -134 |
#define KERB_CHECKSUM_MD25 -135 | | #define KERB_CHECKSUM_MD25 -135 |
#define KERB_CHECKSUM_RC4_MD5 -136 | | #define KERB_CHECKSUM_RC4_MD5 -136 |
#define KERB_CHECKSUM_MD5_HMAC -137 // used by netlogon | | #define KERB_CHECKSUM_MD5_HMAC -137 // used by netlogon |
#define KERB_CHECKSUM_HMAC_MD5 -138 // used by Kerberos | | #define KERB_CHECKSUM_HMAC_MD5 -138 // used by Kerberos |
| | |
|
| | // |
| | // used internally by userapi.cxx |
| | // |
| | |
| | #define KERB_CHECKSUM_HMAC_SHA1_96_AES128_Ki -150 |
| | #define KERB_CHECKSUM_HMAC_SHA1_96_AES256_Ki -151 |
| | |
#define AUTH_REQ_ALLOW_FORWARDABLE 0x00000001 | | #define AUTH_REQ_ALLOW_FORWARDABLE 0x00000001 |
#define AUTH_REQ_ALLOW_PROXIABLE 0x00000002 | | #define AUTH_REQ_ALLOW_PROXIABLE 0x00000002 |
#define AUTH_REQ_ALLOW_POSTDATE 0x00000004 | | #define AUTH_REQ_ALLOW_POSTDATE 0x00000004 |
#define AUTH_REQ_ALLOW_RENEWABLE 0x00000008 | | #define AUTH_REQ_ALLOW_RENEWABLE 0x00000008 |
#define AUTH_REQ_ALLOW_NOADDRESS 0x00000010 | | #define AUTH_REQ_ALLOW_NOADDRESS 0x00000010 |
#define AUTH_REQ_ALLOW_ENC_TKT_IN_SKEY 0x00000020 | | #define AUTH_REQ_ALLOW_ENC_TKT_IN_SKEY 0x00000020 |
#define AUTH_REQ_ALLOW_VALIDATE 0x00000040 | | #define AUTH_REQ_ALLOW_VALIDATE 0x00000040 |
#define AUTH_REQ_VALIDATE_CLIENT 0x00000080 | | #define AUTH_REQ_VALIDATE_CLIENT 0x00000080 |
#define AUTH_REQ_OK_AS_DELEGATE 0x00000100 | | #define AUTH_REQ_OK_AS_DELEGATE 0x00000100 |
#define AUTH_REQ_PREAUTH_REQUIRED 0x00000200 | | #define AUTH_REQ_PREAUTH_REQUIRED 0x00000200 |
#define AUTH_REQ_TRANSITIVE_TRUST 0x00000400 | | #define AUTH_REQ_TRANSITIVE_TRUST 0x00000400 |
|
| | #if(_WIN32_WINNT >= 0x0502) |
#define AUTH_REQ_ALLOW_S4U_DELEGATE 0x00000800 | | #define AUTH_REQ_ALLOW_S4U_DELEGATE 0x00000800 |
|
| | #endif |
| | |
#define AUTH_REQ_PER_USER_FLAGS (AUTH_REQ_ALLOW_FORWARDABLE | \ | | #define AUTH_REQ_PER_USER_FLAGS (AUTH_REQ_ALLOW_FORWARDABLE | \ |
AUTH_REQ_ALLOW_PROXIABLE | \ | | AUTH_REQ_ALLOW_PROXIABLE | \ |
AUTH_REQ_ALLOW_POSTDATE | \ | | AUTH_REQ_ALLOW_POSTDATE | \ |
AUTH_REQ_ALLOW_RENEWABLE | \ | | AUTH_REQ_ALLOW_RENEWABLE | \ |
AUTH_REQ_ALLOW_VALIDATE ) | | AUTH_REQ_ALLOW_VALIDATE ) |
// | | // |
// Ticket Flags: | | // Ticket Flags: |
// | | // |
| | |
| | |
skipping to change at line 2646 | | skipping to change at line 3778 |
#define KERB_TICKET_FLAGS_proxy 0x08000000 | | #define KERB_TICKET_FLAGS_proxy 0x08000000 |
#define KERB_TICKET_FLAGS_may_postdate 0x04000000 | | #define KERB_TICKET_FLAGS_may_postdate 0x04000000 |
#define KERB_TICKET_FLAGS_postdated 0x02000000 | | #define KERB_TICKET_FLAGS_postdated 0x02000000 |
#define KERB_TICKET_FLAGS_invalid 0x01000000 | | #define KERB_TICKET_FLAGS_invalid 0x01000000 |
#define KERB_TICKET_FLAGS_renewable 0x00800000 | | #define KERB_TICKET_FLAGS_renewable 0x00800000 |
#define KERB_TICKET_FLAGS_initial 0x00400000 | | #define KERB_TICKET_FLAGS_initial 0x00400000 |
#define KERB_TICKET_FLAGS_pre_authent 0x00200000 | | #define KERB_TICKET_FLAGS_pre_authent 0x00200000 |
#define KERB_TICKET_FLAGS_hw_authent 0x00100000 | | #define KERB_TICKET_FLAGS_hw_authent 0x00100000 |
#define KERB_TICKET_FLAGS_ok_as_delegate 0x00040000 | | #define KERB_TICKET_FLAGS_ok_as_delegate 0x00040000 |
#define KERB_TICKET_FLAGS_name_canonicalize 0x00010000 | | #define KERB_TICKET_FLAGS_name_canonicalize 0x00010000 |
|
| | #if (_WIN32_WINNT == 0x0501) |
| | #define KERB_TICKET_FLAGS_cname_in_pa_data 0x00040000 |
| | #endif |
#define KERB_TICKET_FLAGS_reserved1 0x00000001 | | #define KERB_TICKET_FLAGS_reserved1 0x00000001 |
| | |
|
| | #if (_WIN32_WINNT >= 0x0501) |
// | | // |
// Name types | | // Name types |
// | | // |
| | |
#define KRB_NT_UNKNOWN 0 // Name type not known | | #define KRB_NT_UNKNOWN 0 // Name type not known |
#define KRB_NT_PRINCIPAL 1 // Just the name of the principal as i
n DCE, or for users | | #define KRB_NT_PRINCIPAL 1 // Just the name of the principal as i
n DCE, or for users |
#define KRB_NT_PRINCIPAL_AND_ID -131 // Name of the principal and its SID. | | #define KRB_NT_PRINCIPAL_AND_ID -131 // Name of the principal and its SID. |
#define KRB_NT_SRV_INST 2 // Service and other unique instance (
krbtgt) | | #define KRB_NT_SRV_INST 2 // Service and other unique instance (
krbtgt) |
#define KRB_NT_SRV_INST_AND_ID -132 // SPN and SID | | #define KRB_NT_SRV_INST_AND_ID -132 // SPN and SID |
#define KRB_NT_SRV_HST 3 // Service with host name as instance
(telnet, rcommands) | | #define KRB_NT_SRV_HST 3 // Service with host name as instance
(telnet, rcommands) |
| | |
skipping to change at line 2671 | | skipping to change at line 3807 |
#define KRB_NT_ENT_PRINCIPAL_AND_ID -130 // UPN and SID | | #define KRB_NT_ENT_PRINCIPAL_AND_ID -130 // UPN and SID |
| | |
// | | // |
// MS extensions, negative according to the RFC | | // MS extensions, negative according to the RFC |
// | | // |
| | |
#define KRB_NT_MS_PRINCIPAL -128 // NT4 style name | | #define KRB_NT_MS_PRINCIPAL -128 // NT4 style name |
| | |
#define KRB_NT_MS_PRINCIPAL_AND_ID -129 // nt4 style name with sid | | #define KRB_NT_MS_PRINCIPAL_AND_ID -129 // nt4 style name with sid |
| | |
|
| | #define KRB_NT_MS_BRANCH_ID -133 // Branch ID |
| | |
#define KERB_IS_MS_PRINCIPAL(_x_) (((_x_) <= KRB_NT_MS_PRINCIPAL) || ((_x_) >= K
RB_NT_ENTERPRISE_PRINCIPAL)) | | #define KERB_IS_MS_PRINCIPAL(_x_) (((_x_) <= KRB_NT_MS_PRINCIPAL) || ((_x_) >= K
RB_NT_ENTERPRISE_PRINCIPAL)) |
|
| | #endif |
| | |
| | #if (_WIN32_WINNT >= 0x0600) |
| | #define KRB_NT_X500_PRINCIPAL 6 // Encoded X.500 Distingished name [RF |
| | C 2253] |
| | #endif |
| | |
#ifndef MICROSOFT_KERBEROS_NAME_A | | #ifndef MICROSOFT_KERBEROS_NAME_A |
| | |
#define MICROSOFT_KERBEROS_NAME_A "Kerberos" | | #define MICROSOFT_KERBEROS_NAME_A "Kerberos" |
#define MICROSOFT_KERBEROS_NAME_W L"Kerberos" | | #define MICROSOFT_KERBEROS_NAME_W L"Kerberos" |
#ifdef WIN32_CHICAGO | | #ifdef WIN32_CHICAGO |
#define MICROSOFT_KERBEROS_NAME MICROSOFT_KERBEROS_NAME_A | | #define MICROSOFT_KERBEROS_NAME MICROSOFT_KERBEROS_NAME_A |
#else | | #else |
#define MICROSOFT_KERBEROS_NAME MICROSOFT_KERBEROS_NAME_W | | #define MICROSOFT_KERBEROS_NAME MICROSOFT_KERBEROS_NAME_W |
#endif // WIN32_CHICAGO | | #endif // WIN32_CHICAGO |
| | |
skipping to change at line 2711 | | skipping to change at line 3854 |
///////////////////////////////////////////////////////////////////////// | | ///////////////////////////////////////////////////////////////////////// |
| | |
typedef enum _KERB_LOGON_SUBMIT_TYPE { | | typedef enum _KERB_LOGON_SUBMIT_TYPE { |
KerbInteractiveLogon = 2, | | KerbInteractiveLogon = 2, |
KerbSmartCardLogon = 6, | | KerbSmartCardLogon = 6, |
KerbWorkstationUnlockLogon = 7, | | KerbWorkstationUnlockLogon = 7, |
KerbSmartCardUnlockLogon = 8, | | KerbSmartCardUnlockLogon = 8, |
KerbProxyLogon = 9, | | KerbProxyLogon = 9, |
KerbTicketLogon = 10, | | KerbTicketLogon = 10, |
KerbTicketUnlockLogon = 11, | | KerbTicketUnlockLogon = 11, |
|
KerbS4ULogon = 12 | | //#if (_WIN32_WINNT >= 0x0501) -- Disabled until IIS fixes their target version. |
| | KerbS4ULogon = 12, |
| | //#endif |
| | #if (_WIN32_WINNT >= 0x0600) |
| | KerbCertificateLogon = 13, |
| | KerbCertificateS4ULogon = 14, |
| | KerbCertificateUnlockLogon = 15, |
| | #endif |
} KERB_LOGON_SUBMIT_TYPE, *PKERB_LOGON_SUBMIT_TYPE; | | } KERB_LOGON_SUBMIT_TYPE, *PKERB_LOGON_SUBMIT_TYPE; |
| | |
typedef struct _KERB_INTERACTIVE_LOGON { | | typedef struct _KERB_INTERACTIVE_LOGON { |
KERB_LOGON_SUBMIT_TYPE MessageType; | | KERB_LOGON_SUBMIT_TYPE MessageType; |
UNICODE_STRING LogonDomainName; | | UNICODE_STRING LogonDomainName; |
UNICODE_STRING UserName; | | UNICODE_STRING UserName; |
UNICODE_STRING Password; | | UNICODE_STRING Password; |
} KERB_INTERACTIVE_LOGON, *PKERB_INTERACTIVE_LOGON; | | } KERB_INTERACTIVE_LOGON, *PKERB_INTERACTIVE_LOGON; |
| | |
typedef struct _KERB_INTERACTIVE_UNLOCK_LOGON { | | typedef struct _KERB_INTERACTIVE_UNLOCK_LOGON { |
| | |
skipping to change at line 2738 | | skipping to change at line 3888 |
UNICODE_STRING Pin; | | UNICODE_STRING Pin; |
ULONG CspDataLength; | | ULONG CspDataLength; |
PUCHAR CspData; | | PUCHAR CspData; |
} KERB_SMART_CARD_LOGON, *PKERB_SMART_CARD_LOGON; | | } KERB_SMART_CARD_LOGON, *PKERB_SMART_CARD_LOGON; |
| | |
typedef struct _KERB_SMART_CARD_UNLOCK_LOGON { | | typedef struct _KERB_SMART_CARD_UNLOCK_LOGON { |
KERB_SMART_CARD_LOGON Logon; | | KERB_SMART_CARD_LOGON Logon; |
LUID LogonId; | | LUID LogonId; |
} KERB_SMART_CARD_UNLOCK_LOGON, *PKERB_SMART_CARD_UNLOCK_LOGON; | | } KERB_SMART_CARD_UNLOCK_LOGON, *PKERB_SMART_CARD_UNLOCK_LOGON; |
| | |
|
| | #if (_WIN32_WINNT >= 0x0600) |
| | |
| | // |
| | // let the KDC detect account mapping conflicts for the same certificate. |
| | // |
| | |
| | #define KERB_CERTIFICATE_LOGON_FLAG_CHECK_DUPLICATES 0x1 |
| | |
| | typedef struct _KERB_CERTIFICATE_LOGON { |
| | KERB_LOGON_SUBMIT_TYPE MessageType; // KerbCertificateLogon |
| | UNICODE_STRING DomainName; // OPTIONAL, if supplied, used to locate the acco |
| | unt forest |
| | UNICODE_STRING UserName; // OPTIONAL, if supplied, used to locate the acco |
| | unt |
| | UNICODE_STRING Pin; |
| | ULONG Flags; // additional flags |
| | ULONG CspDataLength; |
| | PUCHAR CspData; // contains the smartcard CSP data |
| | } KERB_CERTIFICATE_LOGON, *PKERB_CERTIFICATE_LOGON; |
| | |
| | typedef struct _KERB_CERTIFICATE_UNLOCK_LOGON { |
| | KERB_CERTIFICATE_LOGON Logon; |
| | LUID LogonId; |
| | } KERB_CERTIFICATE_UNLOCK_LOGON, *PKERB_CERTIFICATE_UNLOCK_LOGON; |
| | |
| | // |
| | // let the KDC detect account mapping conflicts for the same certificate. |
| | // |
| | |
| | #define KERB_CERTIFICATE_S4U_LOGON_FLAG_CHECK_DUPLICATES 0x1 |
| | #define KERB_CERTIFICATE_S4U_LOGON_FLAG_CHECK_LOGONHOURS 0x2 |
| | |
| | typedef struct _KERB_CERTIFICATE_S4U_LOGON { |
| | KERB_LOGON_SUBMIT_TYPE MessageType; |
| | ULONG Flags; |
| | UNICODE_STRING UserPrincipalName; |
| | // OPTIONAL, certificate mapping hints: username or username@domain |
| | UNICODE_STRING DomainName; // used to locate the forest |
| | // OPTIONAL, certificate mapping hints: if missing, using the local |
| | machine's domain |
| | ULONG CertificateLength; // for the client certificate |
| | PUCHAR Certificate; // for the client certificate, BER encoded |
| | } KERB_CERTIFICATE_S4U_LOGON, *PKERB_CERTIFICATE_S4U_LOGON; |
| | |
| | #endif |
| | |
// | | // |
// Structure used for a ticket-only logon | | // Structure used for a ticket-only logon |
// | | // |
| | |
typedef struct _KERB_TICKET_LOGON { | | typedef struct _KERB_TICKET_LOGON { |
KERB_LOGON_SUBMIT_TYPE MessageType; | | KERB_LOGON_SUBMIT_TYPE MessageType; |
ULONG Flags; | | ULONG Flags; |
ULONG ServiceTicketLength; | | ULONG ServiceTicketLength; |
ULONG TicketGrantingTicketLength; | | ULONG TicketGrantingTicketLength; |
PUCHAR ServiceTicket; // REQUIRED: Service ticket "host" | | PUCHAR ServiceTicket; // REQUIRED: Service ticket "host" |
| | |
skipping to change at line 2762 | | skipping to change at line 3955 |
// Flags for the ticket logon flags field | | // Flags for the ticket logon flags field |
// | | // |
| | |
#define KERB_LOGON_FLAG_ALLOW_EXPIRED_TICKET 0x1 | | #define KERB_LOGON_FLAG_ALLOW_EXPIRED_TICKET 0x1 |
| | |
typedef struct _KERB_TICKET_UNLOCK_LOGON { | | typedef struct _KERB_TICKET_UNLOCK_LOGON { |
KERB_TICKET_LOGON Logon; | | KERB_TICKET_LOGON Logon; |
LUID LogonId; | | LUID LogonId; |
} KERB_TICKET_UNLOCK_LOGON, *PKERB_TICKET_UNLOCK_LOGON; | | } KERB_TICKET_UNLOCK_LOGON, *PKERB_TICKET_UNLOCK_LOGON; |
| | |
|
| | //#if (_WIN32_WINNT >= 0x0501) -- Disabled until IIS fixes their target version. |
// | | // |
// Used for S4U Client requests | | // Used for S4U Client requests |
// | | // |
// | | // |
|
| | |
| | #if (_WIN32_WINNT >= 0x0600) |
| | |
| | // |
| | // request to enforce logon hours policy |
| | // |
| | |
| | #define KERB_S4U_LOGON_FLAG_CHECK_LOGONHOURS 0x2 |
| | |
| | #endif |
| | |
typedef struct _KERB_S4U_LOGON { | | typedef struct _KERB_S4U_LOGON { |
KERB_LOGON_SUBMIT_TYPE MessageType; | | KERB_LOGON_SUBMIT_TYPE MessageType; |
ULONG Flags; | | ULONG Flags; |
UNICODE_STRING ClientUpn; // REQUIRED: UPN for client | | UNICODE_STRING ClientUpn; // REQUIRED: UPN for client |
UNICODE_STRING ClientRealm; // Optional: Client Realm, if known | | UNICODE_STRING ClientRealm; // Optional: Client Realm, if known |
} KERB_S4U_LOGON, *PKERB_S4U_LOGON; | | } KERB_S4U_LOGON, *PKERB_S4U_LOGON; |
|
| | //#endif |
| | |
// | | // |
// Use the same profile structure as MSV1_0 | | // Use the same profile structure as MSV1_0 |
// | | // |
typedef enum _KERB_PROFILE_BUFFER_TYPE { | | typedef enum _KERB_PROFILE_BUFFER_TYPE { |
KerbInteractiveProfile = 2, | | KerbInteractiveProfile = 2, |
KerbSmartCardProfile = 4, | | KerbSmartCardProfile = 4, |
KerbTicketProfile = 6 | | KerbTicketProfile = 6 |
} KERB_PROFILE_BUFFER_TYPE, *PKERB_PROFILE_BUFFER_TYPE; | | } KERB_PROFILE_BUFFER_TYPE, *PKERB_PROFILE_BUFFER_TYPE; |
| | |
| | |
skipping to change at line 2822 | | skipping to change at line 4028 |
// | | // |
// For a ticket logon profile, we return the session key from the ticket | | // For a ticket logon profile, we return the session key from the ticket |
// | | // |
| | |
typedef struct KERB_CRYPTO_KEY { | | typedef struct KERB_CRYPTO_KEY { |
LONG KeyType; | | LONG KeyType; |
ULONG Length; | | ULONG Length; |
PUCHAR Value; | | PUCHAR Value; |
} KERB_CRYPTO_KEY, *PKERB_CRYPTO_KEY; | | } KERB_CRYPTO_KEY, *PKERB_CRYPTO_KEY; |
| | |
|
| | typedef struct KERB_CRYPTO_KEY32 { |
| | LONG KeyType; |
| | ULONG Length; |
| | ULONG Offset; |
| | } KERB_CRYPTO_KEY32, *PKERB_CRYPTO_KEY32; |
| | |
typedef struct _KERB_TICKET_PROFILE { | | typedef struct _KERB_TICKET_PROFILE { |
KERB_INTERACTIVE_PROFILE Profile; | | KERB_INTERACTIVE_PROFILE Profile; |
KERB_CRYPTO_KEY SessionKey; | | KERB_CRYPTO_KEY SessionKey; |
} KERB_TICKET_PROFILE, *PKERB_TICKET_PROFILE; | | } KERB_TICKET_PROFILE, *PKERB_TICKET_PROFILE; |
| | |
typedef enum _KERB_PROTOCOL_MESSAGE_TYPE { | | typedef enum _KERB_PROTOCOL_MESSAGE_TYPE { |
KerbDebugRequestMessage = 0, | | KerbDebugRequestMessage = 0, |
KerbQueryTicketCacheMessage, | | KerbQueryTicketCacheMessage, |
KerbChangeMachinePasswordMessage, | | KerbChangeMachinePasswordMessage, |
KerbVerifyPacMessage, | | KerbVerifyPacMessage, |
KerbRetrieveTicketMessage, | | KerbRetrieveTicketMessage, |
KerbUpdateAddressesMessage, | | KerbUpdateAddressesMessage, |
KerbPurgeTicketCacheMessage, | | KerbPurgeTicketCacheMessage, |
KerbChangePasswordMessage, | | KerbChangePasswordMessage, |
KerbRetrieveEncodedTicketMessage, | | KerbRetrieveEncodedTicketMessage, |
KerbDecryptDataMessage, | | KerbDecryptDataMessage, |
KerbAddBindingCacheEntryMessage, | | KerbAddBindingCacheEntryMessage, |
KerbSetPasswordMessage, | | KerbSetPasswordMessage, |
KerbSetPasswordExMessage, | | KerbSetPasswordExMessage, |
|
| | #if (_WIN32_WINNT == 0x0500) |
| | KerbAddExtraCredentialsMessage = 17 |
| | #endif |
| | #if (_WIN32_WINNT >= 0x0501) |
KerbVerifyCredentialsMessage, | | KerbVerifyCredentialsMessage, |
KerbQueryTicketCacheExMessage, | | KerbQueryTicketCacheExMessage, |
KerbPurgeTicketCacheExMessage, | | KerbPurgeTicketCacheExMessage, |
|
| | #endif |
| | #if (_WIN32_WINNT >= 0x0502) |
KerbRefreshSmartcardCredentialsMessage, | | KerbRefreshSmartcardCredentialsMessage, |
KerbAddExtraCredentialsMessage, | | KerbAddExtraCredentialsMessage, |
KerbQuerySupplementalCredentialsMessage, | | KerbQuerySupplementalCredentialsMessage, |
|
| | #endif |
| | #if (_WIN32_WINNT >= 0x0600) |
KerbTransferCredentialsMessage, | | KerbTransferCredentialsMessage, |
KerbQueryTicketCacheEx2Message, | | KerbQueryTicketCacheEx2Message, |
|
| | KerbSubmitTicketMessage, |
| | #endif |
} KERB_PROTOCOL_MESSAGE_TYPE, *PKERB_PROTOCOL_MESSAGE_TYPE; | | } KERB_PROTOCOL_MESSAGE_TYPE, *PKERB_PROTOCOL_MESSAGE_TYPE; |
| | |
// | | // |
// Used both for retrieving tickets and for querying ticket cache | | // Used both for retrieving tickets and for querying ticket cache |
// | | // |
| | |
typedef struct _KERB_QUERY_TKT_CACHE_REQUEST { | | typedef struct _KERB_QUERY_TKT_CACHE_REQUEST { |
KERB_PROTOCOL_MESSAGE_TYPE MessageType; | | KERB_PROTOCOL_MESSAGE_TYPE MessageType; |
LUID LogonId; | | LUID LogonId; |
} KERB_QUERY_TKT_CACHE_REQUEST, *PKERB_QUERY_TKT_CACHE_REQUEST; | | } KERB_QUERY_TKT_CACHE_REQUEST, *PKERB_QUERY_TKT_CACHE_REQUEST; |
| | |
skipping to change at line 2870 | | skipping to change at line 4092 |
typedef struct _KERB_TICKET_CACHE_INFO { | | typedef struct _KERB_TICKET_CACHE_INFO { |
UNICODE_STRING ServerName; | | UNICODE_STRING ServerName; |
UNICODE_STRING RealmName; | | UNICODE_STRING RealmName; |
LARGE_INTEGER StartTime; | | LARGE_INTEGER StartTime; |
LARGE_INTEGER EndTime; | | LARGE_INTEGER EndTime; |
LARGE_INTEGER RenewTime; | | LARGE_INTEGER RenewTime; |
LONG EncryptionType; | | LONG EncryptionType; |
ULONG TicketFlags; | | ULONG TicketFlags; |
} KERB_TICKET_CACHE_INFO, *PKERB_TICKET_CACHE_INFO; | | } KERB_TICKET_CACHE_INFO, *PKERB_TICKET_CACHE_INFO; |
| | |
|
| | #if (_WIN32_WINNT >= 0x0501) |
typedef struct _KERB_TICKET_CACHE_INFO_EX { | | typedef struct _KERB_TICKET_CACHE_INFO_EX { |
UNICODE_STRING ClientName; | | UNICODE_STRING ClientName; |
UNICODE_STRING ClientRealm; | | UNICODE_STRING ClientRealm; |
UNICODE_STRING ServerName; | | UNICODE_STRING ServerName; |
UNICODE_STRING ServerRealm; | | UNICODE_STRING ServerRealm; |
LARGE_INTEGER StartTime; | | LARGE_INTEGER StartTime; |
LARGE_INTEGER EndTime; | | LARGE_INTEGER EndTime; |
LARGE_INTEGER RenewTime; | | LARGE_INTEGER RenewTime; |
LONG EncryptionType; | | LONG EncryptionType; |
ULONG TicketFlags; | | ULONG TicketFlags; |
} KERB_TICKET_CACHE_INFO_EX, *PKERB_TICKET_CACHE_INFO_EX; | | } KERB_TICKET_CACHE_INFO_EX, *PKERB_TICKET_CACHE_INFO_EX; |
|
| | #endif |
| | |
typedef struct _KERB_TICKET_CACHE_INFO_EX2 { | | typedef struct _KERB_TICKET_CACHE_INFO_EX2 { |
UNICODE_STRING ClientName; | | UNICODE_STRING ClientName; |
UNICODE_STRING ClientRealm; | | UNICODE_STRING ClientRealm; |
UNICODE_STRING ServerName; | | UNICODE_STRING ServerName; |
UNICODE_STRING ServerRealm; | | UNICODE_STRING ServerRealm; |
LARGE_INTEGER StartTime; | | LARGE_INTEGER StartTime; |
LARGE_INTEGER EndTime; | | LARGE_INTEGER EndTime; |
LARGE_INTEGER RenewTime; | | LARGE_INTEGER RenewTime; |
LONG EncryptionType; | | LONG EncryptionType; |
| | |
skipping to change at line 2896 | | skipping to change at line 4120 |
UNICODE_STRING ServerRealm; | | UNICODE_STRING ServerRealm; |
LARGE_INTEGER StartTime; | | LARGE_INTEGER StartTime; |
LARGE_INTEGER EndTime; | | LARGE_INTEGER EndTime; |
LARGE_INTEGER RenewTime; | | LARGE_INTEGER RenewTime; |
LONG EncryptionType; | | LONG EncryptionType; |
ULONG TicketFlags; | | ULONG TicketFlags; |
| | |
// | | // |
// the following are new in KERB_TICKET_CACHE_INFO_EX2 | | // the following are new in KERB_TICKET_CACHE_INFO_EX2 |
// | | // |
|
| | |
ULONG SessionKeyType; | | ULONG SessionKeyType; |
|
| | ULONG BranchId; |
} KERB_TICKET_CACHE_INFO_EX2, *PKERB_TICKET_CACHE_INFO_EX2; | | } KERB_TICKET_CACHE_INFO_EX2, *PKERB_TICKET_CACHE_INFO_EX2; |
| | |
typedef struct _KERB_QUERY_TKT_CACHE_RESPONSE { | | typedef struct _KERB_QUERY_TKT_CACHE_RESPONSE { |
KERB_PROTOCOL_MESSAGE_TYPE MessageType; | | KERB_PROTOCOL_MESSAGE_TYPE MessageType; |
ULONG CountOfTickets; | | ULONG CountOfTickets; |
KERB_TICKET_CACHE_INFO Tickets[ANYSIZE_ARRAY]; | | KERB_TICKET_CACHE_INFO Tickets[ANYSIZE_ARRAY]; |
} KERB_QUERY_TKT_CACHE_RESPONSE, *PKERB_QUERY_TKT_CACHE_RESPONSE; | | } KERB_QUERY_TKT_CACHE_RESPONSE, *PKERB_QUERY_TKT_CACHE_RESPONSE; |
| | |
|
| | #if (_WIN32_WINNT >= 0x0502) |
typedef struct _KERB_QUERY_TKT_CACHE_EX_RESPONSE { | | typedef struct _KERB_QUERY_TKT_CACHE_EX_RESPONSE { |
KERB_PROTOCOL_MESSAGE_TYPE MessageType; | | KERB_PROTOCOL_MESSAGE_TYPE MessageType; |
ULONG CountOfTickets; | | ULONG CountOfTickets; |
KERB_TICKET_CACHE_INFO_EX Tickets[ANYSIZE_ARRAY]; | | KERB_TICKET_CACHE_INFO_EX Tickets[ANYSIZE_ARRAY]; |
} KERB_QUERY_TKT_CACHE_EX_RESPONSE, *PKERB_QUERY_TKT_CACHE_EX_RESPONSE; | | } KERB_QUERY_TKT_CACHE_EX_RESPONSE, *PKERB_QUERY_TKT_CACHE_EX_RESPONSE; |
|
| | #endif |
| | |
typedef struct _KERB_QUERY_TKT_CACHE_EX2_RESPONSE { | | typedef struct _KERB_QUERY_TKT_CACHE_EX2_RESPONSE { |
KERB_PROTOCOL_MESSAGE_TYPE MessageType; | | KERB_PROTOCOL_MESSAGE_TYPE MessageType; |
ULONG CountOfTickets; | | ULONG CountOfTickets; |
KERB_TICKET_CACHE_INFO_EX2 Tickets[ANYSIZE_ARRAY]; | | KERB_TICKET_CACHE_INFO_EX2 Tickets[ANYSIZE_ARRAY]; |
} KERB_QUERY_TKT_CACHE_EX2_RESPONSE, *PKERB_QUERY_TKT_CACHE_EX2_RESPONSE; | | } KERB_QUERY_TKT_CACHE_EX2_RESPONSE, *PKERB_QUERY_TKT_CACHE_EX2_RESPONSE; |
| | |
// | | // |
// Types for retrieving encoded ticket from the cache | | // Types for retrieving encoded ticket from the cache |
// | | // |
| | |
skipping to change at line 2932 | | skipping to change at line 4158 |
#ifndef __SECHANDLE_DEFINED__ | | #ifndef __SECHANDLE_DEFINED__ |
typedef struct _SecHandle | | typedef struct _SecHandle |
{ | | { |
ULONG_PTR dwLower ; | | ULONG_PTR dwLower ; |
ULONG_PTR dwUpper ; | | ULONG_PTR dwUpper ; |
} SecHandle, * PSecHandle ; | | } SecHandle, * PSecHandle ; |
| | |
#define __SECHANDLE_DEFINED__ | | #define __SECHANDLE_DEFINED__ |
#endif // __SECHANDLE_DEFINED__ | | #endif // __SECHANDLE_DEFINED__ |
| | |
|
| | #if (_WIN32_WINNT >= 0x0501) |
// Ticket Flags | | // Ticket Flags |
#define KERB_USE_DEFAULT_TICKET_FLAGS 0x0 | | #define KERB_USE_DEFAULT_TICKET_FLAGS 0x0 |
| | |
// CacheOptions | | // CacheOptions |
#define KERB_RETRIEVE_TICKET_DEFAULT 0x0 | | #define KERB_RETRIEVE_TICKET_DEFAULT 0x0 |
|
| | #endif |
#define KERB_RETRIEVE_TICKET_DONT_USE_CACHE 0x1 | | #define KERB_RETRIEVE_TICKET_DONT_USE_CACHE 0x1 |
#define KERB_RETRIEVE_TICKET_USE_CACHE_ONLY 0x2 | | #define KERB_RETRIEVE_TICKET_USE_CACHE_ONLY 0x2 |
#define KERB_RETRIEVE_TICKET_USE_CREDHANDLE 0x4 | | #define KERB_RETRIEVE_TICKET_USE_CREDHANDLE 0x4 |
|
| | #if (_WIN32_WINNT >= 0x0501) |
#define KERB_RETRIEVE_TICKET_AS_KERB_CRED 0x8 | | #define KERB_RETRIEVE_TICKET_AS_KERB_CRED 0x8 |
#define KERB_RETRIEVE_TICKET_WITH_SEC_CRED 0x10 | | #define KERB_RETRIEVE_TICKET_WITH_SEC_CRED 0x10 |
|
| | #endif |
| | #if (_WIN32_WINNT >= 0x0600) |
#define KERB_RETRIEVE_TICKET_CACHE_TICKET 0x20 | | #define KERB_RETRIEVE_TICKET_CACHE_TICKET 0x20 |
|
| | #endif |
| | |
|
| | #if (_WIN32_WINNT >= 0x0501) |
// Encryption Type options | | // Encryption Type options |
#define KERB_ETYPE_DEFAULT 0x0 // don't specify etype in tkt req. | | #define KERB_ETYPE_DEFAULT 0x0 // don't specify etype in tkt req. |
| | |
typedef struct _KERB_AUTH_DATA { | | typedef struct _KERB_AUTH_DATA { |
ULONG Type; | | ULONG Type; |
ULONG Length; | | ULONG Length; |
PUCHAR Data; | | PUCHAR Data; |
} KERB_AUTH_DATA, *PKERB_AUTH_DATA; | | } KERB_AUTH_DATA, *PKERB_AUTH_DATA; |
| | |
typedef struct _KERB_NET_ADDRESS { | | typedef struct _KERB_NET_ADDRESS { |
ULONG Family; | | ULONG Family; |
ULONG Length; | | ULONG Length; |
PCHAR Address; | | PCHAR Address; |
} KERB_NET_ADDRESS, *PKERB_NET_ADDRESS; | | } KERB_NET_ADDRESS, *PKERB_NET_ADDRESS; |
| | |
typedef struct _KERB_NET_ADDRESSES { | | typedef struct _KERB_NET_ADDRESSES { |
ULONG Number; | | ULONG Number; |
KERB_NET_ADDRESS Addresses[ANYSIZE_ARRAY]; | | KERB_NET_ADDRESS Addresses[ANYSIZE_ARRAY]; |
} KERB_NET_ADDRESSES, *PKERB_NET_ADDRESSES; | | } KERB_NET_ADDRESSES, *PKERB_NET_ADDRESSES; |
|
| | #endif |
| | |
// | | // |
// Types for the information about a ticket | | // Types for the information about a ticket |
// | | // |
| | |
typedef struct _KERB_EXTERNAL_NAME { | | typedef struct _KERB_EXTERNAL_NAME { |
SHORT NameType; | | SHORT NameType; |
USHORT NameCount; | | USHORT NameCount; |
UNICODE_STRING Names[ANYSIZE_ARRAY]; | | UNICODE_STRING Names[ANYSIZE_ARRAY]; |
} KERB_EXTERNAL_NAME, *PKERB_EXTERNAL_NAME; | | } KERB_EXTERNAL_NAME, *PKERB_EXTERNAL_NAME; |
| | |
skipping to change at line 3018 | | skipping to change at line 4252 |
// Used to purge entries from the ticket cache | | // Used to purge entries from the ticket cache |
// | | // |
| | |
typedef struct _KERB_PURGE_TKT_CACHE_REQUEST { | | typedef struct _KERB_PURGE_TKT_CACHE_REQUEST { |
KERB_PROTOCOL_MESSAGE_TYPE MessageType; | | KERB_PROTOCOL_MESSAGE_TYPE MessageType; |
LUID LogonId; | | LUID LogonId; |
UNICODE_STRING ServerName; | | UNICODE_STRING ServerName; |
UNICODE_STRING RealmName; | | UNICODE_STRING RealmName; |
} KERB_PURGE_TKT_CACHE_REQUEST, *PKERB_PURGE_TKT_CACHE_REQUEST; | | } KERB_PURGE_TKT_CACHE_REQUEST, *PKERB_PURGE_TKT_CACHE_REQUEST; |
| | |
|
| | #if (_WIN32_WINNT >= 0x0501) |
// | | // |
// Flags for purge requests | | // Flags for purge requests |
// | | // |
| | |
#define KERB_PURGE_ALL_TICKETS 1 | | #define KERB_PURGE_ALL_TICKETS 1 |
| | |
typedef struct _KERB_PURGE_TKT_CACHE_EX_REQUEST { | | typedef struct _KERB_PURGE_TKT_CACHE_EX_REQUEST { |
KERB_PROTOCOL_MESSAGE_TYPE MessageType; | | KERB_PROTOCOL_MESSAGE_TYPE MessageType; |
LUID LogonId; | | LUID LogonId; |
ULONG Flags; | | ULONG Flags; |
KERB_TICKET_CACHE_INFO_EX TicketTemplate; | | KERB_TICKET_CACHE_INFO_EX TicketTemplate; |
} KERB_PURGE_TKT_CACHE_EX_REQUEST, *PKERB_PURGE_TKT_CACHE_EX_REQUEST; | | } KERB_PURGE_TKT_CACHE_EX_REQUEST, *PKERB_PURGE_TKT_CACHE_EX_REQUEST; |
|
| | #endif |
| | |
| | typedef struct _KERB_SUBMIT_TKT_REQUEST { |
| | KERB_PROTOCOL_MESSAGE_TYPE MessageType; |
| | LUID LogonId; |
| | ULONG Flags; |
| | KERB_CRYPTO_KEY32 Key; // key to decrypt KERB_CRED |
| | ULONG KerbCredSize; |
| | ULONG KerbCredOffset; |
| | } KERB_SUBMIT_TKT_REQUEST, *PKERB_SUBMIT_TKT_REQUEST; |
| | |
// | | // |
// KerbChangePassword | | // KerbChangePassword |
// | | // |
// KerbChangePassword changes the password on the KDC account plus | | // KerbChangePassword changes the password on the KDC account plus |
// the password cache and logon credentials if applicable. | | // the password cache and logon credentials if applicable. |
// | | // |
// | | // |
| | |
typedef struct _KERB_CHANGEPASSWORD_REQUEST { | | typedef struct _KERB_CHANGEPASSWORD_REQUEST { |
| | |
skipping to change at line 3120 | | skipping to change at line 4365 |
// is required for this operation. | | // is required for this operation. |
// | | // |
| | |
typedef struct _KERB_ADD_BINDING_CACHE_ENTRY_REQUEST { | | typedef struct _KERB_ADD_BINDING_CACHE_ENTRY_REQUEST { |
KERB_PROTOCOL_MESSAGE_TYPE MessageType; | | KERB_PROTOCOL_MESSAGE_TYPE MessageType; |
UNICODE_STRING RealmName; | | UNICODE_STRING RealmName; |
UNICODE_STRING KdcAddress; | | UNICODE_STRING KdcAddress; |
ULONG AddressType; //dsgetdc.h DS_NETBIOS_ADDRESS||DS_INET_
ADDRESS | | ULONG AddressType; //dsgetdc.h DS_NETBIOS_ADDRESS||DS_INET_
ADDRESS |
} KERB_ADD_BINDING_CACHE_ENTRY_REQUEST, *PKERB_ADD_BINDING_CACHE_ENTRY_REQUEST; | | } KERB_ADD_BINDING_CACHE_ENTRY_REQUEST, *PKERB_ADD_BINDING_CACHE_ENTRY_REQUEST; |
| | |
|
| | #if (_WIN32_WINNT >= 0x0502) |
// | | // |
// Request structure for reacquiring smartcard credentials for a | | // Request structure for reacquiring smartcard credentials for a |
// given LUID. | | // given LUID. |
// Requires TCB. | | // Requires TCB. |
// | | // |
typedef struct _KERB_REFRESH_SCCRED_REQUEST { | | typedef struct _KERB_REFRESH_SCCRED_REQUEST { |
KERB_PROTOCOL_MESSAGE_TYPE MessageType; | | KERB_PROTOCOL_MESSAGE_TYPE MessageType; |
UNICODE_STRING CredentialBlob; // optional | | UNICODE_STRING CredentialBlob; // optional |
LUID LogonId; | | LUID LogonId; |
ULONG Flags; | | ULONG Flags; |
| | |
skipping to change at line 3142 | | skipping to change at line 4388 |
// | | // |
// Flags for KERB_REFRESH_SCCRED_REQUEST | | // Flags for KERB_REFRESH_SCCRED_REQUEST |
// | | // |
// KERB_REFRESH_SCCRED_RELEASE | | // KERB_REFRESH_SCCRED_RELEASE |
// Release the smartcard handle for LUID | | // Release the smartcard handle for LUID |
// | | // |
// KERB_REFRESH_SCCRED_GETTGT | | // KERB_REFRESH_SCCRED_GETTGT |
// Use the certificate hash in the blob to get a TGT for the logon | | // Use the certificate hash in the blob to get a TGT for the logon |
// session. | | // session. |
// | | // |
|
| | |
#define KERB_REFRESH_SCCRED_RELEASE 0x0 | | #define KERB_REFRESH_SCCRED_RELEASE 0x0 |
#define KERB_REFRESH_SCCRED_GETTGT 0x1 | | #define KERB_REFRESH_SCCRED_GETTGT 0x1 |
|
| | #endif |
| | |
|
| | #if (_WIN32_WINNT != 0x0501) |
// | | // |
// Request structure for adding extra Server credentials to a given | | // Request structure for adding extra Server credentials to a given |
// logon session. Only applicable during AcceptSecurityContext, and | | // logon session. Only applicable during AcceptSecurityContext, and |
// requires TCB to alter "other" creds | | // requires TCB to alter "other" creds |
// | | // |
| | |
typedef struct _KERB_ADD_CREDENTIALS_REQUEST { | | typedef struct _KERB_ADD_CREDENTIALS_REQUEST { |
KERB_PROTOCOL_MESSAGE_TYPE MessageType; | | KERB_PROTOCOL_MESSAGE_TYPE MessageType; |
UNICODE_STRING UserName; | | UNICODE_STRING UserName; |
UNICODE_STRING DomainName; | | UNICODE_STRING DomainName; |
UNICODE_STRING Password; | | UNICODE_STRING Password; |
LUID LogonId; // optional | | LUID LogonId; // optional |
ULONG Flags; | | ULONG Flags; |
} KERB_ADD_CREDENTIALS_REQUEST, *PKERB_ADD_CREDENTIALS_REQUEST; | | } KERB_ADD_CREDENTIALS_REQUEST, *PKERB_ADD_CREDENTIALS_REQUEST; |
| | |
#define KERB_REQUEST_ADD_CREDENTIAL 1 | | #define KERB_REQUEST_ADD_CREDENTIAL 1 |
#define KERB_REQUEST_REPLACE_CREDENTIAL 2 | | #define KERB_REQUEST_REPLACE_CREDENTIAL 2 |
#define KERB_REQUEST_REMOVE_CREDENTIAL 4 | | #define KERB_REQUEST_REMOVE_CREDENTIAL 4 |
|
| | #endif |
| | |
// | | // |
// Request structure for transferring credentials between 2 luids. | | // Request structure for transferring credentials between 2 luids. |
// Requires TCB. | | // Requires TCB. |
// | | // |
| | |
typedef struct _KERB_TRANSFER_CRED_REQUEST { | | typedef struct _KERB_TRANSFER_CRED_REQUEST { |
KERB_PROTOCOL_MESSAGE_TYPE MessageType; | | KERB_PROTOCOL_MESSAGE_TYPE MessageType; |
LUID OriginLogonId; | | LUID OriginLogonId; |
LUID DestinationLogonId; | | LUID DestinationLogonId; |
ULONG Flags; | | ULONG Flags; |
} KERB_TRANSFER_CRED_REQUEST, *PKERB_TRANSFER_CRED_REQUEST; | | } KERB_TRANSFER_CRED_REQUEST, *PKERB_TRANSFER_CRED_REQUEST; |
| | |
|
| | #define KERB_TRANSFER_CRED_WITH_TICKETS 0x1 |
| | |
| | typedef struct _POLICY_AUDIT_SID_ARRAY { |
| | |
| | ULONG UsersCount; |
| | #ifdef MIDL_PASS |
| | [size_is(UsersCount)] PAUDIT_SID_RPC* UserSidArray; |
| | #else |
| | PSID* UserSidArray; |
| | #endif |
| | |
| | } POLICY_AUDIT_SID_ARRAY, *PPOLICY_AUDIT_SID_ARRAY; |
| | |
| | typedef struct _AUDIT_POLICY_INFORMATION { |
| | |
| | GUID AuditSubCategoryGuid; |
| | ULONG AuditingInformation; |
| | GUID AuditCategoryGuid; |
| | |
| | } AUDIT_POLICY_INFORMATION, *PAUDIT_POLICY_INFORMATION; |
| | |
| | typedef const PAUDIT_POLICY_INFORMATION PCAUDIT_POLICY_INFORMATION, LPCAUDIT_POL |
| | ICY_INFORMATION; |
| | |
| | #define AUDIT_SET_SYSTEM_POLICY (0x0001) |
| | #define AUDIT_QUERY_SYSTEM_POLICY (0x0002) |
| | #define AUDIT_SET_USER_POLICY (0x0004) |
| | #define AUDIT_QUERY_USER_POLICY (0x0008) |
| | #define AUDIT_ENUMERATE_USERS (0x0010) |
| | #define AUDIT_SET_MISC_POLICY (0x0020) |
| | #define AUDIT_QUERY_MISC_POLICY (0x0040) |
| | |
| | #define AUDIT_GENERIC_ALL (STANDARD_RIGHTS_REQUIRED |\ |
| | AUDIT_SET_SYSTEM_POLICY |\ |
| | AUDIT_QUERY_SYSTEM_POLICY |\ |
| | AUDIT_SET_USER_POLICY |\ |
| | AUDIT_QUERY_USER_POLICY |\ |
| | AUDIT_ENUMERATE_USERS |\ |
| | AUDIT_SET_MISC_POLICY |\ |
| | AUDIT_QUERY_MISC_POLICY) |
| | |
| | #define AUDIT_GENERIC_READ (STANDARD_RIGHTS_READ |\ |
| | AUDIT_QUERY_SYSTEM_POLICY |\ |
| | AUDIT_QUERY_USER_POLICY |\ |
| | AUDIT_ENUMERATE_USERS |\ |
| | AUDIT_QUERY_MISC_POLICY) |
| | |
| | #define AUDIT_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\ |
| | AUDIT_SET_USER_POLICY |\ |
| | AUDIT_SET_MISC_POLICY |\ |
| | AUDIT_SET_SYSTEM_POLICY) |
| | |
| | #define AUDIT_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE) |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditSetSystemPolicy( |
| | __in_ecount(PolicyCount) PCAUDIT_POLICY_INFORMATION pAuditPolicy, |
| | __in ULONG PolicyCount |
| | ); |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditSetPerUserPolicy( |
| | __in const PSID pSid, |
| | __in_ecount(PolicyCount) PCAUDIT_POLICY_INFORMATION pAuditPolicy, |
| | __in ULONG PolicyCount |
| | ); |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditQuerySystemPolicy( |
| | __in_ecount(PolicyCount) const GUID* pSubCategoryGuids, |
| | __in ULONG PolicyCount, |
| | __deref_out_ecount(PolicyCount) PAUDIT_POLICY_INFORMATION* ppAuditPolicy |
| | ); |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditQueryPerUserPolicy( |
| | __in const PSID pSid, |
| | __in_ecount(PolicyCount) const GUID* pSubCategoryGuids, |
| | __in ULONG PolicyCount, |
| | __deref_out_ecount(PolicyCount) PAUDIT_POLICY_INFORMATION* ppAuditPolicy |
| | ); |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditEnumeratePerUserPolicy( |
| | __out PPOLICY_AUDIT_SID_ARRAY* ppAuditSidArray |
| | ); |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditComputeEffectivePolicyBySid( |
| | __in const PSID pSid, |
| | __in_ecount(PolicyCount) const GUID* pSubCategoryGuids, |
| | __in ULONG PolicyCount, |
| | __deref_out_ecount(PolicyCount) PAUDIT_POLICY_INFORMATION* ppAuditPolicy |
| | ); |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditComputeEffectivePolicyByToken( |
| | __in HANDLE hTokenHandle, |
| | __in_ecount(PolicyCount) const GUID* pSubCategoryGuids, |
| | __in ULONG PolicyCount, |
| | __deref_out_ecount(PolicyCount) PAUDIT_POLICY_INFORMATION* ppAuditPolicy |
| | ); |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditEnumerateCategories( |
| | __deref_out_ecount(*pCountReturned) GUID** ppAuditCategoriesArray, |
| | __out PULONG pCountReturned |
| | ); |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditEnumerateSubCategories( |
| | __in_opt const GUID* pAuditCategoryGuid, |
| | __in BOOLEAN bRetrieveAllSubCategories, |
| | __deref_out_ecount(*pCountReturned) GUID** ppAuditSubCategoriesArray, |
| | __out PULONG pCountReturned |
| | ); |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditLookupCategoryNameW( |
| | __in const GUID* pAuditCategoryGuid, |
| | __deref_out PWSTR* ppszCategoryName |
| | ); |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditLookupCategoryNameA( |
| | __in const GUID* pAuditCategoryGuid, |
| | __deref_out PSTR* ppszCategoryName |
| | ); |
| | |
| | #ifdef UNICODE |
| | #define AuditLookupCategoryName AuditLookupCategoryNameW |
| | #else |
| | #define AuditLookupCategoryName AuditLookupCategoryNameA |
| | #endif |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditLookupSubCategoryNameW( |
| | __in const GUID* pAuditSubCategoryGuid, |
| | __deref_out PWSTR* ppszSubCategoryName |
| | ); |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditLookupSubCategoryNameA( |
| | __in const GUID* pAuditSubCategoryGuid, |
| | __deref_out PSTR* ppszSubCategoryName |
| | ); |
| | |
| | #ifdef UNICODE |
| | #define AuditLookupSubCategoryName AuditLookupSubCategoryNameW |
| | #else |
| | #define AuditLookupSubCategoryName AuditLookupSubCategoryNameA |
| | #endif |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditLookupCategoryIdFromCategoryGuid( |
| | __in const GUID* pAuditCategoryGuid, |
| | __out PPOLICY_AUDIT_EVENT_TYPE pAuditCategoryId |
| | ); |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditLookupCategoryGuidFromCategoryId( |
| | __in POLICY_AUDIT_EVENT_TYPE AuditCategoryId, |
| | __out GUID* pAuditCategoryGuid |
| | ); |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditSetSecurity( |
| | __in SECURITY_INFORMATION SecurityInformation, |
| | __in PSECURITY_DESCRIPTOR pSecurityDescriptor |
| | ); |
| | |
| | BOOLEAN |
| | NTAPI |
| | AuditQuerySecurity( |
| | __in SECURITY_INFORMATION SecurityInformation, |
| | __deref_out PSECURITY_DESCRIPTOR *ppSecurityDescriptor |
| | ); |
| | |
| | VOID |
| | NTAPI |
| | AuditFree( |
| | __in PVOID Buffer |
| | ); |
| | |
#ifdef __cplusplus | | #ifdef __cplusplus |
} | | } |
#endif | | #endif |
| | |
#endif /* _NTSECAPI_ */ | | #endif /* _NTSECAPI_ */ |
| | |
End of changes. 129 change blocks. |
73 lines changed or deleted | | 1567 lines changed or added |
|
sspi.h (5.2.3790.3959-Windows 5.0) | | sspi.h (6.0.6002.18005-Windows 6.0) |
| | |
skipping to change at line 13 | | skipping to change at line 13 |
// Microsoft Windows | | // Microsoft Windows |
// Copyright (C) Microsoft Corporation, 1992-1999. | | // Copyright (C) Microsoft Corporation, 1992-1999. |
// | | // |
// File: sspi.h | | // File: sspi.h |
// | | // |
// Contents: Security Support Provider Interface | | // Contents: Security Support Provider Interface |
// Prototypes and structure definitions | | // Prototypes and structure definitions |
// | | // |
// Functions: Security Support Provider API | | // Functions: Security Support Provider API |
// | | // |
|
// History: 11-24-93 RichardW Created | | |
// | | // |
//---------------------------------------------------------------------------- | | //---------------------------------------------------------------------------- |
| | |
|
| | #include <sdkddkver.h> |
| | |
// begin_ntifs | | // begin_ntifs |
#ifndef __SSPI_H__ | | #ifndef __SSPI_H__ |
#define __SSPI_H__ | | #define __SSPI_H__ |
// end_ntifs | | // end_ntifs |
| | |
#if _MSC_VER > 1000 | | #if _MSC_VER > 1000 |
#pragma once | | #pragma once |
#endif | | #endif |
| | |
#ifdef __cplusplus | | #ifdef __cplusplus |
| | |
skipping to change at line 97 | | skipping to change at line 98 |
#define SEC_FAR | | #define SEC_FAR |
#define SEC_ENTRY __stdcall | | #define SEC_ENTRY __stdcall |
| | |
// end_ntifs | | // end_ntifs |
| | |
// | | // |
// Decide what a string - 32 bits only since for 16 bits it is clear. | | // Decide what a string - 32 bits only since for 16 bits it is clear. |
// | | // |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
|
typedef SEC_WCHAR SEC_FAR * SECURITY_PSTR; | | typedef SEC_WCHAR * SECURITY_PSTR; |
typedef CONST SEC_WCHAR SEC_FAR * SECURITY_PCSTR; | | typedef CONST SEC_WCHAR * SECURITY_PCSTR; |
#else // UNICODE | | #else // UNICODE |
|
typedef SEC_CHAR SEC_FAR * SECURITY_PSTR; | | typedef SEC_CHAR * SECURITY_PSTR; |
typedef CONST SEC_CHAR SEC_FAR * SECURITY_PCSTR; | | typedef CONST SEC_CHAR * SECURITY_PCSTR; |
#endif // UNICODE | | #endif // UNICODE |
| | |
// | | // |
// Equivalent string for rpcrt: | | // Equivalent string for rpcrt: |
// | | // |
| | |
#define __SEC_FAR SEC_FAR | | #define __SEC_FAR SEC_FAR |
| | |
// | | // |
// Okay, security specific types: | | // Okay, security specific types: |
| | |
skipping to change at line 127 | | skipping to change at line 128 |
typedef struct _SecHandle | | typedef struct _SecHandle |
{ | | { |
ULONG_PTR dwLower ; | | ULONG_PTR dwLower ; |
ULONG_PTR dwUpper ; | | ULONG_PTR dwUpper ; |
} SecHandle, * PSecHandle ; | | } SecHandle, * PSecHandle ; |
| | |
#define __SECHANDLE_DEFINED__ | | #define __SECHANDLE_DEFINED__ |
#endif // __SECHANDLE_DEFINED__ | | #endif // __SECHANDLE_DEFINED__ |
| | |
#define SecInvalidateHandle( x ) \ | | #define SecInvalidateHandle( x ) \ |
|
((PSecHandle) x)->dwLower = ((ULONG_PTR) ((INT_PTR)-1)) ; \ | | ((PSecHandle) (x))->dwLower = ((PSecHandle) (x))->dwUpper = ((ULONG_ |
((PSecHandle) x)->dwUpper = ((ULONG_PTR) ((INT_PTR)-1)) ; \ | | PTR) ((INT_PTR)-1)) ; |
| | |
#define SecIsValidHandle( x ) \ | | #define SecIsValidHandle( x ) \ |
|
( ( ((PSecHandle) x)->dwLower != ((ULONG_PTR) ((INT_PTR) -1 ))) && \ | | ( ( ((PSecHandle) (x))->dwLower != ((ULONG_PTR) ((INT_PTR) -1 ))) && |
( ((PSecHandle) x)->dwUpper != ((ULONG_PTR) ((INT_PTR) -1 ))) ) | | \ |
| | ( ((PSecHandle) (x))->dwUpper != ((ULONG_PTR) ((INT_PTR) -1 ))) ) |
| | |
| | // |
| | // pseudo handle value: the handle has already been deleted |
| | // |
| | |
| | #define SEC_DELETED_HANDLE ((ULONG_PTR) (-2)) |
| | |
typedef SecHandle CredHandle; | | typedef SecHandle CredHandle; |
typedef PSecHandle PCredHandle; | | typedef PSecHandle PCredHandle; |
| | |
typedef SecHandle CtxtHandle; | | typedef SecHandle CtxtHandle; |
typedef PSecHandle PCtxtHandle; | | typedef PSecHandle PCtxtHandle; |
| | |
// end_ntifs | | // end_ntifs |
| | |
# ifdef WIN32_CHICAGO | | # ifdef WIN32_CHICAGO |
| | |
skipping to change at line 165 | | skipping to change at line 171 |
{ | | { |
unsigned long LowPart; | | unsigned long LowPart; |
long HighPart; | | long HighPart; |
} SECURITY_INTEGER, *PSECURITY_INTEGER; | | } SECURITY_INTEGER, *PSECURITY_INTEGER; |
| | |
# endif // _NTDEF_ || _WINNT_ | | # endif // _NTDEF_ || _WINNT_ |
| | |
# ifndef SECURITY_MAC | | # ifndef SECURITY_MAC |
| | |
typedef SECURITY_INTEGER TimeStamp; // ntifs | | typedef SECURITY_INTEGER TimeStamp; // ntifs |
|
typedef SECURITY_INTEGER SEC_FAR * PTimeStamp; // ntifs | | typedef SECURITY_INTEGER * PTimeStamp; // ntifs |
| | |
# else // SECURITY_MAC | | # else // SECURITY_MAC |
typedef unsigned long TimeStamp; | | typedef unsigned long TimeStamp; |
typedef unsigned long * PTimeStamp; | | typedef unsigned long * PTimeStamp; |
# endif // SECUIRT_MAC | | # endif // SECUIRT_MAC |
| | |
// | | // |
// If we are in 32 bit mode, define the SECURITY_STRING structure, | | // If we are in 32 bit mode, define the SECURITY_STRING structure, |
// as a clone of the base UNICODE_STRING structure. This is used | | // as a clone of the base UNICODE_STRING structure. This is used |
// internally in security components, an as the string interface | | // internally in security components, an as the string interface |
| | |
skipping to change at line 209 | | skipping to change at line 215 |
| | |
typedef struct _SecPkgInfoW | | typedef struct _SecPkgInfoW |
{ | | { |
unsigned long fCapabilities; // Capability bitmask | | unsigned long fCapabilities; // Capability bitmask |
unsigned short wVersion; // Version of driver | | unsigned short wVersion; // Version of driver |
unsigned short wRPCID; // ID for RPC Runtime | | unsigned short wRPCID; // ID for RPC Runtime |
unsigned long cbMaxToken; // Size of authentication token (max) | | unsigned long cbMaxToken; // Size of authentication token (max) |
#ifdef MIDL_PASS | | #ifdef MIDL_PASS |
[string] | | [string] |
#endif | | #endif |
|
SEC_WCHAR SEC_FAR * Name; // Text name | | SEC_WCHAR * Name; // Text name |
| | |
#ifdef MIDL_PASS | | #ifdef MIDL_PASS |
[string] | | [string] |
#endif | | #endif |
|
SEC_WCHAR SEC_FAR * Comment; // Comment | | SEC_WCHAR * Comment; // Comment |
} SecPkgInfoW, SEC_FAR * PSecPkgInfoW; | | } SecPkgInfoW, * PSecPkgInfoW; |
| | |
// end_ntifs | | // end_ntifs |
| | |
typedef struct _SecPkgInfoA | | typedef struct _SecPkgInfoA |
{ | | { |
unsigned long fCapabilities; // Capability bitmask | | unsigned long fCapabilities; // Capability bitmask |
unsigned short wVersion; // Version of driver | | unsigned short wVersion; // Version of driver |
unsigned short wRPCID; // ID for RPC Runtime | | unsigned short wRPCID; // ID for RPC Runtime |
unsigned long cbMaxToken; // Size of authentication token (max) | | unsigned long cbMaxToken; // Size of authentication token (max) |
#ifdef MIDL_PASS | | #ifdef MIDL_PASS |
[string] | | [string] |
#endif | | #endif |
|
SEC_CHAR SEC_FAR * Name; // Text name | | SEC_CHAR * Name; // Text name |
| | |
#ifdef MIDL_PASS | | #ifdef MIDL_PASS |
[string] | | [string] |
#endif | | #endif |
|
SEC_CHAR SEC_FAR * Comment; // Comment | | SEC_CHAR * Comment; // Comment |
} SecPkgInfoA, SEC_FAR * PSecPkgInfoA; | | } SecPkgInfoA, * PSecPkgInfoA; |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
# define SecPkgInfo SecPkgInfoW // ntifs | | # define SecPkgInfo SecPkgInfoW // ntifs |
# define PSecPkgInfo PSecPkgInfoW // ntifs | | # define PSecPkgInfo PSecPkgInfoW // ntifs |
#else | | #else |
# define SecPkgInfo SecPkgInfoA | | # define SecPkgInfo SecPkgInfoA |
# define PSecPkgInfo PSecPkgInfoA | | # define PSecPkgInfo PSecPkgInfoA |
#endif // !UNICODE | | #endif // !UNICODE |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
// | | // |
// Security Package Capabilities | | // Security Package Capabilities |
// | | // |
|
#define SECPKG_FLAG_INTEGRITY 0x00000001 // Supports integrity | | #define SECPKG_FLAG_INTEGRITY 0x00000001 // Supports integrit |
on messages | | y on messages |
#define SECPKG_FLAG_PRIVACY 0x00000002 // Supports privacy ( | | #define SECPKG_FLAG_PRIVACY 0x00000002 // Supports privacy |
confidentiality) | | (confidentiality) |
#define SECPKG_FLAG_TOKEN_ONLY 0x00000004 // Only security toke | | #define SECPKG_FLAG_TOKEN_ONLY 0x00000004 // Only security tok |
n needed | | en needed |
#define SECPKG_FLAG_DATAGRAM 0x00000008 // Datagram RPC suppo | | #define SECPKG_FLAG_DATAGRAM 0x00000008 // Datagram RPC supp |
rt | | ort |
#define SECPKG_FLAG_CONNECTION 0x00000010 // Connection oriente | | #define SECPKG_FLAG_CONNECTION 0x00000010 // Connection orient |
d RPC support | | ed RPC support |
#define SECPKG_FLAG_MULTI_REQUIRED 0x00000020 // Full 3-leg require | | #define SECPKG_FLAG_MULTI_REQUIRED 0x00000020 // Full 3-leg requir |
d for re-auth. | | ed for re-auth. |
#define SECPKG_FLAG_CLIENT_ONLY 0x00000040 // Server side functi | | #define SECPKG_FLAG_CLIENT_ONLY 0x00000040 // Server side funct |
onality not available | | ionality not available |
#define SECPKG_FLAG_EXTENDED_ERROR 0x00000080 // Supports extended | | #define SECPKG_FLAG_EXTENDED_ERROR 0x00000080 // Supports extended |
error msgs | | error msgs |
#define SECPKG_FLAG_IMPERSONATION 0x00000100 // Supports impersona | | #define SECPKG_FLAG_IMPERSONATION 0x00000100 // Supports imperson |
tion | | ation |
#define SECPKG_FLAG_ACCEPT_WIN32_NAME 0x00000200 // Accepts Win32 name | | #define SECPKG_FLAG_ACCEPT_WIN32_NAME 0x00000200 // Accepts Win32 nam |
s | | es |
#define SECPKG_FLAG_STREAM 0x00000400 // Supports stream se | | #define SECPKG_FLAG_STREAM 0x00000400 // Supports stream s |
mantics | | emantics |
#define SECPKG_FLAG_NEGOTIABLE 0x00000800 // Can be used by the | | #define SECPKG_FLAG_NEGOTIABLE 0x00000800 // Can be used by th |
negotiate package | | e negotiate package |
#define SECPKG_FLAG_GSS_COMPATIBLE 0x00001000 // GSS Compatibility | | #define SECPKG_FLAG_GSS_COMPATIBLE 0x00001000 // GSS Compatibility |
Available | | Available |
#define SECPKG_FLAG_LOGON 0x00002000 // Supports common Ls | | #define SECPKG_FLAG_LOGON 0x00002000 // Supports common L |
aLogonUser | | saLogonUser |
#define SECPKG_FLAG_ASCII_BUFFERS 0x00004000 // Token Buffers are | | #define SECPKG_FLAG_ASCII_BUFFERS 0x00004000 // Token Buffers are |
in ASCII | | in ASCII |
#define SECPKG_FLAG_FRAGMENT 0x00008000 // Package can fragme | | #define SECPKG_FLAG_FRAGMENT 0x00008000 // Package can fragm |
nt to fit | | ent to fit |
#define SECPKG_FLAG_MUTUAL_AUTH 0x00010000 // Package can perfor | | #define SECPKG_FLAG_MUTUAL_AUTH 0x00010000 // Package can perfo |
m mutual authentication | | rm mutual authentication |
#define SECPKG_FLAG_DELEGATION 0x00020000 // Package can delega | | #define SECPKG_FLAG_DELEGATION 0x00020000 // Package can deleg |
te | | ate |
#define SECPKG_FLAG_READONLY_WITH_CHECKSUM 0x00040000 // Package can delega | | #define SECPKG_FLAG_READONLY_WITH_CHECKSUM 0x00040000 // Package can deleg |
te | | ate |
| | #define SECPKG_FLAG_RESTRICTED_TOKENS 0x00080000 // Package supports |
| | restricted callers |
| | |
#define SECPKG_ID_NONE 0xFFFF | | #define SECPKG_ID_NONE 0xFFFF |
| | |
// | | // |
// SecBuffer | | // SecBuffer |
// | | // |
// Generic memory descriptors for buffers passed in to the security | | // Generic memory descriptors for buffers passed in to the security |
// API | | // API |
// | | // |
| | |
typedef struct _SecBuffer { | | typedef struct _SecBuffer { |
unsigned long cbBuffer; // Size of the buffer, in bytes | | unsigned long cbBuffer; // Size of the buffer, in bytes |
unsigned long BufferType; // Type of the buffer (below) | | unsigned long BufferType; // Type of the buffer (below) |
|
void SEC_FAR * pvBuffer; // Pointer to the buffer | | __field_bcount(cbBuffer) void SEC_FAR * pvBuffer; // Pointer to t |
} SecBuffer, SEC_FAR * PSecBuffer; | | he buffer |
| | } SecBuffer, * PSecBuffer; |
| | |
typedef struct _SecBufferDesc { | | typedef struct _SecBufferDesc { |
unsigned long ulVersion; // Version number | | unsigned long ulVersion; // Version number |
unsigned long cBuffers; // Number of buffers | | unsigned long cBuffers; // Number of buffers |
#ifdef MIDL_PASS | | #ifdef MIDL_PASS |
[size_is(cBuffers)] | | [size_is(cBuffers)] |
#endif | | #endif |
|
PSecBuffer pBuffers; // Pointer to array of buffers | | __field_ecount(cBuffers) PSecBuffer pBuffers; // Pointer to a
rray of buffers |
} SecBufferDesc, SEC_FAR * PSecBufferDesc; | | } SecBufferDesc, SEC_FAR * PSecBufferDesc; |
| | |
#define SECBUFFER_VERSION 0 | | #define SECBUFFER_VERSION 0 |
| | |
#define SECBUFFER_EMPTY 0 // Undefined, replaced by provider | | #define SECBUFFER_EMPTY 0 // Undefined, replaced by provider |
#define SECBUFFER_DATA 1 // Packet data | | #define SECBUFFER_DATA 1 // Packet data |
#define SECBUFFER_TOKEN 2 // Security token | | #define SECBUFFER_TOKEN 2 // Security token |
#define SECBUFFER_PKG_PARAMS 3 // Package specific parameters | | #define SECBUFFER_PKG_PARAMS 3 // Package specific parameters |
#define SECBUFFER_MISSING 4 // Missing Data indicator | | #define SECBUFFER_MISSING 4 // Missing Data indicator |
#define SECBUFFER_EXTRA 5 // Extra data | | #define SECBUFFER_EXTRA 5 // Extra data |
#define SECBUFFER_STREAM_TRAILER 6 // Security Trailer | | #define SECBUFFER_STREAM_TRAILER 6 // Security Trailer |
#define SECBUFFER_STREAM_HEADER 7 // Security Header | | #define SECBUFFER_STREAM_HEADER 7 // Security Header |
#define SECBUFFER_NEGOTIATION_INFO 8 // Hints from the negotiation pkg | | #define SECBUFFER_NEGOTIATION_INFO 8 // Hints from the negotiation pkg |
#define SECBUFFER_PADDING 9 // non-data padding | | #define SECBUFFER_PADDING 9 // non-data padding |
#define SECBUFFER_STREAM 10 // whole encrypted message | | #define SECBUFFER_STREAM 10 // whole encrypted message |
#define SECBUFFER_MECHLIST 11 | | #define SECBUFFER_MECHLIST 11 |
#define SECBUFFER_MECHLIST_SIGNATURE 12 | | #define SECBUFFER_MECHLIST_SIGNATURE 12 |
|
#define SECBUFFER_TARGET 13 | | #define SECBUFFER_TARGET 13 // obsolete |
#define SECBUFFER_CHANNEL_BINDINGS 14 | | #define SECBUFFER_CHANNEL_BINDINGS 14 |
|
| | #define SECBUFFER_CHANGE_PASS_RESPONSE 15 |
| | |
|
#define SECBUFFER_ATTRMASK 0xF0000000 | | #define SECBUFFER_ATTRMASK 0xF0000000 |
#define SECBUFFER_READONLY 0x80000000 // Buffer is read-onl | | #define SECBUFFER_READONLY 0x80000000 // Buffer is read-on |
y, no checksum | | ly, no checksum |
#define SECBUFFER_READONLY_WITH_CHECKSUM 0x10000000 // Buffer is read-onl | | #define SECBUFFER_READONLY_WITH_CHECKSUM 0x10000000 // Buffer is read-on |
y, and checksummed | | ly, and checksummed |
#define SECBUFFER_RESERVED 0x60000000 // Flags reserved to | | #define SECBUFFER_RESERVED 0x60000000 // Flags reserved to |
security system | | security system |
| | |
typedef struct _SEC_NEGOTIATION_INFO { | | typedef struct _SEC_NEGOTIATION_INFO { |
unsigned long Size; // Size of this structure | | unsigned long Size; // Size of this structure |
unsigned long NameLength; // Length of name hint | | unsigned long NameLength; // Length of name hint |
|
SEC_WCHAR SEC_FAR * Name; // Name hint | | SEC_WCHAR * Name; // Name hint |
void SEC_FAR * Reserved; // Reserved | | void * Reserved; // Reserved |
} SEC_NEGOTIATION_INFO, SEC_FAR * PSEC_NEGOTIATION_INFO ; | | } SEC_NEGOTIATION_INFO, * PSEC_NEGOTIATION_INFO ; |
| | |
typedef struct _SEC_CHANNEL_BINDINGS { | | typedef struct _SEC_CHANNEL_BINDINGS { |
unsigned long dwInitiatorAddrType; | | unsigned long dwInitiatorAddrType; |
unsigned long cbInitiatorLength; | | unsigned long cbInitiatorLength; |
unsigned long dwInitiatorOffset; | | unsigned long dwInitiatorOffset; |
unsigned long dwAcceptorAddrType; | | unsigned long dwAcceptorAddrType; |
unsigned long cbAcceptorLength; | | unsigned long cbAcceptorLength; |
unsigned long dwAcceptorOffset; | | unsigned long dwAcceptorOffset; |
unsigned long cbApplicationDataLength; | | unsigned long cbApplicationDataLength; |
unsigned long dwApplicationDataOffset; | | unsigned long dwApplicationDataOffset; |
|
} SEC_CHANNEL_BINDINGS, SEC_FAR * PSEC_CHANNEL_BINDINGS ; | | } SEC_CHANNEL_BINDINGS, * PSEC_CHANNEL_BINDINGS ; |
| | |
// | | // |
// Data Representation Constant: | | // Data Representation Constant: |
// | | // |
#define SECURITY_NATIVE_DREP 0x00000010 | | #define SECURITY_NATIVE_DREP 0x00000010 |
#define SECURITY_NETWORK_DREP 0x00000000 | | #define SECURITY_NETWORK_DREP 0x00000000 |
| | |
// | | // |
// Credential Use Flags | | // Credential Use Flags |
// | | // |
| | |
skipping to change at line 375 | | skipping to change at line 383 |
#define ISC_REQ_CALL_LEVEL 0x00001000 | | #define ISC_REQ_CALL_LEVEL 0x00001000 |
#define ISC_REQ_FRAGMENT_SUPPLIED 0x00002000 | | #define ISC_REQ_FRAGMENT_SUPPLIED 0x00002000 |
#define ISC_REQ_EXTENDED_ERROR 0x00004000 | | #define ISC_REQ_EXTENDED_ERROR 0x00004000 |
#define ISC_REQ_STREAM 0x00008000 | | #define ISC_REQ_STREAM 0x00008000 |
#define ISC_REQ_INTEGRITY 0x00010000 | | #define ISC_REQ_INTEGRITY 0x00010000 |
#define ISC_REQ_IDENTIFY 0x00020000 | | #define ISC_REQ_IDENTIFY 0x00020000 |
#define ISC_REQ_NULL_SESSION 0x00040000 | | #define ISC_REQ_NULL_SESSION 0x00040000 |
#define ISC_REQ_MANUAL_CRED_VALIDATION 0x00080000 | | #define ISC_REQ_MANUAL_CRED_VALIDATION 0x00080000 |
#define ISC_REQ_RESERVED1 0x00100000 | | #define ISC_REQ_RESERVED1 0x00100000 |
#define ISC_REQ_FRAGMENT_TO_FIT 0x00200000 | | #define ISC_REQ_FRAGMENT_TO_FIT 0x00200000 |
|
| | // This exists only in Longhorn and greater |
| | #define ISC_REQ_FORWARD_CREDENTIALS 0x00400000 |
| | #define ISC_REQ_NO_INTEGRITY 0x00800000 // honored only by SPNEGO |
| | |
#define ISC_RET_DELEGATE 0x00000001 | | #define ISC_RET_DELEGATE 0x00000001 |
#define ISC_RET_MUTUAL_AUTH 0x00000002 | | #define ISC_RET_MUTUAL_AUTH 0x00000002 |
#define ISC_RET_REPLAY_DETECT 0x00000004 | | #define ISC_RET_REPLAY_DETECT 0x00000004 |
#define ISC_RET_SEQUENCE_DETECT 0x00000008 | | #define ISC_RET_SEQUENCE_DETECT 0x00000008 |
#define ISC_RET_CONFIDENTIALITY 0x00000010 | | #define ISC_RET_CONFIDENTIALITY 0x00000010 |
#define ISC_RET_USE_SESSION_KEY 0x00000020 | | #define ISC_RET_USE_SESSION_KEY 0x00000020 |
#define ISC_RET_USED_COLLECTED_CREDS 0x00000040 | | #define ISC_RET_USED_COLLECTED_CREDS 0x00000040 |
#define ISC_RET_USED_SUPPLIED_CREDS 0x00000080 | | #define ISC_RET_USED_SUPPLIED_CREDS 0x00000080 |
#define ISC_RET_ALLOCATED_MEMORY 0x00000100 | | #define ISC_RET_ALLOCATED_MEMORY 0x00000100 |
| | |
skipping to change at line 398 | | skipping to change at line 409 |
#define ISC_RET_INTERMEDIATE_RETURN 0x00001000 | | #define ISC_RET_INTERMEDIATE_RETURN 0x00001000 |
#define ISC_RET_CALL_LEVEL 0x00002000 | | #define ISC_RET_CALL_LEVEL 0x00002000 |
#define ISC_RET_EXTENDED_ERROR 0x00004000 | | #define ISC_RET_EXTENDED_ERROR 0x00004000 |
#define ISC_RET_STREAM 0x00008000 | | #define ISC_RET_STREAM 0x00008000 |
#define ISC_RET_INTEGRITY 0x00010000 | | #define ISC_RET_INTEGRITY 0x00010000 |
#define ISC_RET_IDENTIFY 0x00020000 | | #define ISC_RET_IDENTIFY 0x00020000 |
#define ISC_RET_NULL_SESSION 0x00040000 | | #define ISC_RET_NULL_SESSION 0x00040000 |
#define ISC_RET_MANUAL_CRED_VALIDATION 0x00080000 | | #define ISC_RET_MANUAL_CRED_VALIDATION 0x00080000 |
#define ISC_RET_RESERVED1 0x00100000 | | #define ISC_RET_RESERVED1 0x00100000 |
#define ISC_RET_FRAGMENT_ONLY 0x00200000 | | #define ISC_RET_FRAGMENT_ONLY 0x00200000 |
|
| | // This exists only in Longhorn and greater |
| | #define ISC_RET_FORWARD_CREDENTIALS 0x00400000 |
| | #define ISC_RET_NO_ADDITIONAL_TOKEN 0x02000000 // *INTERNAL* |
| | |
#define ASC_REQ_DELEGATE 0x00000001 | | #define ASC_REQ_DELEGATE 0x00000001 |
#define ASC_REQ_MUTUAL_AUTH 0x00000002 | | #define ASC_REQ_MUTUAL_AUTH 0x00000002 |
#define ASC_REQ_REPLAY_DETECT 0x00000004 | | #define ASC_REQ_REPLAY_DETECT 0x00000004 |
#define ASC_REQ_SEQUENCE_DETECT 0x00000008 | | #define ASC_REQ_SEQUENCE_DETECT 0x00000008 |
#define ASC_REQ_CONFIDENTIALITY 0x00000010 | | #define ASC_REQ_CONFIDENTIALITY 0x00000010 |
#define ASC_REQ_USE_SESSION_KEY 0x00000020 | | #define ASC_REQ_USE_SESSION_KEY 0x00000020 |
#define ASC_REQ_ALLOCATE_MEMORY 0x00000100 | | #define ASC_REQ_ALLOCATE_MEMORY 0x00000100 |
#define ASC_REQ_USE_DCE_STYLE 0x00000200 | | #define ASC_REQ_USE_DCE_STYLE 0x00000200 |
#define ASC_REQ_DATAGRAM 0x00000400 | | #define ASC_REQ_DATAGRAM 0x00000400 |
| | |
skipping to change at line 441 | | skipping to change at line 455 |
#define ASC_RET_CONNECTION 0x00000800 | | #define ASC_RET_CONNECTION 0x00000800 |
#define ASC_RET_CALL_LEVEL 0x00002000 // skipped 1000 to be like IS
C_ | | #define ASC_RET_CALL_LEVEL 0x00002000 // skipped 1000 to be like IS
C_ |
#define ASC_RET_THIRD_LEG_FAILED 0x00004000 | | #define ASC_RET_THIRD_LEG_FAILED 0x00004000 |
#define ASC_RET_EXTENDED_ERROR 0x00008000 | | #define ASC_RET_EXTENDED_ERROR 0x00008000 |
#define ASC_RET_STREAM 0x00010000 | | #define ASC_RET_STREAM 0x00010000 |
#define ASC_RET_INTEGRITY 0x00020000 | | #define ASC_RET_INTEGRITY 0x00020000 |
#define ASC_RET_LICENSING 0x00040000 | | #define ASC_RET_LICENSING 0x00040000 |
#define ASC_RET_IDENTIFY 0x00080000 | | #define ASC_RET_IDENTIFY 0x00080000 |
#define ASC_RET_NULL_SESSION 0x00100000 | | #define ASC_RET_NULL_SESSION 0x00100000 |
#define ASC_RET_ALLOW_NON_USER_LOGONS 0x00200000 | | #define ASC_RET_ALLOW_NON_USER_LOGONS 0x00200000 |
|
#define ASC_RET_ALLOW_CONTEXT_REPLAY 0x00400000 | | #define ASC_RET_ALLOW_CONTEXT_REPLAY 0x00400000 // deprecated - don't use th
is flag!!! |
#define ASC_RET_FRAGMENT_ONLY 0x00800000 | | #define ASC_RET_FRAGMENT_ONLY 0x00800000 |
#define ASC_RET_NO_TOKEN 0x01000000 | | #define ASC_RET_NO_TOKEN 0x01000000 |
|
| | #define ASC_RET_NO_ADDITIONAL_TOKEN 0x02000000 // *INTERNAL* |
| | |
// | | // |
// Security Credentials Attributes: | | // Security Credentials Attributes: |
// | | // |
| | |
#define SECPKG_CRED_ATTR_NAMES 1 | | #define SECPKG_CRED_ATTR_NAMES 1 |
#define SECPKG_CRED_ATTR_SSI_PROVIDER 2 | | #define SECPKG_CRED_ATTR_SSI_PROVIDER 2 |
| | |
typedef struct _SecPkgCredentials_NamesW | | typedef struct _SecPkgCredentials_NamesW |
{ | | { |
|
SEC_WCHAR SEC_FAR * sUserName; | | SEC_WCHAR * sUserName; |
} SecPkgCredentials_NamesW, SEC_FAR * PSecPkgCredentials_NamesW; | | } SecPkgCredentials_NamesW, * PSecPkgCredentials_NamesW; |
| | |
// end_ntifs | | // end_ntifs |
| | |
typedef struct _SecPkgCredentials_NamesA | | typedef struct _SecPkgCredentials_NamesA |
{ | | { |
|
SEC_CHAR SEC_FAR * sUserName; | | SEC_CHAR * sUserName; |
} SecPkgCredentials_NamesA, SEC_FAR * PSecPkgCredentials_NamesA; | | } SecPkgCredentials_NamesA, * PSecPkgCredentials_NamesA; |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
# define SecPkgCredentials_Names SecPkgCredentials_NamesW // ntifs | | # define SecPkgCredentials_Names SecPkgCredentials_NamesW // ntifs |
# define PSecPkgCredentials_Names PSecPkgCredentials_NamesW // ntifs | | # define PSecPkgCredentials_Names PSecPkgCredentials_NamesW // ntifs |
#else | | #else |
# define SecPkgCredentials_Names SecPkgCredentials_NamesA | | # define SecPkgCredentials_Names SecPkgCredentials_NamesA |
# define PSecPkgCredentials_Names PSecPkgCredentials_NamesA | | # define PSecPkgCredentials_Names PSecPkgCredentials_NamesA |
#endif // !UNICODE | | #endif // !UNICODE |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
|
| | #if NTDDI_VERSION > NTDDI_WS03 |
typedef struct _SecPkgCredentials_SSIProviderW | | typedef struct _SecPkgCredentials_SSIProviderW |
{ | | { |
|
SEC_WCHAR SEC_FAR * sProviderName; | | SEC_WCHAR * sProviderName; |
unsigned long ProviderInfoLength; | | unsigned long ProviderInfoLength; |
|
char SEC_FAR * ProviderInfo; | | char * ProviderInfo; |
} SecPkgCredentials_SSIProviderW, SEC_FAR * PSecPkgCredentials_SSIProviderW; | | } SecPkgCredentials_SSIProviderW, * PSecPkgCredentials_SSIProviderW; |
| | #endif // End W2k3SP1 and greater |
// end ntifs | | // end_ntifs |
| | |
typedef struct _SecPkgCredentials_SSIProviderA | | typedef struct _SecPkgCredentials_SSIProviderA |
{ | | { |
|
SEC_CHAR SEC_FAR * sProviderName; | | SEC_CHAR * sProviderName; |
unsigned long ProviderInfoLength; | | unsigned long ProviderInfoLength; |
|
char SEC_FAR * ProviderInfo; | | char * ProviderInfo; |
} SecPkgCredentials_SSIProviderA, SEC_FAR * PSecPkgCredentials_SSIProviderA; | | } SecPkgCredentials_SSIProviderA, * PSecPkgCredentials_SSIProviderA; |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
# define SecPkgCredentials_SSIProvider SecPkgCredentials_SSIProviderW // n
tifs | | # define SecPkgCredentials_SSIProvider SecPkgCredentials_SSIProviderW // n
tifs |
# define PSecPkgCredentials_SSIProvider PSecPkgCredentials_SSIProviderW // n
tifs | | # define PSecPkgCredentials_SSIProvider PSecPkgCredentials_SSIProviderW // n
tifs |
#else | | #else |
# define SecPkgCredentials_SSIProvider SecPkgCredentials_SSIProviderA | | # define SecPkgCredentials_SSIProvider SecPkgCredentials_SSIProviderA |
# define PSecPkgCredentials_SSIProvider PSecPkgCredentials_SSIProviderA | | # define PSecPkgCredentials_SSIProvider PSecPkgCredentials_SSIProviderA |
#endif // !UNICODE | | #endif // !UNICODE |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
skipping to change at line 519 | | skipping to change at line 535 |
#define SECPKG_ATTR_KEY_INFO 5 | | #define SECPKG_ATTR_KEY_INFO 5 |
#define SECPKG_ATTR_AUTHORITY 6 | | #define SECPKG_ATTR_AUTHORITY 6 |
#define SECPKG_ATTR_PROTO_INFO 7 | | #define SECPKG_ATTR_PROTO_INFO 7 |
#define SECPKG_ATTR_PASSWORD_EXPIRY 8 | | #define SECPKG_ATTR_PASSWORD_EXPIRY 8 |
#define SECPKG_ATTR_SESSION_KEY 9 | | #define SECPKG_ATTR_SESSION_KEY 9 |
#define SECPKG_ATTR_PACKAGE_INFO 10 | | #define SECPKG_ATTR_PACKAGE_INFO 10 |
#define SECPKG_ATTR_USER_FLAGS 11 | | #define SECPKG_ATTR_USER_FLAGS 11 |
#define SECPKG_ATTR_NEGOTIATION_INFO 12 | | #define SECPKG_ATTR_NEGOTIATION_INFO 12 |
#define SECPKG_ATTR_NATIVE_NAMES 13 | | #define SECPKG_ATTR_NATIVE_NAMES 13 |
#define SECPKG_ATTR_FLAGS 14 | | #define SECPKG_ATTR_FLAGS 14 |
|
| | // These attributes exist only in Win XP and greater |
#define SECPKG_ATTR_USE_VALIDATED 15 | | #define SECPKG_ATTR_USE_VALIDATED 15 |
#define SECPKG_ATTR_CREDENTIAL_NAME 16 | | #define SECPKG_ATTR_CREDENTIAL_NAME 16 |
#define SECPKG_ATTR_TARGET_INFORMATION 17 | | #define SECPKG_ATTR_TARGET_INFORMATION 17 |
#define SECPKG_ATTR_ACCESS_TOKEN 18 | | #define SECPKG_ATTR_ACCESS_TOKEN 18 |
|
| | // These attributes exist only in Win2K3 and greater |
#define SECPKG_ATTR_TARGET 19 | | #define SECPKG_ATTR_TARGET 19 |
#define SECPKG_ATTR_AUTHENTICATION_ID 20 | | #define SECPKG_ATTR_AUTHENTICATION_ID 20 |
|
| | // These attributes exist only in Win2K3SP1 and greater |
#define SECPKG_ATTR_LOGOFF_TIME 21 | | #define SECPKG_ATTR_LOGOFF_TIME 21 |
| | |
typedef struct _SecPkgContext_Sizes | | typedef struct _SecPkgContext_Sizes |
{ | | { |
unsigned long cbMaxToken; | | unsigned long cbMaxToken; |
unsigned long cbMaxSignature; | | unsigned long cbMaxSignature; |
unsigned long cbBlockSize; | | unsigned long cbBlockSize; |
unsigned long cbSecurityTrailer; | | unsigned long cbSecurityTrailer; |
|
} SecPkgContext_Sizes, SEC_FAR * PSecPkgContext_Sizes; | | } SecPkgContext_Sizes, * PSecPkgContext_Sizes; |
| | |
typedef struct _SecPkgContext_StreamSizes | | typedef struct _SecPkgContext_StreamSizes |
{ | | { |
unsigned long cbHeader; | | unsigned long cbHeader; |
unsigned long cbTrailer; | | unsigned long cbTrailer; |
unsigned long cbMaximumMessage; | | unsigned long cbMaximumMessage; |
unsigned long cBuffers; | | unsigned long cBuffers; |
unsigned long cbBlockSize; | | unsigned long cbBlockSize; |
} SecPkgContext_StreamSizes, * PSecPkgContext_StreamSizes; | | } SecPkgContext_StreamSizes, * PSecPkgContext_StreamSizes; |
| | |
typedef struct _SecPkgContext_NamesW | | typedef struct _SecPkgContext_NamesW |
{ | | { |
|
SEC_WCHAR SEC_FAR * sUserName; | | SEC_WCHAR * sUserName; |
} SecPkgContext_NamesW, SEC_FAR * PSecPkgContext_NamesW; | | } SecPkgContext_NamesW, * PSecPkgContext_NamesW; |
| | |
// end_ntifs | | // end_ntifs |
| | |
typedef struct _SecPkgContext_NamesA | | typedef struct _SecPkgContext_NamesA |
{ | | { |
|
SEC_CHAR SEC_FAR * sUserName; | | SEC_CHAR * sUserName; |
} SecPkgContext_NamesA, SEC_FAR * PSecPkgContext_NamesA; | | } SecPkgContext_NamesA, * PSecPkgContext_NamesA; |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
# define SecPkgContext_Names SecPkgContext_NamesW // ntifs | | # define SecPkgContext_Names SecPkgContext_NamesW // ntifs |
# define PSecPkgContext_Names PSecPkgContext_NamesW // ntifs | | # define PSecPkgContext_Names PSecPkgContext_NamesW // ntifs |
#else | | #else |
# define SecPkgContext_Names SecPkgContext_NamesA | | # define SecPkgContext_Names SecPkgContext_NamesA |
# define PSecPkgContext_Names PSecPkgContext_NamesA | | # define PSecPkgContext_Names PSecPkgContext_NamesA |
#endif // !UNICODE | | #endif // !UNICODE |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
typedef struct _SecPkgContext_Lifespan | | typedef struct _SecPkgContext_Lifespan |
{ | | { |
TimeStamp tsStart; | | TimeStamp tsStart; |
TimeStamp tsExpiry; | | TimeStamp tsExpiry; |
|
} SecPkgContext_Lifespan, SEC_FAR * PSecPkgContext_Lifespan; | | } SecPkgContext_Lifespan, * PSecPkgContext_Lifespan; |
| | |
typedef struct _SecPkgContext_DceInfo | | typedef struct _SecPkgContext_DceInfo |
{ | | { |
unsigned long AuthzSvc; | | unsigned long AuthzSvc; |
|
void SEC_FAR * pPac; | | void * pPac; |
} SecPkgContext_DceInfo, SEC_FAR * PSecPkgContext_DceInfo; | | } SecPkgContext_DceInfo, * PSecPkgContext_DceInfo; |
| | |
// end_ntifs | | // end_ntifs |
| | |
typedef struct _SecPkgContext_KeyInfoA | | typedef struct _SecPkgContext_KeyInfoA |
{ | | { |
|
SEC_CHAR SEC_FAR * sSignatureAlgorithmName; | | SEC_CHAR * sSignatureAlgorithmName; |
SEC_CHAR SEC_FAR * sEncryptAlgorithmName; | | SEC_CHAR * sEncryptAlgorithmName; |
unsigned long KeySize; | | unsigned long KeySize; |
unsigned long SignatureAlgorithm; | | unsigned long SignatureAlgorithm; |
unsigned long EncryptAlgorithm; | | unsigned long EncryptAlgorithm; |
|
} SecPkgContext_KeyInfoA, SEC_FAR * PSecPkgContext_KeyInfoA; | | } SecPkgContext_KeyInfoA, * PSecPkgContext_KeyInfoA; |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
typedef struct _SecPkgContext_KeyInfoW | | typedef struct _SecPkgContext_KeyInfoW |
{ | | { |
|
SEC_WCHAR SEC_FAR * sSignatureAlgorithmName; | | SEC_WCHAR * sSignatureAlgorithmName; |
SEC_WCHAR SEC_FAR * sEncryptAlgorithmName; | | SEC_WCHAR * sEncryptAlgorithmName; |
unsigned long KeySize; | | unsigned long KeySize; |
unsigned long SignatureAlgorithm; | | unsigned long SignatureAlgorithm; |
unsigned long EncryptAlgorithm; | | unsigned long EncryptAlgorithm; |
|
} SecPkgContext_KeyInfoW, SEC_FAR * PSecPkgContext_KeyInfoW; | | } SecPkgContext_KeyInfoW, * PSecPkgContext_KeyInfoW; |
| | |
// end_ntifs | | // end_ntifs |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
#define SecPkgContext_KeyInfo SecPkgContext_KeyInfoW // ntifs | | #define SecPkgContext_KeyInfo SecPkgContext_KeyInfoW // ntifs |
#define PSecPkgContext_KeyInfo PSecPkgContext_KeyInfoW // ntifs | | #define PSecPkgContext_KeyInfo PSecPkgContext_KeyInfoW // ntifs |
#else | | #else |
#define SecPkgContext_KeyInfo SecPkgContext_KeyInfoA | | #define SecPkgContext_KeyInfo SecPkgContext_KeyInfoA |
#define PSecPkgContext_KeyInfo PSecPkgContext_KeyInfoA | | #define PSecPkgContext_KeyInfo PSecPkgContext_KeyInfoA |
#endif | | #endif |
| | |
typedef struct _SecPkgContext_AuthorityA | | typedef struct _SecPkgContext_AuthorityA |
{ | | { |
|
SEC_CHAR SEC_FAR * sAuthorityName; | | SEC_CHAR * sAuthorityName; |
} SecPkgContext_AuthorityA, * PSecPkgContext_AuthorityA; | | } SecPkgContext_AuthorityA, * PSecPkgContext_AuthorityA; |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
typedef struct _SecPkgContext_AuthorityW | | typedef struct _SecPkgContext_AuthorityW |
{ | | { |
|
SEC_WCHAR SEC_FAR * sAuthorityName; | | SEC_WCHAR * sAuthorityName; |
} SecPkgContext_AuthorityW, * PSecPkgContext_AuthorityW; | | } SecPkgContext_AuthorityW, * PSecPkgContext_AuthorityW; |
| | |
// end_ntifs | | // end_ntifs |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
#define SecPkgContext_Authority SecPkgContext_AuthorityW // ntifs | | #define SecPkgContext_Authority SecPkgContext_AuthorityW // ntifs |
#define PSecPkgContext_Authority PSecPkgContext_AuthorityW // ntifs | | #define PSecPkgContext_Authority PSecPkgContext_AuthorityW // ntifs |
#else | | #else |
#define SecPkgContext_Authority SecPkgContext_AuthorityA | | #define SecPkgContext_Authority SecPkgContext_AuthorityA |
#define PSecPkgContext_Authority PSecPkgContext_AuthorityA | | #define PSecPkgContext_Authority PSecPkgContext_AuthorityA |
#endif | | #endif |
| | |
typedef struct _SecPkgContext_ProtoInfoA | | typedef struct _SecPkgContext_ProtoInfoA |
{ | | { |
|
SEC_CHAR SEC_FAR * sProtocolName; | | SEC_CHAR * sProtocolName; |
unsigned long majorVersion; | | unsigned long majorVersion; |
unsigned long minorVersion; | | unsigned long minorVersion; |
|
} SecPkgContext_ProtoInfoA, SEC_FAR * PSecPkgContext_ProtoInfoA; | | } SecPkgContext_ProtoInfoA, * PSecPkgContext_ProtoInfoA; |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
typedef struct _SecPkgContext_ProtoInfoW | | typedef struct _SecPkgContext_ProtoInfoW |
{ | | { |
|
SEC_WCHAR SEC_FAR * sProtocolName; | | SEC_WCHAR * sProtocolName; |
unsigned long majorVersion; | | unsigned long majorVersion; |
unsigned long minorVersion; | | unsigned long minorVersion; |
|
} SecPkgContext_ProtoInfoW, SEC_FAR * PSecPkgContext_ProtoInfoW; | | } SecPkgContext_ProtoInfoW, * PSecPkgContext_ProtoInfoW; |
| | |
// end_ntifs | | // end_ntifs |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
#define SecPkgContext_ProtoInfo SecPkgContext_ProtoInfoW // ntifs | | #define SecPkgContext_ProtoInfo SecPkgContext_ProtoInfoW // ntifs |
#define PSecPkgContext_ProtoInfo PSecPkgContext_ProtoInfoW // ntifs | | #define PSecPkgContext_ProtoInfo PSecPkgContext_ProtoInfoW // ntifs |
#else | | #else |
#define SecPkgContext_ProtoInfo SecPkgContext_ProtoInfoA | | #define SecPkgContext_ProtoInfo SecPkgContext_ProtoInfoA |
#define PSecPkgContext_ProtoInfo PSecPkgContext_ProtoInfoA | | #define PSecPkgContext_ProtoInfo PSecPkgContext_ProtoInfoA |
#endif | | #endif |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
typedef struct _SecPkgContext_PasswordExpiry | | typedef struct _SecPkgContext_PasswordExpiry |
{ | | { |
TimeStamp tsPasswordExpires; | | TimeStamp tsPasswordExpires; |
|
} SecPkgContext_PasswordExpiry, SEC_FAR * PSecPkgContext_PasswordExpiry; | | } SecPkgContext_PasswordExpiry, * PSecPkgContext_PasswordExpiry; |
| | |
|
| | #if NTDDI_VERSION > NTDDI_WS03 |
typedef struct _SecPkgContext_LogoffTime | | typedef struct _SecPkgContext_LogoffTime |
{ | | { |
TimeStamp tsLogoffTime; | | TimeStamp tsLogoffTime; |
|
} SecPkgContext_LogoffTime, SEC_FAR * PSecPkgContext_LogoffTime; | | } SecPkgContext_LogoffTime, * PSecPkgContext_LogoffTime; |
| | #endif // Greater than Windows Server 2003 RTM (SP1 and greater contains this) |
| | |
typedef struct _SecPkgContext_SessionKey | | typedef struct _SecPkgContext_SessionKey |
{ | | { |
unsigned long SessionKeyLength; | | unsigned long SessionKeyLength; |
|
unsigned char SEC_FAR * SessionKey; | | __field_bcount(SessionKeyLength) unsigned char * SessionKey; |
} SecPkgContext_SessionKey, *PSecPkgContext_SessionKey; | | } SecPkgContext_SessionKey, *PSecPkgContext_SessionKey; |
| | |
typedef struct _SecPkgContext_PackageInfoW | | typedef struct _SecPkgContext_PackageInfoW |
{ | | { |
PSecPkgInfoW PackageInfo; | | PSecPkgInfoW PackageInfo; |
|
} SecPkgContext_PackageInfoW, SEC_FAR * PSecPkgContext_PackageInfoW; | | } SecPkgContext_PackageInfoW, * PSecPkgContext_PackageInfoW; |
| | |
// end_ntifs | | // end_ntifs |
| | |
typedef struct _SecPkgContext_PackageInfoA | | typedef struct _SecPkgContext_PackageInfoA |
{ | | { |
PSecPkgInfoA PackageInfo; | | PSecPkgInfoA PackageInfo; |
|
} SecPkgContext_PackageInfoA, SEC_FAR * PSecPkgContext_PackageInfoA; | | } SecPkgContext_PackageInfoA, * PSecPkgContext_PackageInfoA; |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
typedef struct _SecPkgContext_UserFlags | | typedef struct _SecPkgContext_UserFlags |
{ | | { |
unsigned long UserFlags; | | unsigned long UserFlags; |
|
} SecPkgContext_UserFlags, SEC_FAR * PSecPkgContext_UserFlags; | | } SecPkgContext_UserFlags, * PSecPkgContext_UserFlags; |
| | |
typedef struct _SecPkgContext_Flags | | typedef struct _SecPkgContext_Flags |
{ | | { |
unsigned long Flags; | | unsigned long Flags; |
|
} SecPkgContext_Flags, SEC_FAR * PSecPkgContext_Flags; | | } SecPkgContext_Flags, * PSecPkgContext_Flags; |
| | |
// end_ntifs | | // end_ntifs |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
#define SecPkgContext_PackageInfo SecPkgContext_PackageInfoW // ntifs | | #define SecPkgContext_PackageInfo SecPkgContext_PackageInfoW // ntifs |
#define PSecPkgContext_PackageInfo PSecPkgContext_PackageInfoW // ntifs | | #define PSecPkgContext_PackageInfo PSecPkgContext_PackageInfoW // ntifs |
#else | | #else |
#define SecPkgContext_PackageInfo SecPkgContext_PackageInfoA | | #define SecPkgContext_PackageInfo SecPkgContext_PackageInfoA |
#define PSecPkgContext_PackageInfo PSecPkgContext_PackageInfoA | | #define PSecPkgContext_PackageInfo PSecPkgContext_PackageInfoA |
#endif | | #endif |
| | |
typedef struct _SecPkgContext_NegotiationInfoA | | typedef struct _SecPkgContext_NegotiationInfoA |
{ | | { |
PSecPkgInfoA PackageInfo ; | | PSecPkgInfoA PackageInfo ; |
unsigned long NegotiationState ; | | unsigned long NegotiationState ; |
|
} SecPkgContext_NegotiationInfoA, SEC_FAR * PSecPkgContext_NegotiationInfoA ; | | } SecPkgContext_NegotiationInfoA, * PSecPkgContext_NegotiationInfoA ; |
| | |
// begin_ntifs | | // begin_ntifs |
typedef struct _SecPkgContext_NegotiationInfoW | | typedef struct _SecPkgContext_NegotiationInfoW |
{ | | { |
PSecPkgInfoW PackageInfo ; | | PSecPkgInfoW PackageInfo ; |
unsigned long NegotiationState ; | | unsigned long NegotiationState ; |
|
} SecPkgContext_NegotiationInfoW, SEC_FAR * PSecPkgContext_NegotiationInfoW ; | | } SecPkgContext_NegotiationInfoW, * PSecPkgContext_NegotiationInfoW ; |
| | |
// end_ntifs | | // end_ntifs |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
#define SecPkgContext_NegotiationInfo SecPkgContext_NegotiationInfoW | | #define SecPkgContext_NegotiationInfo SecPkgContext_NegotiationInfoW |
#define PSecPkgContext_NegotiationInfo PSecPkgContext_NegotiationInfoW | | #define PSecPkgContext_NegotiationInfo PSecPkgContext_NegotiationInfoW |
#else | | #else |
#define SecPkgContext_NegotiationInfo SecPkgContext_NegotiationInfoA | | #define SecPkgContext_NegotiationInfo SecPkgContext_NegotiationInfoA |
#define PSecPkgContext_NegotiationInfo PSecPkgContext_NegotiationInfoA | | #define PSecPkgContext_NegotiationInfo PSecPkgContext_NegotiationInfoA |
#endif | | #endif |
| | |
#define SECPKG_NEGOTIATION_COMPLETE 0 | | #define SECPKG_NEGOTIATION_COMPLETE 0 |
#define SECPKG_NEGOTIATION_OPTIMISTIC 1 | | #define SECPKG_NEGOTIATION_OPTIMISTIC 1 |
#define SECPKG_NEGOTIATION_IN_PROGRESS 2 | | #define SECPKG_NEGOTIATION_IN_PROGRESS 2 |
#define SECPKG_NEGOTIATION_DIRECT 3 | | #define SECPKG_NEGOTIATION_DIRECT 3 |
#define SECPKG_NEGOTIATION_TRY_MULTICRED 4 | | #define SECPKG_NEGOTIATION_TRY_MULTICRED 4 |
| | |
typedef struct _SecPkgContext_NativeNamesW | | typedef struct _SecPkgContext_NativeNamesW |
{ | | { |
|
SEC_WCHAR SEC_FAR * sClientName; | | SEC_WCHAR * sClientName; |
SEC_WCHAR SEC_FAR * sServerName; | | SEC_WCHAR * sServerName; |
} SecPkgContext_NativeNamesW, SEC_FAR * PSecPkgContext_NativeNamesW; | | } SecPkgContext_NativeNamesW, * PSecPkgContext_NativeNamesW; |
| | |
typedef struct _SecPkgContext_NativeNamesA | | typedef struct _SecPkgContext_NativeNamesA |
{ | | { |
|
SEC_CHAR SEC_FAR * sClientName; | | SEC_CHAR * sClientName; |
SEC_CHAR SEC_FAR * sServerName; | | SEC_CHAR * sServerName; |
} SecPkgContext_NativeNamesA, SEC_FAR * PSecPkgContext_NativeNamesA; | | } SecPkgContext_NativeNamesA, * PSecPkgContext_NativeNamesA; |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
# define SecPkgContext_NativeNames SecPkgContext_NativeNamesW // ntifs | | # define SecPkgContext_NativeNames SecPkgContext_NativeNamesW // ntifs |
# define PSecPkgContext_NativeNames PSecPkgContext_NativeNamesW // ntifs | | # define PSecPkgContext_NativeNames PSecPkgContext_NativeNamesW // ntifs |
#else | | #else |
# define SecPkgContext_NativeNames SecPkgContext_NativeNamesA | | # define SecPkgContext_NativeNames SecPkgContext_NativeNamesA |
# define PSecPkgContext_NativeNames PSecPkgContext_NativeNamesA | | # define PSecPkgContext_NativeNames PSecPkgContext_NativeNamesA |
#endif // !UNICODE | | #endif // !UNICODE |
| | |
// begin_ntifs | | // begin_ntifs |
|
| | |
| | #if OSVER(NTDDI_VERSION) > NTDDI_WIN2K |
| | |
typedef struct _SecPkgContext_CredentialNameW | | typedef struct _SecPkgContext_CredentialNameW |
{ | | { |
unsigned long CredentialType; | | unsigned long CredentialType; |
|
SEC_WCHAR SEC_FAR *sCredentialName; | | SEC_WCHAR *sCredentialName; |
} SecPkgContext_CredentialNameW, SEC_FAR * PSecPkgContext_CredentialNameW; | | } SecPkgContext_CredentialNameW, * PSecPkgContext_CredentialNameW; |
| | |
|
| | #endif // Later than win2k |
// end_ntifs | | // end_ntifs |
| | |
typedef struct _SecPkgContext_CredentialNameA | | typedef struct _SecPkgContext_CredentialNameA |
{ | | { |
unsigned long CredentialType; | | unsigned long CredentialType; |
|
SEC_CHAR SEC_FAR *sCredentialName; | | SEC_CHAR *sCredentialName; |
} SecPkgContext_CredentialNameA, SEC_FAR * PSecPkgContext_CredentialNameA; | | } SecPkgContext_CredentialNameA, * PSecPkgContext_CredentialNameA; |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
# define SecPkgContext_CredentialName SecPkgContext_CredentialNameW //
ntifs | | # define SecPkgContext_CredentialName SecPkgContext_CredentialNameW //
ntifs |
# define PSecPkgContext_CredentialName PSecPkgContext_CredentialNameW //
ntifs | | # define PSecPkgContext_CredentialName PSecPkgContext_CredentialNameW //
ntifs |
#else | | #else |
# define SecPkgContext_CredentialName SecPkgContext_CredentialNameA | | # define SecPkgContext_CredentialName SecPkgContext_CredentialNameA |
# define PSecPkgContext_CredentialName PSecPkgContext_CredentialNameA | | # define PSecPkgContext_CredentialName PSecPkgContext_CredentialNameA |
#endif // !UNICODE | | #endif // !UNICODE |
| | |
typedef struct _SecPkgContext_AccessToken | | typedef struct _SecPkgContext_AccessToken |
{ | | { |
|
void SEC_FAR * AccessToken; | | void * AccessToken; |
} SecPkgContext_AccessToken, SEC_FAR * PSecPkgContext_AccessToken; | | } SecPkgContext_AccessToken, * PSecPkgContext_AccessToken; |
| | |
typedef struct _SecPkgContext_TargetInformation | | typedef struct _SecPkgContext_TargetInformation |
{ | | { |
unsigned long MarshalledTargetInfoLength; | | unsigned long MarshalledTargetInfoLength; |
|
unsigned char SEC_FAR * MarshalledTargetInfo; | | unsigned char * MarshalledTargetInfo; |
| | |
|
} SecPkgContext_TargetInformation, SEC_FAR * PSecPkgContext_TargetInformation; | | } SecPkgContext_TargetInformation, * PSecPkgContext_TargetInformation; |
| | |
typedef struct _SecPkgContext_AuthzID | | typedef struct _SecPkgContext_AuthzID |
{ | | { |
unsigned long AuthzIDLength; | | unsigned long AuthzIDLength; |
|
char SEC_FAR * AuthzID; | | char * AuthzID; |
| | |
|
} SecPkgContext_AuthzID, SEC_FAR * PSecPkgContext_AuthzID; | | } SecPkgContext_AuthzID, * PSecPkgContext_AuthzID; |
| | |
typedef struct _SecPkgContext_Target | | typedef struct _SecPkgContext_Target |
{ | | { |
unsigned long TargetLength; | | unsigned long TargetLength; |
|
char SEC_FAR * Target; | | char * Target; |
| | |
|
} SecPkgContext_Target, SEC_FAR * PSecPkgContext_Target; | | } SecPkgContext_Target, * PSecPkgContext_Target; |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
typedef void | | typedef void |
|
(SEC_ENTRY SEC_FAR * SEC_GET_KEY_FN) ( | | (SEC_ENTRY * SEC_GET_KEY_FN) ( |
void SEC_FAR * Arg, // Argument passed in | | void * Arg, // Argument passed in |
void SEC_FAR * Principal, // Principal ID | | void * Principal, // Principal ID |
unsigned long KeyVer, // Key Version | | unsigned long KeyVer, // Key Version |
|
void SEC_FAR * SEC_FAR * Key, // Returned ptr to key | | void * * Key, // Returned ptr to key |
SECURITY_STATUS SEC_FAR * Status // returned status | | SECURITY_STATUS * Status // returned status |
); | | ); |
| | |
// | | // |
// Flags for ExportSecurityContext | | // Flags for ExportSecurityContext |
// | | // |
| | |
#define SECPKG_CONTEXT_EXPORT_RESET_NEW 0x00000001 // New context i
s reset to initial state | | #define SECPKG_CONTEXT_EXPORT_RESET_NEW 0x00000001 // New context i
s reset to initial state |
#define SECPKG_CONTEXT_EXPORT_DELETE_OLD 0x00000002 // Old context i
s deleted during export | | #define SECPKG_CONTEXT_EXPORT_DELETE_OLD 0x00000002 // Old context i
s deleted during export |
|
| | // This is only valid in W2K3SP1 and greater |
#define SECPKG_CONTEXT_EXPORT_TO_KERNEL 0x00000004 // Context is to
be transferred to the kernel | | #define SECPKG_CONTEXT_EXPORT_TO_KERNEL 0x00000004 // Context is to
be transferred to the kernel |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
AcquireCredentialsHandleW( | | AcquireCredentialsHandleW( |
|
#if ISSP_MODE == 0 // For Kernel mode | | #if ISSP_MODE == 0 // For Kernel mode |
PSECURITY_STRING pPrincipal, | | __in_opt PSECURITY_STRING pPrincipal, |
PSECURITY_STRING pPackage, | | __in PSECURITY_STRING pPackage, |
#else | | #else |
|
SEC_WCHAR SEC_FAR * pszPrincipal, // Name of principal | | __in_opt SEC_WCHAR * pszPrincipal, // Name of principal |
SEC_WCHAR SEC_FAR * pszPackage, // Name of package | | __in SEC_WCHAR * pszPackage, // Name of package |
#endif | | #endif |
|
unsigned long fCredentialUse, // Flags indicating use | | __in unsigned long fCredentialUse, // Flags indicating use |
void SEC_FAR * pvLogonId, // Pointer to logon ID | | __in_opt void * pvLogonId, // Pointer to logon ID |
void SEC_FAR * pAuthData, // Package specific data | | __in_opt void * pAuthData, // Package specific data |
SEC_GET_KEY_FN pGetKeyFn, // Pointer to GetKey() func | | __in_opt SEC_GET_KEY_FN pGetKeyFn, // Pointer to GetKey() func |
void SEC_FAR * pvGetKeyArgument, // Value to pass to GetKey() | | __in_opt void * pvGetKeyArgument, // Value to pass to GetKey() |
PCredHandle phCredential, // (out) Cred Handle | | __out PCredHandle phCredential, // (out) Cred Handle |
PTimeStamp ptsExpiry // (out) Lifetime (optional) | | __out_opt PTimeStamp ptsExpiry // (out) Lifetime (optional) |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * ACQUIRE_CREDENTIALS_HANDLE_FN_W)( | | (SEC_ENTRY * ACQUIRE_CREDENTIALS_HANDLE_FN_W)( |
#if ISSP_MODE == 0 | | #if ISSP_MODE == 0 |
PSECURITY_STRING, | | PSECURITY_STRING, |
PSECURITY_STRING, | | PSECURITY_STRING, |
#else | | #else |
|
SEC_WCHAR SEC_FAR *, | | SEC_WCHAR *, |
SEC_WCHAR SEC_FAR *, | | SEC_WCHAR *, |
#endif | | #endif |
unsigned long, | | unsigned long, |
|
void SEC_FAR *, | | void *, |
void SEC_FAR *, | | void *, |
SEC_GET_KEY_FN, | | SEC_GET_KEY_FN, |
|
void SEC_FAR *, | | void *, |
PCredHandle, | | PCredHandle, |
PTimeStamp); | | PTimeStamp); |
| | |
// end_ntifs | | // end_ntifs |
| | |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
AcquireCredentialsHandleA( | | AcquireCredentialsHandleA( |
|
SEC_CHAR SEC_FAR * pszPrincipal, // Name of principal | | __in_opt SEC_CHAR * pszPrincipal, // Name of principal |
SEC_CHAR SEC_FAR * pszPackage, // Name of package | | __in SEC_CHAR * pszPackage, // Name of package |
unsigned long fCredentialUse, // Flags indicating use | | __in unsigned long fCredentialUse, // Flags indicating use |
void SEC_FAR * pvLogonId, // Pointer to logon ID | | __in_opt void * pvLogonId, // Pointer to logon ID |
void SEC_FAR * pAuthData, // Package specific data | | __in_opt void * pAuthData, // Package specific data |
SEC_GET_KEY_FN pGetKeyFn, // Pointer to GetKey() func | | __in_opt SEC_GET_KEY_FN pGetKeyFn, // Pointer to GetKey() func |
void SEC_FAR * pvGetKeyArgument, // Value to pass to GetKey() | | __in_opt void * pvGetKeyArgument, // Value to pass to GetKey() |
PCredHandle phCredential, // (out) Cred Handle | | __out PCredHandle phCredential, // (out) Cred Handle |
PTimeStamp ptsExpiry // (out) Lifetime (optional) | | __out_opt PTimeStamp ptsExpiry // (out) Lifetime (optional) |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * ACQUIRE_CREDENTIALS_HANDLE_FN_A)( | | (SEC_ENTRY * ACQUIRE_CREDENTIALS_HANDLE_FN_A)( |
|
SEC_CHAR SEC_FAR *, | | SEC_CHAR *, |
SEC_CHAR SEC_FAR *, | | SEC_CHAR *, |
unsigned long, | | unsigned long, |
|
void SEC_FAR *, | | void *, |
void SEC_FAR *, | | void *, |
SEC_GET_KEY_FN, | | SEC_GET_KEY_FN, |
|
void SEC_FAR *, | | void *, |
PCredHandle, | | PCredHandle, |
PTimeStamp); | | PTimeStamp); |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
# define AcquireCredentialsHandle AcquireCredentialsHandleW // ntifs | | # define AcquireCredentialsHandle AcquireCredentialsHandleW // ntifs |
# define ACQUIRE_CREDENTIALS_HANDLE_FN ACQUIRE_CREDENTIALS_HANDLE_FN_W // ntifs | | # define ACQUIRE_CREDENTIALS_HANDLE_FN ACQUIRE_CREDENTIALS_HANDLE_FN_W // ntifs |
#else | | #else |
# define AcquireCredentialsHandle AcquireCredentialsHandleA | | # define AcquireCredentialsHandle AcquireCredentialsHandleA |
# define ACQUIRE_CREDENTIALS_HANDLE_FN ACQUIRE_CREDENTIALS_HANDLE_FN_A | | # define ACQUIRE_CREDENTIALS_HANDLE_FN ACQUIRE_CREDENTIALS_HANDLE_FN_A |
#endif // !UNICODE | | #endif // !UNICODE |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
FreeCredentialsHandle( | | FreeCredentialsHandle( |
|
PCredHandle phCredential // Handle to free | | __in PCredHandle phCredential // Handle to free |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * FREE_CREDENTIALS_HANDLE_FN)( | | (SEC_ENTRY * FREE_CREDENTIALS_HANDLE_FN)( |
PCredHandle ); | | PCredHandle ); |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
AddCredentialsW( | | AddCredentialsW( |
|
PCredHandle hCredentials, | | __in PCredHandle hCredentials, |
#if ISSP_MODE == 0 // For Kernel mode | | #if ISSP_MODE == 0 // For Kernel mode |
PSECURITY_STRING pPrincipal, | | __in_opt PSECURITY_STRING pPrincipal, |
PSECURITY_STRING pPackage, | | __in PSECURITY_STRING pPackage, |
#else | | #else |
|
SEC_WCHAR SEC_FAR * pszPrincipal, // Name of principal | | __in_opt SEC_WCHAR * pszPrincipal, // Name of principal |
SEC_WCHAR SEC_FAR * pszPackage, // Name of package | | __in SEC_WCHAR * pszPackage, // Name of package |
#endif | | #endif |
|
unsigned long fCredentialUse, // Flags indicating use | | __in unsigned long fCredentialUse, // Flags indicating use |
void SEC_FAR * pAuthData, // Package specific data | | __in_opt void * pAuthData, // Package specific data |
SEC_GET_KEY_FN pGetKeyFn, // Pointer to GetKey() func | | __in_opt SEC_GET_KEY_FN pGetKeyFn, // Pointer to GetKey() func |
void SEC_FAR * pvGetKeyArgument, // Value to pass to GetKey() | | __in_opt void * pvGetKeyArgument, // Value to pass to GetKey() |
PTimeStamp ptsExpiry // (out) Lifetime (optional) | | __out_opt PTimeStamp ptsExpiry // (out) Lifetime (optional) |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * ADD_CREDENTIALS_FN_W)( | | (SEC_ENTRY * ADD_CREDENTIALS_FN_W)( |
PCredHandle, | | PCredHandle, |
#if ISSP_MODE == 0 | | #if ISSP_MODE == 0 |
PSECURITY_STRING, | | PSECURITY_STRING, |
PSECURITY_STRING, | | PSECURITY_STRING, |
#else | | #else |
|
SEC_WCHAR SEC_FAR *, | | SEC_WCHAR *, |
SEC_WCHAR SEC_FAR *, | | SEC_WCHAR *, |
#endif | | #endif |
unsigned long, | | unsigned long, |
|
void SEC_FAR *, | | void *, |
SEC_GET_KEY_FN, | | SEC_GET_KEY_FN, |
|
void SEC_FAR *, | | void *, |
PTimeStamp); | | PTimeStamp); |
| | |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
AddCredentialsA( | | AddCredentialsA( |
|
PCredHandle hCredentials, | | __in PCredHandle hCredentials, |
SEC_CHAR SEC_FAR * pszPrincipal, // Name of principal | | __in_opt SEC_CHAR * pszPrincipal, // Name of principal |
SEC_CHAR SEC_FAR * pszPackage, // Name of package | | __in SEC_CHAR * pszPackage, // Name of package |
unsigned long fCredentialUse, // Flags indicating use | | __in unsigned long fCredentialUse, // Flags indicating use |
void SEC_FAR * pAuthData, // Package specific data | | __in_opt void * pAuthData, // Package specific data |
SEC_GET_KEY_FN pGetKeyFn, // Pointer to GetKey() func | | __in_opt SEC_GET_KEY_FN pGetKeyFn, // Pointer to GetKey() func |
void SEC_FAR * pvGetKeyArgument, // Value to pass to GetKey() | | __in_opt void * pvGetKeyArgument, // Value to pass to GetKey() |
PTimeStamp ptsExpiry // (out) Lifetime (optional) | | __out_opt PTimeStamp ptsExpiry // (out) Lifetime (optional) |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * ADD_CREDENTIALS_FN_A)( | | (SEC_ENTRY * ADD_CREDENTIALS_FN_A)( |
PCredHandle, | | PCredHandle, |
|
SEC_CHAR SEC_FAR *, | | SEC_CHAR *, |
SEC_CHAR SEC_FAR *, | | SEC_CHAR *, |
unsigned long, | | unsigned long, |
|
void SEC_FAR *, | | void *, |
SEC_GET_KEY_FN, | | SEC_GET_KEY_FN, |
|
void SEC_FAR *, | | void *, |
PTimeStamp); | | PTimeStamp); |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
#define AddCredentials AddCredentialsW | | #define AddCredentials AddCredentialsW |
#define ADD_CREDENTIALS_FN ADD_CREDENTIALS_FN_W | | #define ADD_CREDENTIALS_FN ADD_CREDENTIALS_FN_W |
#else | | #else |
#define AddCredentials AddCredentialsA | | #define AddCredentials AddCredentialsA |
#define ADD_CREDENTIALS_FN ADD_CREDENTIALS_FN_A | | #define ADD_CREDENTIALS_FN ADD_CREDENTIALS_FN_A |
#endif | | #endif |
| | |
//////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////// |
/// | | /// |
|
| | /// Password Change Functions |
| | /// |
| | //////////////////////////////////////////////////////////////////////// |
| | |
| | #if ISSP_MODE != 0 |
| | |
| | SECURITY_STATUS SEC_ENTRY |
| | ChangeAccountPasswordW( |
| | __in SEC_WCHAR * pszPackageName, |
| | __in SEC_WCHAR * pszDomainName, |
| | __in SEC_WCHAR * pszAccountName, |
| | __in SEC_WCHAR * pszOldPassword, |
| | __in SEC_WCHAR * pszNewPassword, |
| | __in BOOLEAN bImpersonating, |
| | __in unsigned long dwReserved, |
| | __inout PSecBufferDesc pOutput |
| | ); |
| | |
| | typedef SECURITY_STATUS |
| | (SEC_ENTRY * CHANGE_PASSWORD_FN_W)( |
| | SEC_WCHAR *, |
| | SEC_WCHAR *, |
| | SEC_WCHAR *, |
| | SEC_WCHAR *, |
| | SEC_WCHAR *, |
| | BOOLEAN, |
| | unsigned long, |
| | PSecBufferDesc |
| | ); |
| | |
| | SECURITY_STATUS SEC_ENTRY |
| | ChangeAccountPasswordA( |
| | __in SEC_CHAR * pszPackageName, |
| | __in SEC_CHAR * pszDomainName, |
| | __in SEC_CHAR * pszAccountName, |
| | __in SEC_CHAR * pszOldPassword, |
| | __in SEC_CHAR * pszNewPassword, |
| | __in BOOLEAN bImpersonating, |
| | __in unsigned long dwReserved, |
| | __inout PSecBufferDesc pOutput |
| | ); |
| | |
| | typedef SECURITY_STATUS |
| | (SEC_ENTRY * CHANGE_PASSWORD_FN_A)( |
| | SEC_CHAR *, |
| | SEC_CHAR *, |
| | SEC_CHAR *, |
| | SEC_CHAR *, |
| | SEC_CHAR *, |
| | BOOLEAN, |
| | unsigned long, |
| | PSecBufferDesc |
| | ); |
| | |
| | #ifdef UNICODE |
| | # define ChangeAccountPassword ChangeAccountPasswordW |
| | # define CHANGE_PASSWORD_FN CHANGE_PASSWORD_FN_W |
| | #else |
| | # define ChangeAccountPassword ChangeAccountPasswordA |
| | # define CHANGE_PASSWORD_FN CHANGE_PASSWORD_FN_A |
| | #endif // !UNICODE |
| | |
| | #endif // ISSP_MODE |
| | |
| | //////////////////////////////////////////////////////////////////////// |
| | /// |
/// Context Management Functions | | /// Context Management Functions |
/// | | /// |
//////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////// |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
InitializeSecurityContextW( | | InitializeSecurityContextW( |
|
PCredHandle phCredential, // Cred to base context | | __in_opt PCredHandle phCredential, // Cred to base context |
PCtxtHandle phContext, // Existing context (OPT) | | __in_opt PCtxtHandle phContext, // Existing context (OPT |
| | ) |
#if ISSP_MODE == 0 | | #if ISSP_MODE == 0 |
|
PSECURITY_STRING pTargetName, | | __in_opt PSECURITY_STRING pTargetName, |
#else | | #else |
|
SEC_WCHAR SEC_FAR * pszTargetName, // Name of target | | __in_opt SEC_WCHAR * pszTargetName, // Name of target |
#endif | | #endif |
|
unsigned long fContextReq, // Context Requirements | | __in unsigned long fContextReq, // Context Requirements |
unsigned long Reserved1, // Reserved, MBZ | | __in unsigned long Reserved1, // Reserved, MBZ |
unsigned long TargetDataRep, // Data rep of target | | __in unsigned long TargetDataRep, // Data rep of target |
PSecBufferDesc pInput, // Input Buffers | | __in_opt PSecBufferDesc pInput, // Input Buffers |
unsigned long Reserved2, // Reserved, MBZ | | __in unsigned long Reserved2, // Reserved, MBZ |
PCtxtHandle phNewContext, // (out) New Context handle | | __inout_opt PCtxtHandle phNewContext, // (out) New Context han |
PSecBufferDesc pOutput, // (inout) Output Buffers | | dle |
unsigned long SEC_FAR * pfContextAttr, // (out) Context attrs | | __inout_opt PSecBufferDesc pOutput, // (inout) Output Buffer |
PTimeStamp ptsExpiry // (out) Life span (OPT) | | s |
| | __out unsigned long * pfContextAttr, // (out) Context attrs |
| | __out_opt PTimeStamp ptsExpiry // (out) Life span (OPT) |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * INITIALIZE_SECURITY_CONTEXT_FN_W)( | | (SEC_ENTRY * INITIALIZE_SECURITY_CONTEXT_FN_W)( |
PCredHandle, | | PCredHandle, |
PCtxtHandle, | | PCtxtHandle, |
#if ISSP_MODE == 0 | | #if ISSP_MODE == 0 |
PSECURITY_STRING, | | PSECURITY_STRING, |
#else | | #else |
|
SEC_WCHAR SEC_FAR *, | | SEC_WCHAR *, |
#endif | | #endif |
unsigned long, | | unsigned long, |
unsigned long, | | unsigned long, |
unsigned long, | | unsigned long, |
PSecBufferDesc, | | PSecBufferDesc, |
unsigned long, | | unsigned long, |
PCtxtHandle, | | PCtxtHandle, |
PSecBufferDesc, | | PSecBufferDesc, |
|
unsigned long SEC_FAR *, | | unsigned long *, |
PTimeStamp); | | PTimeStamp); |
| | |
// end_ntifs | | // end_ntifs |
| | |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
InitializeSecurityContextA( | | InitializeSecurityContextA( |
|
PCredHandle phCredential, // Cred to base context | | __in_opt PCredHandle phCredential, // Cred to base context |
PCtxtHandle phContext, // Existing context (OPT) | | __in_opt PCtxtHandle phContext, // Existing context (OPT |
SEC_CHAR SEC_FAR * pszTargetName, // Name of target | | ) |
unsigned long fContextReq, // Context Requirements | | __in_opt SEC_CHAR * pszTargetName, // Name of target |
unsigned long Reserved1, // Reserved, MBZ | | __in unsigned long fContextReq, // Context Requirements |
unsigned long TargetDataRep, // Data rep of target | | __in unsigned long Reserved1, // Reserved, MBZ |
PSecBufferDesc pInput, // Input Buffers | | __in unsigned long TargetDataRep, // Data rep of target |
unsigned long Reserved2, // Reserved, MBZ | | __in_opt PSecBufferDesc pInput, // Input Buffers |
PCtxtHandle phNewContext, // (out) New Context handle | | __in unsigned long Reserved2, // Reserved, MBZ |
PSecBufferDesc pOutput, // (inout) Output Buffers | | __inout_opt PCtxtHandle phNewContext, // (out) New Context han |
unsigned long SEC_FAR * pfContextAttr, // (out) Context attrs | | dle |
PTimeStamp ptsExpiry // (out) Life span (OPT) | | __inout_opt PSecBufferDesc pOutput, // (inout) Output Buffer |
| | s |
| | __out unsigned long * pfContextAttr, // (out) Context attrs |
| | __out_opt PTimeStamp ptsExpiry // (out) Life span (OPT) |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * INITIALIZE_SECURITY_CONTEXT_FN_A)( | | (SEC_ENTRY * INITIALIZE_SECURITY_CONTEXT_FN_A)( |
PCredHandle, | | PCredHandle, |
PCtxtHandle, | | PCtxtHandle, |
|
SEC_CHAR SEC_FAR *, | | SEC_CHAR *, |
unsigned long, | | unsigned long, |
unsigned long, | | unsigned long, |
unsigned long, | | unsigned long, |
PSecBufferDesc, | | PSecBufferDesc, |
unsigned long, | | unsigned long, |
PCtxtHandle, | | PCtxtHandle, |
PSecBufferDesc, | | PSecBufferDesc, |
|
unsigned long SEC_FAR *, | | unsigned long *, |
PTimeStamp); | | PTimeStamp); |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
# define InitializeSecurityContext InitializeSecurityContextW // n
tifs | | # define InitializeSecurityContext InitializeSecurityContextW // n
tifs |
# define INITIALIZE_SECURITY_CONTEXT_FN INITIALIZE_SECURITY_CONTEXT_FN_W // n
tifs | | # define INITIALIZE_SECURITY_CONTEXT_FN INITIALIZE_SECURITY_CONTEXT_FN_W // n
tifs |
#else | | #else |
# define InitializeSecurityContext InitializeSecurityContextA | | # define InitializeSecurityContext InitializeSecurityContextA |
# define INITIALIZE_SECURITY_CONTEXT_FN INITIALIZE_SECURITY_CONTEXT_FN_A | | # define INITIALIZE_SECURITY_CONTEXT_FN INITIALIZE_SECURITY_CONTEXT_FN_A |
#endif // !UNICODE | | #endif // !UNICODE |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
AcceptSecurityContext( | | AcceptSecurityContext( |
|
PCredHandle phCredential, // Cred to base context | | __in_opt PCredHandle phCredential, // Cred to base context |
PCtxtHandle phContext, // Existing context (OPT) | | __in_opt PCtxtHandle phContext, // Existing context (OPT) |
PSecBufferDesc pInput, // Input buffer | | __in_opt PSecBufferDesc pInput, // Input buffer |
unsigned long fContextReq, // Context Requirements | | __in unsigned long fContextReq, // Context Requirements |
unsigned long TargetDataRep, // Target Data Rep | | __in unsigned long TargetDataRep, // Target Data Rep |
PCtxtHandle phNewContext, // (out) New context handle | | __in_opt PCtxtHandle phNewContext, // (out) New context handl |
PSecBufferDesc pOutput, // (inout) Output buffers | | e |
unsigned long SEC_FAR * pfContextAttr, // (out) Context attributes | | __in_opt PSecBufferDesc pOutput, // (inout) Output buffers |
PTimeStamp ptsExpiry // (out) Life span (OPT) | | __out unsigned long * pfContextAttr, // (out) Context attributes |
| | __out_opt PTimeStamp ptsExpiry // (out) Life span (OPT) |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * ACCEPT_SECURITY_CONTEXT_FN)( | | (SEC_ENTRY * ACCEPT_SECURITY_CONTEXT_FN)( |
PCredHandle, | | PCredHandle, |
PCtxtHandle, | | PCtxtHandle, |
PSecBufferDesc, | | PSecBufferDesc, |
unsigned long, | | unsigned long, |
unsigned long, | | unsigned long, |
PCtxtHandle, | | PCtxtHandle, |
PSecBufferDesc, | | PSecBufferDesc, |
|
unsigned long SEC_FAR *, | | unsigned long *, |
PTimeStamp); | | PTimeStamp); |
| | |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
CompleteAuthToken( | | CompleteAuthToken( |
|
PCtxtHandle phContext, // Context to complete | | __in PCtxtHandle phContext, // Context to complete |
PSecBufferDesc pToken // Token to complete | | __in PSecBufferDesc pToken // Token to complete |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * COMPLETE_AUTH_TOKEN_FN)( | | (SEC_ENTRY * COMPLETE_AUTH_TOKEN_FN)( |
PCtxtHandle, | | PCtxtHandle, |
PSecBufferDesc); | | PSecBufferDesc); |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
ImpersonateSecurityContext( | | ImpersonateSecurityContext( |
|
PCtxtHandle phContext // Context to impersonate | | __in PCtxtHandle phContext // Context to impersonate |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * IMPERSONATE_SECURITY_CONTEXT_FN)( | | (SEC_ENTRY * IMPERSONATE_SECURITY_CONTEXT_FN)( |
PCtxtHandle); | | PCtxtHandle); |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
RevertSecurityContext( | | RevertSecurityContext( |
|
PCtxtHandle phContext // Context from which to re | | __in PCtxtHandle phContext // Context from which to re |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * REVERT_SECURITY_CONTEXT_FN)( | | (SEC_ENTRY * REVERT_SECURITY_CONTEXT_FN)( |
PCtxtHandle); | | PCtxtHandle); |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
QuerySecurityContextToken( | | QuerySecurityContextToken( |
|
PCtxtHandle phContext, | | __in PCtxtHandle phContext, |
void SEC_FAR * SEC_FAR * Token | | __out void * * Token |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * QUERY_SECURITY_CONTEXT_TOKEN_FN)( | | (SEC_ENTRY * QUERY_SECURITY_CONTEXT_TOKEN_FN)( |
|
PCtxtHandle, void SEC_FAR * SEC_FAR *); | | PCtxtHandle, void * *); |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
DeleteSecurityContext( | | DeleteSecurityContext( |
|
PCtxtHandle phContext // Context to delete | | __in PCtxtHandle phContext // Context to delete |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * DELETE_SECURITY_CONTEXT_FN)( | | (SEC_ENTRY * DELETE_SECURITY_CONTEXT_FN)( |
PCtxtHandle); | | PCtxtHandle); |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
ApplyControlToken( | | ApplyControlToken( |
|
PCtxtHandle phContext, // Context to modify | | __in PCtxtHandle phContext, // Context to modify |
PSecBufferDesc pInput // Input token to apply | | __in PSecBufferDesc pInput // Input token to apply |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * APPLY_CONTROL_TOKEN_FN)( | | (SEC_ENTRY * APPLY_CONTROL_TOKEN_FN)( |
PCtxtHandle, PSecBufferDesc); | | PCtxtHandle, PSecBufferDesc); |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
QueryContextAttributesW( | | QueryContextAttributesW( |
|
PCtxtHandle phContext, // Context to query | | __in PCtxtHandle phContext, // Context to query |
unsigned long ulAttribute, // Attribute to query | | __in unsigned long ulAttribute, // Attribute to query |
void SEC_FAR * pBuffer // Buffer for attributes | | __out void * pBuffer // Buffer for attributes |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * QUERY_CONTEXT_ATTRIBUTES_FN_W)( | | (SEC_ENTRY * QUERY_CONTEXT_ATTRIBUTES_FN_W)( |
PCtxtHandle, | | PCtxtHandle, |
unsigned long, | | unsigned long, |
|
void SEC_FAR *); | | void *); |
| | |
// end_ntifs | | // end_ntifs |
| | |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
QueryContextAttributesA( | | QueryContextAttributesA( |
|
PCtxtHandle phContext, // Context to query | | __in PCtxtHandle phContext, // Context to query |
unsigned long ulAttribute, // Attribute to query | | __in unsigned long ulAttribute, // Attribute to query |
void SEC_FAR * pBuffer // Buffer for attributes | | __out void * pBuffer // Buffer for attributes |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * QUERY_CONTEXT_ATTRIBUTES_FN_A)( | | (SEC_ENTRY * QUERY_CONTEXT_ATTRIBUTES_FN_A)( |
PCtxtHandle, | | PCtxtHandle, |
unsigned long, | | unsigned long, |
|
void SEC_FAR *); | | void *); |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
# define QueryContextAttributes QueryContextAttributesW // ntifs | | # define QueryContextAttributes QueryContextAttributesW // ntifs |
# define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_W // ntifs | | # define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_W // ntifs |
#else | | #else |
# define QueryContextAttributes QueryContextAttributesA | | # define QueryContextAttributes QueryContextAttributesA |
# define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_A | | # define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_A |
#endif // !UNICODE | | #endif // !UNICODE |
| | |
// begin_ntifs | | // begin_ntifs |
|
| | |
| | #if (OSVER(NTDDI_VERSION) > NTDDI_WIN2K) |
| | |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
SetContextAttributesW( | | SetContextAttributesW( |
|
PCtxtHandle phContext, // Context to Set | | __in PCtxtHandle phContext, // Context to Set |
unsigned long ulAttribute, // Attribute to Set | | __in unsigned long ulAttribute, // Attribute to Set |
void SEC_FAR * pBuffer, // Buffer for attributes | | __in_bcount(cbBuffer) void * pBuffer, // Buffer for attributes |
unsigned long cbBuffer // Size (in bytes) of Buffer | | __in unsigned long cbBuffer // Size (in bytes) of Buffer |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * SET_CONTEXT_ATTRIBUTES_FN_W)( | | (SEC_ENTRY * SET_CONTEXT_ATTRIBUTES_FN_W)( |
PCtxtHandle, | | PCtxtHandle, |
unsigned long, | | unsigned long, |
|
void SEC_FAR *, | | void *, |
unsigned long ); | | unsigned long ); |
| | |
|
| | #endif // Greater than w2k |
| | |
// end_ntifs | | // end_ntifs |
| | |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
SetContextAttributesA( | | SetContextAttributesA( |
|
PCtxtHandle phContext, // Context to Set | | __in PCtxtHandle phContext, // Context to Set |
unsigned long ulAttribute, // Attribute to Set | | __in unsigned long ulAttribute, // Attribute to Set |
void SEC_FAR * pBuffer, // Buffer for attributes | | __in_bcount(cbBuffer) void * pBuffer, // Buffer for attributes |
unsigned long cbBuffer // Size (in bytes) of Buffer | | __in unsigned long cbBuffer // Size (in bytes) of Buffer |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * SET_CONTEXT_ATTRIBUTES_FN_A)( | | (SEC_ENTRY * SET_CONTEXT_ATTRIBUTES_FN_A)( |
PCtxtHandle, | | PCtxtHandle, |
unsigned long, | | unsigned long, |
|
void SEC_FAR *, | | void *, |
unsigned long ); | | unsigned long ); |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
# define SetContextAttributes SetContextAttributesW // ntifs | | # define SetContextAttributes SetContextAttributesW // ntifs |
# define SET_CONTEXT_ATTRIBUTES_FN SET_CONTEXT_ATTRIBUTES_FN_W // ntifs | | # define SET_CONTEXT_ATTRIBUTES_FN SET_CONTEXT_ATTRIBUTES_FN_W // ntifs |
#else | | #else |
# define SetContextAttributes SetContextAttributesA | | # define SetContextAttributes SetContextAttributesA |
# define SET_CONTEXT_ATTRIBUTES_FN SET_CONTEXT_ATTRIBUTES_FN_A | | # define SET_CONTEXT_ATTRIBUTES_FN SET_CONTEXT_ATTRIBUTES_FN_A |
#endif // !UNICODE | | #endif // !UNICODE |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
QueryCredentialsAttributesW( | | QueryCredentialsAttributesW( |
|
PCredHandle phCredential, // Credential to query | | __in PCredHandle phCredential, // Credential to query |
unsigned long ulAttribute, // Attribute to query | | __in unsigned long ulAttribute, // Attribute to query |
void SEC_FAR * pBuffer // Buffer for attributes | | __inout void * pBuffer // Buffer for attributes |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_FN_W)( | | (SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_FN_W)( |
PCredHandle, | | PCredHandle, |
unsigned long, | | unsigned long, |
|
void SEC_FAR *); | | void *); |
| | |
// end_ntifs | | // end_ntifs |
| | |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
QueryCredentialsAttributesA( | | QueryCredentialsAttributesA( |
|
PCredHandle phCredential, // Credential to query | | __in PCredHandle phCredential, // Credential to query |
unsigned long ulAttribute, // Attribute to query | | __in unsigned long ulAttribute, // Attribute to query |
void SEC_FAR * pBuffer // Buffer for attributes | | __inout void * pBuffer // Buffer for attributes |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_FN_A)( | | (SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_FN_A)( |
PCredHandle, | | PCredHandle, |
unsigned long, | | unsigned long, |
|
void SEC_FAR *); | | void *); |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
# define QueryCredentialsAttributes QueryCredentialsAttributesW // n
tifs | | # define QueryCredentialsAttributes QueryCredentialsAttributesW // n
tifs |
# define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_W // n
tifs | | # define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_W // n
tifs |
#else | | #else |
# define QueryCredentialsAttributes QueryCredentialsAttributesA | | # define QueryCredentialsAttributes QueryCredentialsAttributesA |
# define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_A | | # define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_A |
#endif // !UNICODE | | #endif // !UNICODE |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
|
| | #if NTDDI_VERSION > NTDDI_WS03 |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
SetCredentialsAttributesW( | | SetCredentialsAttributesW( |
|
PCredHandle phCredential, // Credential to Set | | __in PCredHandle phCredential, // Credential to Set |
unsigned long ulAttribute, // Attribute to Set | | __in unsigned long ulAttribute, // Attribute to Set |
void SEC_FAR * pBuffer, // Buffer for attributes | | __in_bcount(cbBuffer) void * pBuffer, // Buffer for attributes |
unsigned long cbBuffer // Size (in bytes) of Buffer | | __in unsigned long cbBuffer // Size (in bytes) of Buffer |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * SET_CREDENTIALS_ATTRIBUTES_FN_W)( | | (SEC_ENTRY * SET_CREDENTIALS_ATTRIBUTES_FN_W)( |
PCredHandle, | | PCredHandle, |
unsigned long, | | unsigned long, |
|
void SEC_FAR *, | | void *, |
unsigned long ); | | unsigned long ); |
| | |
|
| | #endif // For W2k3SP1 and greater |
| | |
// end_ntifs | | // end_ntifs |
| | |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
SetCredentialsAttributesA( | | SetCredentialsAttributesA( |
|
PCredHandle phCredential, // Credential to Set | | __in PCredHandle phCredential, // Credential to Set |
unsigned long ulAttribute, // Attribute to Set | | __in unsigned long ulAttribute, // Attribute to Set |
void SEC_FAR * pBuffer, // Buffer for attributes | | __in_bcount(cbBuffer) void * pBuffer, // Buffer for attributes |
unsigned long cbBuffer // Size (in bytes) of Buffer | | __in unsigned long cbBuffer // Size (in bytes) of Buffer |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * SET_CREDENTIALS_ATTRIBUTES_FN_A)( | | (SEC_ENTRY * SET_CREDENTIALS_ATTRIBUTES_FN_A)( |
PCredHandle, | | PCredHandle, |
unsigned long, | | unsigned long, |
|
void SEC_FAR *, | | void *, |
unsigned long ); | | unsigned long ); |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
# define SetCredentialsAttributes SetCredentialsAttributesW // ntifs | | # define SetCredentialsAttributes SetCredentialsAttributesW // ntifs |
# define SET_CREDENTIALS_ATTRIBUTES_FN SET_CREDENTIALS_ATTRIBUTES_FN_W // ntifs | | # define SET_CREDENTIALS_ATTRIBUTES_FN SET_CREDENTIALS_ATTRIBUTES_FN_W // ntifs |
#else | | #else |
# define SetCredentialsAttributes SetCredentialsAttributesA | | # define SetCredentialsAttributes SetCredentialsAttributesA |
# define SET_CREDENTIALS_ATTRIBUTES_FN SET_CREDENTIALS_ATTRIBUTES_FN_A | | # define SET_CREDENTIALS_ATTRIBUTES_FN SET_CREDENTIALS_ATTRIBUTES_FN_A |
#endif // !UNICODE | | #endif // !UNICODE |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
FreeContextBuffer( | | FreeContextBuffer( |
|
void SEC_FAR * pvContextBuffer // buffer to free | | __inout PVOID pvContextBuffer // buffer to free |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * FREE_CONTEXT_BUFFER_FN)( | | (SEC_ENTRY * FREE_CONTEXT_BUFFER_FN)( |
|
void SEC_FAR *); | | __inout PVOID |
| | ); |
| | |
// end_ntifs | | // end_ntifs |
| | |
// begin_ntifs | | // begin_ntifs |
/////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////// |
//// | | //// |
//// Message Support API | | //// Message Support API |
//// | | //// |
////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////// |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
MakeSignature( | | MakeSignature( |
|
PCtxtHandle phContext, // Context to use | | __in PCtxtHandle phContext, // Context to use |
unsigned long fQOP, // Quality of Protection | | __in unsigned long fQOP, // Quality of Protection |
PSecBufferDesc pMessage, // Message to sign | | __in PSecBufferDesc pMessage, // Message to sign |
unsigned long MessageSeqNo // Message Sequence Num. | | __in unsigned long MessageSeqNo // Message Sequence Num. |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * MAKE_SIGNATURE_FN)( | | (SEC_ENTRY * MAKE_SIGNATURE_FN)( |
PCtxtHandle, | | PCtxtHandle, |
unsigned long, | | unsigned long, |
PSecBufferDesc, | | PSecBufferDesc, |
unsigned long); | | unsigned long); |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
VerifySignature( | | VerifySignature( |
|
PCtxtHandle phContext, // Context to use | | __in PCtxtHandle phContext, // Context to use |
PSecBufferDesc pMessage, // Message to verify | | __in PSecBufferDesc pMessage, // Message to verify |
unsigned long MessageSeqNo, // Sequence Num. | | __in unsigned long MessageSeqNo, // Sequence Num. |
unsigned long SEC_FAR * pfQOP // QOP used | | __out unsigned long * pfQOP // QOP used |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * VERIFY_SIGNATURE_FN)( | | (SEC_ENTRY * VERIFY_SIGNATURE_FN)( |
PCtxtHandle, | | PCtxtHandle, |
PSecBufferDesc, | | PSecBufferDesc, |
unsigned long, | | unsigned long, |
|
unsigned long SEC_FAR *); | | unsigned long *); |
| | |
|
| | // This only exists win Win2k3 and Greater |
#define SECQOP_WRAP_NO_ENCRYPT 0x80000001 | | #define SECQOP_WRAP_NO_ENCRYPT 0x80000001 |
#define SECQOP_WRAP_OOB_DATA 0x40000000 | | #define SECQOP_WRAP_OOB_DATA 0x40000000 |
| | |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
|
EncryptMessage( PCtxtHandle phContext, | | EncryptMessage( __in PCtxtHandle phContext, |
unsigned long fQOP, | | __in unsigned long fQOP, |
PSecBufferDesc pMessage, | | __inout PSecBufferDesc pMessage, |
unsigned long MessageSeqNo); | | __in unsigned long MessageSeqNo); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * ENCRYPT_MESSAGE_FN)( | | (SEC_ENTRY * ENCRYPT_MESSAGE_FN)( |
PCtxtHandle, unsigned long, PSecBufferDesc, unsigned long); | | PCtxtHandle, unsigned long, PSecBufferDesc, unsigned long); |
| | |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
|
DecryptMessage( PCtxtHandle phContext, | | DecryptMessage( __in PCtxtHandle phContext, |
PSecBufferDesc pMessage, | | __inout PSecBufferDesc pMessage, |
unsigned long MessageSeqNo, | | __in unsigned long MessageSeqNo, |
unsigned long * pfQOP); | | __out_opt unsigned long * pfQOP); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * DECRYPT_MESSAGE_FN)( | | (SEC_ENTRY * DECRYPT_MESSAGE_FN)( |
PCtxtHandle, PSecBufferDesc, unsigned long, | | PCtxtHandle, PSecBufferDesc, unsigned long, |
|
unsigned long SEC_FAR *); | | unsigned long *); |
| | |
// end_ntifs | | // end_ntifs |
| | |
// begin_ntifs | | // begin_ntifs |
/////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////// |
//// | | //// |
//// Misc. | | //// Misc. |
//// | | //// |
/////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////// |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
EnumerateSecurityPackagesW( | | EnumerateSecurityPackagesW( |
|
unsigned long SEC_FAR * pcPackages, // Receives num. packages | | __out unsigned long * pcPackages, // Receives num. packages |
PSecPkgInfoW SEC_FAR * ppPackageInfo // Receives array of info | | __deref_out PSecPkgInfoW * ppPackageInfo // Receives array of info |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * ENUMERATE_SECURITY_PACKAGES_FN_W)( | | (SEC_ENTRY * ENUMERATE_SECURITY_PACKAGES_FN_W)( |
|
unsigned long SEC_FAR *, | | unsigned long *, |
PSecPkgInfoW SEC_FAR *); | | PSecPkgInfoW *); |
| | |
// end_ntifs | | // end_ntifs |
| | |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
EnumerateSecurityPackagesA( | | EnumerateSecurityPackagesA( |
|
unsigned long SEC_FAR * pcPackages, // Receives num. packages | | __out unsigned long * pcPackages, // Receives num. packages |
PSecPkgInfoA SEC_FAR * ppPackageInfo // Receives array of info | | __deref_out PSecPkgInfoA * ppPackageInfo // Receives array of info |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * ENUMERATE_SECURITY_PACKAGES_FN_A)( | | (SEC_ENTRY * ENUMERATE_SECURITY_PACKAGES_FN_A)( |
|
unsigned long SEC_FAR *, | | unsigned long *, |
PSecPkgInfoA SEC_FAR *); | | PSecPkgInfoA *); |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
# define EnumerateSecurityPackages EnumerateSecurityPackagesW // n
tifs | | # define EnumerateSecurityPackages EnumerateSecurityPackagesW // n
tifs |
# define ENUMERATE_SECURITY_PACKAGES_FN ENUMERATE_SECURITY_PACKAGES_FN_W // n
tifs | | # define ENUMERATE_SECURITY_PACKAGES_FN ENUMERATE_SECURITY_PACKAGES_FN_W // n
tifs |
#else | | #else |
# define EnumerateSecurityPackages EnumerateSecurityPackagesA | | # define EnumerateSecurityPackages EnumerateSecurityPackagesA |
# define ENUMERATE_SECURITY_PACKAGES_FN ENUMERATE_SECURITY_PACKAGES_FN_A | | # define ENUMERATE_SECURITY_PACKAGES_FN ENUMERATE_SECURITY_PACKAGES_FN_A |
#endif // !UNICODE | | #endif // !UNICODE |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
QuerySecurityPackageInfoW( | | QuerySecurityPackageInfoW( |
#if ISSP_MODE == 0 | | #if ISSP_MODE == 0 |
|
PSECURITY_STRING pPackageName, | | __in PSECURITY_STRING pPackageName, |
#else | | #else |
|
SEC_WCHAR SEC_FAR * pszPackageName, // Name of package | | __in SEC_WCHAR * pszPackageName, // Name of package |
#endif | | #endif |
|
PSecPkgInfoW SEC_FAR *ppPackageInfo // Receives package info | | __deref_out PSecPkgInfoW *ppPackageInfo // Receives package info |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * QUERY_SECURITY_PACKAGE_INFO_FN_W)( | | (SEC_ENTRY * QUERY_SECURITY_PACKAGE_INFO_FN_W)( |
#if ISSP_MODE == 0 | | #if ISSP_MODE == 0 |
PSECURITY_STRING, | | PSECURITY_STRING, |
#else | | #else |
|
SEC_WCHAR SEC_FAR *, | | SEC_WCHAR *, |
#endif | | #endif |
|
PSecPkgInfoW SEC_FAR *); | | PSecPkgInfoW *); |
| | |
// end_ntifs | | // end_ntifs |
| | |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
QuerySecurityPackageInfoA( | | QuerySecurityPackageInfoA( |
|
SEC_CHAR SEC_FAR * pszPackageName, // Name of package | | __in SEC_CHAR * pszPackageName, // Name of package |
PSecPkgInfoA SEC_FAR *ppPackageInfo // Receives package info | | __deref_out PSecPkgInfoA *ppPackageInfo // Receives package info |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * QUERY_SECURITY_PACKAGE_INFO_FN_A)( | | (SEC_ENTRY * QUERY_SECURITY_PACKAGE_INFO_FN_A)( |
|
SEC_CHAR SEC_FAR *, | | SEC_CHAR *, |
PSecPkgInfoA SEC_FAR *); | | PSecPkgInfoA *); |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
# define QuerySecurityPackageInfo QuerySecurityPackageInfoW // n
tifs | | # define QuerySecurityPackageInfo QuerySecurityPackageInfoW // n
tifs |
# define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_W // n
tifs | | # define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_W // n
tifs |
#else | | #else |
# define QuerySecurityPackageInfo QuerySecurityPackageInfoA | | # define QuerySecurityPackageInfo QuerySecurityPackageInfoA |
# define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_A | | # define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_A |
#endif // !UNICODE | | #endif // !UNICODE |
| | |
typedef enum _SecDelegationType { | | typedef enum _SecDelegationType { |
| | |
skipping to change at line 1488 | | skipping to change at line 1591 |
SecDirectory, | | SecDirectory, |
SecObject | | SecObject |
} SecDelegationType, * PSecDelegationType; | | } SecDelegationType, * PSecDelegationType; |
| | |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
DelegateSecurityContext( | | DelegateSecurityContext( |
PCtxtHandle phContext, // IN Active context to delegate | | PCtxtHandle phContext, // IN Active context to delegate |
#if ISSP_MODE == 0 | | #if ISSP_MODE == 0 |
PSECURITY_STRING pTarget, // IN Target path | | PSECURITY_STRING pTarget, // IN Target path |
#else | | #else |
|
SEC_CHAR SEC_FAR * pszTarget, | | SEC_CHAR * pszTarget, |
#endif | | #endif |
SecDelegationType DelegationType, // IN Type of delegation | | SecDelegationType DelegationType, // IN Type of delegation |
PTimeStamp pExpiry, // IN OPTIONAL time limit | | PTimeStamp pExpiry, // IN OPTIONAL time limit |
PSecBuffer pPackageParameters, // IN OPTIONAL package specific | | PSecBuffer pPackageParameters, // IN OPTIONAL package specific |
PSecBufferDesc pOutput); // OUT Token for applycontroltoken. | | PSecBufferDesc pOutput); // OUT Token for applycontroltoken. |
| | |
/////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////// |
//// | | //// |
//// Proxies | | //// Proxies |
//// | | //// |
| | |
skipping to change at line 1516 | | skipping to change at line 1619 |
| | |
/////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////// |
//// | | //// |
//// Context export/import | | //// Context export/import |
//// | | //// |
/////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////// |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
ExportSecurityContext( | | ExportSecurityContext( |
|
PCtxtHandle phContext, // (in) context to export | | __in PCtxtHandle phContext, // (in) context to export |
ULONG fFlags, // (in) option flags | | __in ULONG fFlags, // (in) option flags |
PSecBuffer pPackedContext, // (out) marshalled context | | __out PSecBuffer pPackedContext, // (out) marshalled contex |
void SEC_FAR * SEC_FAR * pToken // (out, optional) token han | | t |
dle for impersonation | | __out void * * pToken // (out, optional) token handle for impers |
| | onation |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * EXPORT_SECURITY_CONTEXT_FN)( | | (SEC_ENTRY * EXPORT_SECURITY_CONTEXT_FN)( |
PCtxtHandle, | | PCtxtHandle, |
ULONG, | | ULONG, |
PSecBuffer, | | PSecBuffer, |
|
void SEC_FAR * SEC_FAR * | | void * * |
); | | ); |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
ImportSecurityContextW( | | ImportSecurityContextW( |
#if ISSP_MODE == 0 | | #if ISSP_MODE == 0 |
|
PSECURITY_STRING pszPackage, | | __in PSECURITY_STRING pszPackage, |
#else | | #else |
|
SEC_WCHAR SEC_FAR * pszPackage, | | __in SEC_WCHAR * pszPackage, |
#endif | | #endif |
|
PSecBuffer pPackedContext, // (in) marshalled context | | __in PSecBuffer pPackedContext, // (in) marshalled context |
void SEC_FAR * Token, // (in, optional) handle to toke | | __in void * Token, // (in, optional) handle to token |
n for context | | for context |
PCtxtHandle phContext // (out) new context handle | | __out PCtxtHandle phContext // (out) new context handl |
| | e |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * IMPORT_SECURITY_CONTEXT_FN_W)( | | (SEC_ENTRY * IMPORT_SECURITY_CONTEXT_FN_W)( |
#if ISSP_MODE == 0 | | #if ISSP_MODE == 0 |
PSECURITY_STRING, | | PSECURITY_STRING, |
#else | | #else |
|
SEC_WCHAR SEC_FAR *, | | SEC_WCHAR *, |
#endif | | #endif |
PSecBuffer, | | PSecBuffer, |
|
VOID SEC_FAR *, | | VOID *, |
PCtxtHandle | | PCtxtHandle |
); | | ); |
| | |
// end_ntifs | | // end_ntifs |
SECURITY_STATUS SEC_ENTRY | | SECURITY_STATUS SEC_ENTRY |
ImportSecurityContextA( | | ImportSecurityContextA( |
|
SEC_CHAR SEC_FAR * pszPackage, | | __in SEC_CHAR * pszPackage, |
PSecBuffer pPackedContext, // (in) marshalled context | | __in PSecBuffer pPackedContext, // (in) marshalled context |
VOID SEC_FAR * Token, // (in, optional) handle to toke | | __in VOID * Token, // (in, optional) handle to token |
n for context | | for context |
PCtxtHandle phContext // (out) new context handle | | __out PCtxtHandle phContext // (out) new context handl |
| | e |
); | | ); |
| | |
typedef SECURITY_STATUS | | typedef SECURITY_STATUS |
(SEC_ENTRY * IMPORT_SECURITY_CONTEXT_FN_A)( | | (SEC_ENTRY * IMPORT_SECURITY_CONTEXT_FN_A)( |
|
SEC_CHAR SEC_FAR *, | | SEC_CHAR *, |
PSecBuffer, | | PSecBuffer, |
|
void SEC_FAR *, | | void *, |
PCtxtHandle | | PCtxtHandle |
); | | ); |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
# define ImportSecurityContext ImportSecurityContextW // ntifs | | # define ImportSecurityContext ImportSecurityContextW // ntifs |
# define IMPORT_SECURITY_CONTEXT_FN IMPORT_SECURITY_CONTEXT_FN_W // ntifs | | # define IMPORT_SECURITY_CONTEXT_FN IMPORT_SECURITY_CONTEXT_FN_W // ntifs |
#else | | #else |
# define ImportSecurityContext ImportSecurityContextA | | # define ImportSecurityContext ImportSecurityContextA |
# define IMPORT_SECURITY_CONTEXT_FN IMPORT_SECURITY_CONTEXT_FN_A | | # define IMPORT_SECURITY_CONTEXT_FN IMPORT_SECURITY_CONTEXT_FN_A |
#endif // !UNICODE | | #endif // !UNICODE |
| | |
skipping to change at line 1597 | | skipping to change at line 1700 |
IN PUNICODE_STRING ServiceClass, | | IN PUNICODE_STRING ServiceClass, |
IN PUNICODE_STRING ServiceName, | | IN PUNICODE_STRING ServiceName, |
IN PUNICODE_STRING InstanceName OPTIONAL, | | IN PUNICODE_STRING InstanceName OPTIONAL, |
IN USHORT InstancePort OPTIONAL, | | IN USHORT InstancePort OPTIONAL, |
IN PUNICODE_STRING Referrer OPTIONAL, | | IN PUNICODE_STRING Referrer OPTIONAL, |
IN OUT PUNICODE_STRING Spn, | | IN OUT PUNICODE_STRING Spn, |
OUT PULONG Length OPTIONAL, | | OUT PULONG Length OPTIONAL, |
IN BOOLEAN Allocate | | IN BOOLEAN Allocate |
); | | ); |
| | |
|
| | #if OSVER(NTDDI_VERSION) > NTDD_WIN2K |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
NTSTATUS | | NTSTATUS |
NTAPI | | NTAPI |
SecMakeSPNEx( | | SecMakeSPNEx( |
IN PUNICODE_STRING ServiceClass, | | IN PUNICODE_STRING ServiceClass, |
IN PUNICODE_STRING ServiceName, | | IN PUNICODE_STRING ServiceName, |
IN PUNICODE_STRING InstanceName OPTIONAL, | | IN PUNICODE_STRING InstanceName OPTIONAL, |
IN USHORT InstancePort OPTIONAL, | | IN USHORT InstancePort OPTIONAL, |
IN PUNICODE_STRING Referrer OPTIONAL, | | IN PUNICODE_STRING Referrer OPTIONAL, |
IN PUNICODE_STRING TargetInfo OPTIONAL, | | IN PUNICODE_STRING TargetInfo OPTIONAL, |
IN OUT PUNICODE_STRING Spn, | | IN OUT PUNICODE_STRING Spn, |
OUT PULONG Length OPTIONAL, | | OUT PULONG Length OPTIONAL, |
IN BOOLEAN Allocate | | IN BOOLEAN Allocate |
); | | ); |
| | |
|
| | #if OSVER(NTDDI_VERSION) > NTDDI_WS03 |
| | |
| | KSECDDDECLSPEC |
| | NTSTATUS |
| | NTAPI |
| | SecMakeSPNEx2( |
| | IN PUNICODE_STRING ServiceClass, |
| | IN PUNICODE_STRING ServiceName, |
| | IN PUNICODE_STRING InstanceName OPTIONAL, |
| | IN USHORT InstancePort OPTIONAL, |
| | IN PUNICODE_STRING Referrer OPTIONAL, |
| | IN PUNICODE_STRING InTargetInfo OPTIONAL, |
| | IN OUT PUNICODE_STRING Spn, |
| | OUT PULONG TotalSize OPTIONAL, |
| | IN BOOLEAN Allocate, |
| | IN BOOLEAN IsTargetInfoMarshaled |
| | ); |
| | |
| | #endif // Longhorn and greater |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
NTSTATUS | | NTSTATUS |
SEC_ENTRY | | SEC_ENTRY |
SecLookupAccountSid( | | SecLookupAccountSid( |
|
IN PSID Sid, | | __in PSID Sid, |
IN OUT PULONG NameSize, | | __out PULONG NameSize, |
OUT PUNICODE_STRING NameBuffer, | | __inout PUNICODE_STRING NameBuffer, |
IN OUT PULONG DomainSize OPTIONAL, | | __out PULONG DomainSize OPTIONAL, |
OUT PUNICODE_STRING DomainBuffer OPTIONAL, | | __out_opt PUNICODE_STRING DomainBuffer OPTIONAL, |
OUT PSID_NAME_USE NameUse | | __out PSID_NAME_USE NameUse |
); | | ); |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
NTSTATUS | | NTSTATUS |
SEC_ENTRY | | SEC_ENTRY |
SecLookupAccountName( | | SecLookupAccountName( |
|
IN PUNICODE_STRING Name, | | __in PUNICODE_STRING Name, |
IN OUT PULONG SidSize, | | __inout PULONG SidSize, |
OUT PSID Sid, | | __out PSID Sid, |
OUT PSID_NAME_USE NameUse, | | __out PSID_NAME_USE NameUse, |
IN OUT PULONG DomainSize OPTIONAL, | | __out PULONG DomainSize OPTIONAL, |
OUT PUNICODE_STRING ReferencedDomain OPTIONAL | | __inout_opt PUNICODE_STRING ReferencedDomain OPTIONAL |
); | | ); |
| | |
|
| | #endif // Greater than W2k |
| | |
| | #if OSVER(NTDDI_VERSION) > NTDDI_WINXP |
| | |
KSECDDDECLSPEC | | KSECDDDECLSPEC |
NTSTATUS | | NTSTATUS |
SEC_ENTRY | | SEC_ENTRY |
SecLookupWellKnownSid( | | SecLookupWellKnownSid( |
|
IN WELL_KNOWN_SID_TYPE SidType, | | __in WELL_KNOWN_SID_TYPE SidType, |
OUT PSID Sid, | | __out PSID Sid, |
ULONG SidBufferSize, | | __in ULONG SidBufferSize, |
OUT PULONG SidSize OPTIONAL | | __inout_opt PULONG SidSize OPTIONAL |
); | | ); |
| | |
|
| | #endif // Greater than XP |
| | |
#endif | | #endif |
| | |
// end_ntifs | | // end_ntifs |
| | |
/////////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////////// |
//// | | //// |
//// Fast access for RPC: | | //// Fast access for RPC: |
//// | | //// |
/////////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////////// |
| | |
| | |
skipping to change at line 1685 | | skipping to change at line 1816 |
// begin_ntifs | | // begin_ntifs |
| | |
#define FreeCredentialHandle FreeCredentialsHandle | | #define FreeCredentialHandle FreeCredentialsHandle |
| | |
typedef struct _SECURITY_FUNCTION_TABLE_W { | | typedef struct _SECURITY_FUNCTION_TABLE_W { |
unsigned long dwVersion; | | unsigned long dwVersion; |
ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW; | | ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW; |
QUERY_CREDENTIALS_ATTRIBUTES_FN_W QueryCredentialsAttributesW; | | QUERY_CREDENTIALS_ATTRIBUTES_FN_W QueryCredentialsAttributesW; |
ACQUIRE_CREDENTIALS_HANDLE_FN_W AcquireCredentialsHandleW; | | ACQUIRE_CREDENTIALS_HANDLE_FN_W AcquireCredentialsHandleW; |
FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle; | | FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle; |
|
void SEC_FAR * Reserved2; | | void * Reserved2; |
INITIALIZE_SECURITY_CONTEXT_FN_W InitializeSecurityContextW; | | INITIALIZE_SECURITY_CONTEXT_FN_W InitializeSecurityContextW; |
ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext; | | ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext; |
COMPLETE_AUTH_TOKEN_FN CompleteAuthToken; | | COMPLETE_AUTH_TOKEN_FN CompleteAuthToken; |
DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext; | | DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext; |
APPLY_CONTROL_TOKEN_FN ApplyControlToken; | | APPLY_CONTROL_TOKEN_FN ApplyControlToken; |
QUERY_CONTEXT_ATTRIBUTES_FN_W QueryContextAttributesW; | | QUERY_CONTEXT_ATTRIBUTES_FN_W QueryContextAttributesW; |
IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext; | | IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext; |
REVERT_SECURITY_CONTEXT_FN RevertSecurityContext; | | REVERT_SECURITY_CONTEXT_FN RevertSecurityContext; |
MAKE_SIGNATURE_FN MakeSignature; | | MAKE_SIGNATURE_FN MakeSignature; |
VERIFY_SIGNATURE_FN VerifySignature; | | VERIFY_SIGNATURE_FN VerifySignature; |
FREE_CONTEXT_BUFFER_FN FreeContextBuffer; | | FREE_CONTEXT_BUFFER_FN FreeContextBuffer; |
QUERY_SECURITY_PACKAGE_INFO_FN_W QuerySecurityPackageInfoW; | | QUERY_SECURITY_PACKAGE_INFO_FN_W QuerySecurityPackageInfoW; |
|
void SEC_FAR * Reserved3; | | void * Reserved3; |
void SEC_FAR * Reserved4; | | void * Reserved4; |
EXPORT_SECURITY_CONTEXT_FN ExportSecurityContext; | | EXPORT_SECURITY_CONTEXT_FN ExportSecurityContext; |
IMPORT_SECURITY_CONTEXT_FN_W ImportSecurityContextW; | | IMPORT_SECURITY_CONTEXT_FN_W ImportSecurityContextW; |
ADD_CREDENTIALS_FN_W AddCredentialsW ; | | ADD_CREDENTIALS_FN_W AddCredentialsW ; |
|
void SEC_FAR * Reserved8; | | void * Reserved8; |
QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken; | | QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken; |
ENCRYPT_MESSAGE_FN EncryptMessage; | | ENCRYPT_MESSAGE_FN EncryptMessage; |
DECRYPT_MESSAGE_FN DecryptMessage; | | DECRYPT_MESSAGE_FN DecryptMessage; |
|
| | #if OSVER(NTDDI_VERSION) > NTDDI_WIN2K |
| | // Fields below this are available in OSes after w2k |
SET_CONTEXT_ATTRIBUTES_FN_W SetContextAttributesW; | | SET_CONTEXT_ATTRIBUTES_FN_W SetContextAttributesW; |
|
| | #endif // greater thean 2K |
| | |
| | #if NTDDI_VERSION > NTDDI_WS03SP1 |
| | // Fields below this are available in OSes after W2k3SP1 |
SET_CREDENTIALS_ATTRIBUTES_FN_W SetCredentialsAttributesW; | | SET_CREDENTIALS_ATTRIBUTES_FN_W SetCredentialsAttributesW; |
|
} SecurityFunctionTableW, SEC_FAR * PSecurityFunctionTableW; | | #endif |
| | #if ISSP_MODE != 0 |
| | CHANGE_PASSWORD_FN_W ChangeAccountPasswordW; |
| | #else |
| | void * Reserved9; |
| | #endif |
| | } SecurityFunctionTableW, * PSecurityFunctionTableW; |
| | |
// end_ntifs | | // end_ntifs |
| | |
typedef struct _SECURITY_FUNCTION_TABLE_A { | | typedef struct _SECURITY_FUNCTION_TABLE_A { |
unsigned long dwVersion; | | unsigned long dwVersion; |
ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA; | | ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA; |
QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA; | | QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA; |
ACQUIRE_CREDENTIALS_HANDLE_FN_A AcquireCredentialsHandleA; | | ACQUIRE_CREDENTIALS_HANDLE_FN_A AcquireCredentialsHandleA; |
FREE_CREDENTIALS_HANDLE_FN FreeCredentialHandle; | | FREE_CREDENTIALS_HANDLE_FN FreeCredentialHandle; |
|
void SEC_FAR * Reserved2; | | void * Reserved2; |
INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA; | | INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA; |
ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext; | | ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext; |
COMPLETE_AUTH_TOKEN_FN CompleteAuthToken; | | COMPLETE_AUTH_TOKEN_FN CompleteAuthToken; |
DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext; | | DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext; |
APPLY_CONTROL_TOKEN_FN ApplyControlToken; | | APPLY_CONTROL_TOKEN_FN ApplyControlToken; |
QUERY_CONTEXT_ATTRIBUTES_FN_A QueryContextAttributesA; | | QUERY_CONTEXT_ATTRIBUTES_FN_A QueryContextAttributesA; |
IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext; | | IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext; |
REVERT_SECURITY_CONTEXT_FN RevertSecurityContext; | | REVERT_SECURITY_CONTEXT_FN RevertSecurityContext; |
MAKE_SIGNATURE_FN MakeSignature; | | MAKE_SIGNATURE_FN MakeSignature; |
VERIFY_SIGNATURE_FN VerifySignature; | | VERIFY_SIGNATURE_FN VerifySignature; |
FREE_CONTEXT_BUFFER_FN FreeContextBuffer; | | FREE_CONTEXT_BUFFER_FN FreeContextBuffer; |
QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA; | | QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA; |
|
void SEC_FAR * Reserved3; | | void * Reserved3; |
void SEC_FAR * Reserved4; | | void * Reserved4; |
EXPORT_SECURITY_CONTEXT_FN ExportSecurityContext; | | EXPORT_SECURITY_CONTEXT_FN ExportSecurityContext; |
IMPORT_SECURITY_CONTEXT_FN_A ImportSecurityContextA; | | IMPORT_SECURITY_CONTEXT_FN_A ImportSecurityContextA; |
ADD_CREDENTIALS_FN_A AddCredentialsA ; | | ADD_CREDENTIALS_FN_A AddCredentialsA ; |
|
void SEC_FAR * Reserved8; | | void * Reserved8; |
QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken; | | QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken; |
ENCRYPT_MESSAGE_FN EncryptMessage; | | ENCRYPT_MESSAGE_FN EncryptMessage; |
DECRYPT_MESSAGE_FN DecryptMessage; | | DECRYPT_MESSAGE_FN DecryptMessage; |
SET_CONTEXT_ATTRIBUTES_FN_A SetContextAttributesA; | | SET_CONTEXT_ATTRIBUTES_FN_A SetContextAttributesA; |
SET_CREDENTIALS_ATTRIBUTES_FN_A SetCredentialsAttributesA; | | SET_CREDENTIALS_ATTRIBUTES_FN_A SetCredentialsAttributesA; |
|
} SecurityFunctionTableA, SEC_FAR * PSecurityFunctionTableA; | | #if ISSP_MODE != 0 |
| | CHANGE_PASSWORD_FN_A ChangeAccountPasswordA; |
| | #else |
| | void * Reserved9; |
| | #endif |
| | } SecurityFunctionTableA, * PSecurityFunctionTableA; |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
# define SecurityFunctionTable SecurityFunctionTableW // ntifs | | # define SecurityFunctionTable SecurityFunctionTableW // ntifs |
# define PSecurityFunctionTable PSecurityFunctionTableW // ntifs | | # define PSecurityFunctionTable PSecurityFunctionTableW // ntifs |
#else | | #else |
# define SecurityFunctionTable SecurityFunctionTableA | | # define SecurityFunctionTable SecurityFunctionTableA |
# define PSecurityFunctionTable PSecurityFunctionTableA | | # define PSecurityFunctionTable PSecurityFunctionTableA |
#endif // !UNICODE | | #endif // !UNICODE |
| | |
#define SECURITY_ | | #define SECURITY_ |
| | |
// Function table has all routines through DecryptMessage | | // Function table has all routines through DecryptMessage |
#define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION 1 // ntifs | | #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION 1 // ntifs |
| | |
// Function table has all routines through SetContextAttributes | | // Function table has all routines through SetContextAttributes |
#define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_2 2 // ntifs | | #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_2 2 // ntifs |
| | |
// Function table has all routines through SetCredentialsAttributes | | // Function table has all routines through SetCredentialsAttributes |
#define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_3 3 // ntifs | | #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_3 3 // ntifs |
| | |
|
| | // Function table has all routines through ChangeAccountPassword |
| | #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_4 4 // ntifs |
| | |
PSecurityFunctionTableA SEC_ENTRY | | PSecurityFunctionTableA SEC_ENTRY |
InitSecurityInterfaceA( | | InitSecurityInterfaceA( |
void | | void |
); | | ); |
| | |
typedef PSecurityFunctionTableA | | typedef PSecurityFunctionTableA |
(SEC_ENTRY * INIT_SECURITY_INTERFACE_A)(void); | | (SEC_ENTRY * INIT_SECURITY_INTERFACE_A)(void); |
| | |
// begin_ntifs | | // begin_ntifs |
| | |
| | |
skipping to change at line 1802 | | skipping to change at line 1953 |
| | |
#ifdef SECURITY_WIN32 | | #ifdef SECURITY_WIN32 |
| | |
// | | // |
// SASL Profile Support | | // SASL Profile Support |
// | | // |
| | |
SECURITY_STATUS | | SECURITY_STATUS |
SEC_ENTRY | | SEC_ENTRY |
SaslEnumerateProfilesA( | | SaslEnumerateProfilesA( |
|
OUT LPSTR * ProfileList, | | __deref_out LPSTR * ProfileList, |
OUT ULONG * ProfileCount | | __out ULONG * ProfileCount |
); | | ); |
| | |
SECURITY_STATUS | | SECURITY_STATUS |
SEC_ENTRY | | SEC_ENTRY |
SaslEnumerateProfilesW( | | SaslEnumerateProfilesW( |
OUT LPWSTR * ProfileList, | | OUT LPWSTR * ProfileList, |
OUT ULONG * ProfileCount | | OUT ULONG * ProfileCount |
); | | ); |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
#define SaslEnumerateProfiles SaslEnumerateProfilesW | | #define SaslEnumerateProfiles SaslEnumerateProfilesW |
#else | | #else |
#define SaslEnumerateProfiles SaslEnumerateProfilesA | | #define SaslEnumerateProfiles SaslEnumerateProfilesA |
#endif | | #endif |
| | |
SECURITY_STATUS | | SECURITY_STATUS |
SEC_ENTRY | | SEC_ENTRY |
SaslGetProfilePackageA( | | SaslGetProfilePackageA( |
|
IN LPSTR ProfileName, | | __in LPSTR ProfileName, |
OUT PSecPkgInfoA * PackageInfo | | __deref_out PSecPkgInfoA * PackageInfo |
); | | ); |
| | |
SECURITY_STATUS | | SECURITY_STATUS |
SEC_ENTRY | | SEC_ENTRY |
SaslGetProfilePackageW( | | SaslGetProfilePackageW( |
|
IN LPWSTR ProfileName, | | __in LPWSTR ProfileName, |
OUT PSecPkgInfoW * PackageInfo | | __deref_out PSecPkgInfoW * PackageInfo |
); | | ); |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
#define SaslGetProfilePackage SaslGetProfilePackageW | | #define SaslGetProfilePackage SaslGetProfilePackageW |
#else | | #else |
#define SaslGetProfilePackage SaslGetProfilePackageA | | #define SaslGetProfilePackage SaslGetProfilePackageA |
#endif | | #endif |
| | |
SECURITY_STATUS | | SECURITY_STATUS |
SEC_ENTRY | | SEC_ENTRY |
SaslIdentifyPackageA( | | SaslIdentifyPackageA( |
|
IN PSecBufferDesc pInput, | | __in PSecBufferDesc pInput, |
OUT PSecPkgInfoA * PackageInfo | | __deref_out PSecPkgInfoA * PackageInfo |
); | | ); |
| | |
SECURITY_STATUS | | SECURITY_STATUS |
SEC_ENTRY | | SEC_ENTRY |
SaslIdentifyPackageW( | | SaslIdentifyPackageW( |
|
IN PSecBufferDesc pInput, | | __in PSecBufferDesc pInput, |
OUT PSecPkgInfoW * PackageInfo | | __deref_out PSecPkgInfoW * PackageInfo |
); | | ); |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
#define SaslIdentifyPackage SaslIdentifyPackageW | | #define SaslIdentifyPackage SaslIdentifyPackageW |
#else | | #else |
#define SaslIdentifyPackage SaslIdentifyPackageA | | #define SaslIdentifyPackage SaslIdentifyPackageA |
#endif | | #endif |
| | |
SECURITY_STATUS | | SECURITY_STATUS |
SEC_ENTRY | | SEC_ENTRY |
SaslInitializeSecurityContextW( | | SaslInitializeSecurityContextW( |
|
PCredHandle phCredential, // Cred to base context | | __in_opt PCredHandle phCredential, // Cred to base |
PCtxtHandle phContext, // Existing context (OPT) | | context |
LPWSTR pszTargetName, // Name of target | | __in_opt PCtxtHandle phContext, // Existing cont |
unsigned long fContextReq, // Context Requirements | | ext (OPT) |
unsigned long Reserved1, // Reserved, MBZ | | __in_opt LPWSTR pszTargetName, // Name of targe |
unsigned long TargetDataRep, // Data rep of target | | t |
PSecBufferDesc pInput, // Input Buffers | | __in unsigned long fContextReq, // Context Requi |
unsigned long Reserved2, // Reserved, MBZ | | rements |
PCtxtHandle phNewContext, // (out) New Context handle | | __in unsigned long Reserved1, // Reserved, MBZ |
PSecBufferDesc pOutput, // (inout) Output Buffers | | __in unsigned long TargetDataRep, // Data rep of t |
unsigned long SEC_FAR * pfContextAttr, // (out) Context attrs | | arget |
PTimeStamp ptsExpiry // (out) Life span (OPT) | | __in_opt PSecBufferDesc pInput, // Input Buffers |
| | __in unsigned long Reserved2, // Reserved, MBZ |
| | __inout_opt PCtxtHandle phNewContext, // (out) New Con |
| | text handle |
| | __inout_opt PSecBufferDesc pOutput, // (inout) Outpu |
| | t Buffers |
| | __out unsigned long * pfContextAttr, // (out) Context attrs |
| | __out_opt PTimeStamp ptsExpiry // (out) Life sp |
| | an (OPT) |
); | | ); |
| | |
SECURITY_STATUS | | SECURITY_STATUS |
SEC_ENTRY | | SEC_ENTRY |
SaslInitializeSecurityContextA( | | SaslInitializeSecurityContextA( |
|
PCredHandle phCredential, // Cred to base context | | __in_opt PCredHandle phCredential, // Cred to base |
PCtxtHandle phContext, // Existing context (OPT) | | context |
LPSTR pszTargetName, // Name of target | | __in_opt PCtxtHandle phContext, // Existing cont |
unsigned long fContextReq, // Context Requirements | | ext (OPT) |
unsigned long Reserved1, // Reserved, MBZ | | __in_opt LPSTR pszTargetName, // Name of targe |
unsigned long TargetDataRep, // Data rep of target | | t |
PSecBufferDesc pInput, // Input Buffers | | __in unsigned long fContextReq, // Context Requi |
unsigned long Reserved2, // Reserved, MBZ | | rements |
PCtxtHandle phNewContext, // (out) New Context handle | | __in unsigned long Reserved1, // Reserved, MBZ |
PSecBufferDesc pOutput, // (inout) Output Buffers | | __in unsigned long TargetDataRep, // Data rep of t |
unsigned long SEC_FAR * pfContextAttr, // (out) Context attrs | | arget |
PTimeStamp ptsExpiry // (out) Life span (OPT) | | __in_opt PSecBufferDesc pInput, // Input Buffers |
| | __in unsigned long Reserved2, // Reserved, MBZ |
| | __inout_opt PCtxtHandle phNewContext, // (out) New Con |
| | text handle |
| | __inout_opt PSecBufferDesc pOutput, // (inout) Outpu |
| | t Buffers |
| | __out unsigned long * pfContextAttr, // (out) Context attrs |
| | __out_opt PTimeStamp ptsExpiry // (out) Life sp |
| | an (OPT) |
); | | ); |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
#define SaslInitializeSecurityContext SaslInitializeSecurityContextW | | #define SaslInitializeSecurityContext SaslInitializeSecurityContextW |
#else | | #else |
#define SaslInitializeSecurityContext SaslInitializeSecurityContextA | | #define SaslInitializeSecurityContext SaslInitializeSecurityContextA |
#endif | | #endif |
| | |
SECURITY_STATUS | | SECURITY_STATUS |
SEC_ENTRY | | SEC_ENTRY |
SaslAcceptSecurityContext( | | SaslAcceptSecurityContext( |
|
PCredHandle phCredential, // Cred to base context | | __in_opt PCredHandle phCredential, // Cred to base |
PCtxtHandle phContext, // Existing context (OPT) | | context |
PSecBufferDesc pInput, // Input buffer | | __in_opt PCtxtHandle phContext, // Existing cont |
unsigned long fContextReq, // Context Requirements | | ext (OPT) |
unsigned long TargetDataRep, // Target Data Rep | | __in_opt PSecBufferDesc pInput, // Input buffer |
PCtxtHandle phNewContext, // (out) New context handle | | __in unsigned long fContextReq, // Context Requi |
PSecBufferDesc pOutput, // (inout) Output buffers | | rements |
unsigned long SEC_FAR * pfContextAttr, // (out) Context attributes | | __in unsigned long TargetDataRep, // Target Data R |
PTimeStamp ptsExpiry // (out) Life span (OPT) | | ep |
| | __inout_opt PCtxtHandle phNewContext, // (out) New con |
| | text handle |
| | __inout_opt PSecBufferDesc pOutput, // (inout) Outpu |
| | t buffers |
| | __out unsigned long * pfContextAttr, // (out) Context attribu |
| | tes |
| | __out_opt PTimeStamp ptsExpiry // (out) Life sp |
| | an (OPT) |
); | | ); |
| | |
#define SASL_OPTION_SEND_SIZE 1 // Maximum size to send to peer | | #define SASL_OPTION_SEND_SIZE 1 // Maximum size to send to peer |
#define SASL_OPTION_RECV_SIZE 2 // Maximum size willing to receive | | #define SASL_OPTION_RECV_SIZE 2 // Maximum size willing to receive |
#define SASL_OPTION_AUTHZ_STRING 3 // Authorization string | | #define SASL_OPTION_AUTHZ_STRING 3 // Authorization string |
#define SASL_OPTION_AUTHZ_PROCESSING 4 // Authorization string processi
ng | | #define SASL_OPTION_AUTHZ_PROCESSING 4 // Authorization string processi
ng |
| | |
typedef enum _SASL_AUTHZID_STATE { | | typedef enum _SASL_AUTHZID_STATE { |
Sasl_AuthZIDForbidden, // allow no AuthZID strings to be specifi
ed - error out (default) | | Sasl_AuthZIDForbidden, // allow no AuthZID strings to be specifi
ed - error out (default) |
Sasl_AuthZIDProcessed // AuthZID Strings processed by Applicatio
n or SSP | | Sasl_AuthZIDProcessed // AuthZID Strings processed by Applicatio
n or SSP |
} SASL_AUTHZID_STATE ; | | } SASL_AUTHZID_STATE ; |
| | |
SECURITY_STATUS | | SECURITY_STATUS |
SEC_ENTRY | | SEC_ENTRY |
SaslSetContextOption( | | SaslSetContextOption( |
|
PCtxtHandle ContextHandle, | | __in PCtxtHandle ContextHandle, |
ULONG Option, | | __in ULONG Option, |
PVOID Value, | | __in PVOID Value, |
ULONG Size | | __in ULONG Size |
); | | ); |
| | |
SECURITY_STATUS | | SECURITY_STATUS |
SEC_ENTRY | | SEC_ENTRY |
SaslGetContextOption( | | SaslGetContextOption( |
|
PCtxtHandle ContextHandle, | | __in PCtxtHandle ContextHandle, |
ULONG Option, | | __in ULONG Option, |
PVOID Value, | | __out PVOID Value, |
ULONG Size, | | __in ULONG Size, |
PULONG Needed OPTIONAL | | __out_opt PULONG Needed OPTIONAL |
); | | ); |
| | |
#endif | | #endif |
| | |
#ifdef SECURITY_DOS | | #ifdef SECURITY_DOS |
#if _MSC_VER >= 1200 | | #if _MSC_VER >= 1200 |
#pragma warning(pop) | | #pragma warning(pop) |
#else | | #else |
#pragma warning(default:4147) | | #pragma warning(default:4147) |
#endif | | #endif |
| | |
skipping to change at line 1957 | | skipping to change at line 2108 |
#else | | #else |
#pragma warning(default:4147) | | #pragma warning(default:4147) |
#endif | | #endif |
#endif | | #endif |
| | |
// | | // |
// This is the legacy credentials structure. | | // This is the legacy credentials structure. |
// The EX version below is preferred. | | // The EX version below is preferred. |
| | |
// begin_ntifs | | // begin_ntifs |
|
| | |
#ifndef _AUTH_IDENTITY_DEFINED | | #ifndef _AUTH_IDENTITY_DEFINED |
#define _AUTH_IDENTITY_DEFINED | | #define _AUTH_IDENTITY_DEFINED |
| | |
|
| | // |
| | // This was not defined in NTIFS.h for windows 2000 however |
| | // this struct has always been there and are safe to use |
| | // in windows 2000 and above. |
| | // |
| | |
#define SEC_WINNT_AUTH_IDENTITY_ANSI 0x1 | | #define SEC_WINNT_AUTH_IDENTITY_ANSI 0x1 |
#define SEC_WINNT_AUTH_IDENTITY_UNICODE 0x2 | | #define SEC_WINNT_AUTH_IDENTITY_UNICODE 0x2 |
| | |
typedef struct _SEC_WINNT_AUTH_IDENTITY_W { | | typedef struct _SEC_WINNT_AUTH_IDENTITY_W { |
unsigned short *User; | | unsigned short *User; |
unsigned long UserLength; | | unsigned long UserLength; |
unsigned short *Domain; | | unsigned short *Domain; |
unsigned long DomainLength; | | unsigned long DomainLength; |
unsigned short *Password; | | unsigned short *Password; |
unsigned long PasswordLength; | | unsigned long PasswordLength; |
unsigned long Flags; | | unsigned long Flags; |
} SEC_WINNT_AUTH_IDENTITY_W, *PSEC_WINNT_AUTH_IDENTITY_W; | | } SEC_WINNT_AUTH_IDENTITY_W, *PSEC_WINNT_AUTH_IDENTITY_W; |
| | |
// end_ntifs | | // end_ntifs |
| | |
|
| | #define _AUTH_IDENTITY_A_DEFINED |
| | |
typedef struct _SEC_WINNT_AUTH_IDENTITY_A { | | typedef struct _SEC_WINNT_AUTH_IDENTITY_A { |
unsigned char *User; | | unsigned char *User; |
unsigned long UserLength; | | unsigned long UserLength; |
unsigned char *Domain; | | unsigned char *Domain; |
unsigned long DomainLength; | | unsigned long DomainLength; |
unsigned char *Password; | | unsigned char *Password; |
unsigned long PasswordLength; | | unsigned long PasswordLength; |
unsigned long Flags; | | unsigned long Flags; |
} SEC_WINNT_AUTH_IDENTITY_A, *PSEC_WINNT_AUTH_IDENTITY_A; | | } SEC_WINNT_AUTH_IDENTITY_A, *PSEC_WINNT_AUTH_IDENTITY_A; |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
#define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_W // ntifs | | #define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_W // ntifs |
#define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_W // ntifs | | #define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_W // ntifs |
#define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_W // ntifs | | #define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_W // ntifs |
#else // UNICODE | | #else // UNICODE |
#define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_A | | #define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_A |
#define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_A | | #define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_A |
#define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_A | | #define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_A |
#endif // UNICODE | | #endif // UNICODE |
| | |
|
| | // begin_ntifs |
| | |
#endif //_AUTH_IDENTITY_DEFINED // ntifs | | #endif //_AUTH_IDENTITY_DEFINED // ntifs |
| | |
|
// begin_ntifs | | |
// | | // |
// This is the combined authentication identity structure that may be | | // This is the combined authentication identity structure that may be |
// used with the negotiate package, NTLM, Kerberos, or SCHANNEL | | // used with the negotiate package, NTLM, Kerberos, or SCHANNEL |
// | | // |
| | |
#ifndef SEC_WINNT_AUTH_IDENTITY_VERSION | | #ifndef SEC_WINNT_AUTH_IDENTITY_VERSION |
#define SEC_WINNT_AUTH_IDENTITY_VERSION 0x200 | | #define SEC_WINNT_AUTH_IDENTITY_VERSION 0x200 |
| | |
typedef struct _SEC_WINNT_AUTH_IDENTITY_EXW { | | typedef struct _SEC_WINNT_AUTH_IDENTITY_EXW { |
unsigned long Version; | | unsigned long Version; |
unsigned long Length; | | unsigned long Length; |
|
unsigned short SEC_FAR *User; | | unsigned short *User; |
unsigned long UserLength; | | unsigned long UserLength; |
|
unsigned short SEC_FAR *Domain; | | unsigned short *Domain; |
unsigned long DomainLength; | | unsigned long DomainLength; |
|
unsigned short SEC_FAR *Password; | | unsigned short *Password; |
unsigned long PasswordLength; | | unsigned long PasswordLength; |
unsigned long Flags; | | unsigned long Flags; |
|
unsigned short SEC_FAR * PackageList; | | unsigned short * PackageList; |
unsigned long PackageListLength; | | unsigned long PackageListLength; |
} SEC_WINNT_AUTH_IDENTITY_EXW, *PSEC_WINNT_AUTH_IDENTITY_EXW; | | } SEC_WINNT_AUTH_IDENTITY_EXW, *PSEC_WINNT_AUTH_IDENTITY_EXW; |
| | |
// end_ntifs | | // end_ntifs |
| | |
typedef struct _SEC_WINNT_AUTH_IDENTITY_EXA { | | typedef struct _SEC_WINNT_AUTH_IDENTITY_EXA { |
unsigned long Version; | | unsigned long Version; |
unsigned long Length; | | unsigned long Length; |
|
unsigned char SEC_FAR *User; | | unsigned char *User; |
unsigned long UserLength; | | unsigned long UserLength; |
|
unsigned char SEC_FAR *Domain; | | unsigned char *Domain; |
unsigned long DomainLength; | | unsigned long DomainLength; |
|
unsigned char SEC_FAR *Password; | | unsigned char *Password; |
unsigned long PasswordLength; | | unsigned long PasswordLength; |
unsigned long Flags; | | unsigned long Flags; |
|
unsigned char SEC_FAR * PackageList; | | unsigned char * PackageList; |
unsigned long PackageListLength; | | unsigned long PackageListLength; |
} SEC_WINNT_AUTH_IDENTITY_EXA, *PSEC_WINNT_AUTH_IDENTITY_EXA; | | } SEC_WINNT_AUTH_IDENTITY_EXA, *PSEC_WINNT_AUTH_IDENTITY_EXA; |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
#define SEC_WINNT_AUTH_IDENTITY_EX SEC_WINNT_AUTH_IDENTITY_EXW // ntifs | | #define SEC_WINNT_AUTH_IDENTITY_EX SEC_WINNT_AUTH_IDENTITY_EXW // ntifs |
#define PSEC_WINNT_AUTH_IDENTITY_EX PSEC_WINNT_AUTH_IDENTITY_EXW // ntifs | | #define PSEC_WINNT_AUTH_IDENTITY_EX PSEC_WINNT_AUTH_IDENTITY_EXW // ntifs |
#else | | #else |
#define SEC_WINNT_AUTH_IDENTITY_EX SEC_WINNT_AUTH_IDENTITY_EXA | | #define SEC_WINNT_AUTH_IDENTITY_EX SEC_WINNT_AUTH_IDENTITY_EXA |
#endif | | #endif |
| | |
// begin_ntifs | | // begin_ntifs |
#endif // SEC_WINNT_AUTH_IDENTITY_VERSION | | #endif // SEC_WINNT_AUTH_IDENTITY_VERSION |
| | |
// | | // |
// Common types used by negotiable security packages | | // Common types used by negotiable security packages |
// | | // |
|
| | // These are defined after W2K |
| | // |
| | |
#define SEC_WINNT_AUTH_IDENTITY_MARSHALLED 0x4 // all data is in one bu
ffer | | #define SEC_WINNT_AUTH_IDENTITY_MARSHALLED 0x4 // all data is in one bu
ffer |
#define SEC_WINNT_AUTH_IDENTITY_ONLY 0x8 // these credentials are
for identity only - no PAC needed | | #define SEC_WINNT_AUTH_IDENTITY_ONLY 0x8 // these credentials are
for identity only - no PAC needed |
| | |
// end_ntifs | | // end_ntifs |
| | |
// | | // |
// Routines for manipulating packages | | // Routines for manipulating packages |
// | | // |
| | |
typedef struct _SECURITY_PACKAGE_OPTIONS { | | typedef struct _SECURITY_PACKAGE_OPTIONS { |
unsigned long Size; | | unsigned long Size; |
unsigned long Type; | | unsigned long Type; |
unsigned long Flags; | | unsigned long Flags; |
unsigned long SignatureSize; | | unsigned long SignatureSize; |
|
void SEC_FAR * Signature; | | void * Signature; |
} SECURITY_PACKAGE_OPTIONS, SEC_FAR * PSECURITY_PACKAGE_OPTIONS; | | } SECURITY_PACKAGE_OPTIONS, * PSECURITY_PACKAGE_OPTIONS; |
| | |
#define SECPKG_OPTIONS_TYPE_UNKNOWN 0 | | #define SECPKG_OPTIONS_TYPE_UNKNOWN 0 |
#define SECPKG_OPTIONS_TYPE_LSA 1 | | #define SECPKG_OPTIONS_TYPE_LSA 1 |
#define SECPKG_OPTIONS_TYPE_SSPI 2 | | #define SECPKG_OPTIONS_TYPE_SSPI 2 |
| | |
#define SECPKG_OPTIONS_PERMANENT 0x00000001 | | #define SECPKG_OPTIONS_PERMANENT 0x00000001 |
| | |
SECURITY_STATUS | | SECURITY_STATUS |
SEC_ENTRY | | SEC_ENTRY |
AddSecurityPackageA( | | AddSecurityPackageA( |
|
SEC_CHAR SEC_FAR * pszPackageName, | | __in LPSTR pszPackageName, |
SECURITY_PACKAGE_OPTIONS SEC_FAR * Options | | __in_opt PSECURITY_PACKAGE_OPTIONS pOptions |
); | | ); |
| | |
SECURITY_STATUS | | SECURITY_STATUS |
SEC_ENTRY | | SEC_ENTRY |
AddSecurityPackageW( | | AddSecurityPackageW( |
|
SEC_WCHAR SEC_FAR * pszPackageName, | | __in LPWSTR pszPackageName, |
SECURITY_PACKAGE_OPTIONS SEC_FAR * Options | | __in_opt PSECURITY_PACKAGE_OPTIONS pOptions |
); | | ); |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
#define AddSecurityPackage AddSecurityPackageW | | #define AddSecurityPackage AddSecurityPackageW |
#else | | #else |
#define AddSecurityPackage AddSecurityPackageA | | #define AddSecurityPackage AddSecurityPackageA |
#endif | | #endif |
| | |
SECURITY_STATUS | | SECURITY_STATUS |
SEC_ENTRY | | SEC_ENTRY |
DeleteSecurityPackageA( | | DeleteSecurityPackageA( |
|
SEC_CHAR SEC_FAR * pszPackageName ); | | __in LPSTR pszPackageName |
| | ); |
| | |
SECURITY_STATUS | | SECURITY_STATUS |
SEC_ENTRY | | SEC_ENTRY |
DeleteSecurityPackageW( | | DeleteSecurityPackageW( |
|
SEC_WCHAR SEC_FAR * pszPackageName ); | | __in LPWSTR pszPackageName |
| | ); |
| | |
#ifdef UNICODE | | #ifdef UNICODE |
#define DeleteSecurityPackage DeleteSecurityPackageW | | #define DeleteSecurityPackage DeleteSecurityPackageW |
#else | | #else |
#define DeleteSecurityPackage DeleteSecurityPackageA | | #define DeleteSecurityPackage DeleteSecurityPackageA |
#endif | | #endif |
| | |
#ifdef __cplusplus | | #ifdef __cplusplus |
} // extern "C" | | } // extern "C" |
#endif | | #endif |
| | |
End of changes. 212 change blocks. |
432 lines changed or deleted | | 635 lines changed or added |
|