1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
use shared::guiddef::GUID;
use shared::minwindef::{BOOL, DWORD};
use um::eaptypes::EAP_METHOD_TYPE;
use um::l2cmn::L2_REASON_CODE_ONEX_BASE;
use um::winnt::HANDLE;
ENUM!{enum ONEX_AUTH_IDENTITY {
    OneXAuthIdentityNone = 0,
    OneXAuthIdentityMachine = 1,
    OneXAuthIdentityUser = 2,
    OneXAuthIdentityExplicitUser = 3,
    OneXAuthIdentityGuest = 4,
    OneXAuthIdentityInvalid = 5,
}}
pub type PONEX_AUTH_IDENTITY = *mut ONEX_AUTH_IDENTITY;
ENUM!{enum ONEX_AUTH_STATUS {
    OneXAuthNotStarted = 0,
    OneXAuthInProgress = 1,
    OneXAuthNoAuthenticatorFound = 2,
    OneXAuthSuccess = 3,
    OneXAuthFailure = 4,
    OneXAuthInvalid = 5,
}}
pub type PONEX_AUTH_STATUS = *mut ONEX_AUTH_STATUS;
ENUM!{enum ONEX_REASON_CODE {
    ONEX_REASON_CODE_SUCCESS = 0,
    ONEX_REASON_START = L2_REASON_CODE_ONEX_BASE,
    ONEX_UNABLE_TO_IDENTIFY_USER = 327681,
    ONEX_IDENTITY_NOT_FOUND = 327682,
    ONEX_UI_DISABLED = 327683,
    ONEX_UI_FAILURE = 327684,
    ONEX_EAP_FAILURE_RECEIVED = 327685,
    ONEX_AUTHENTICATOR_NO_LONGER_PRESENT = 327686,
    ONEX_NO_RESPONSE_TO_IDENTITY = 327687,
    ONEX_PROFILE_VERSION_NOT_SUPPORTED = 327688,
    ONEX_PROFILE_INVALID_LENGTH = 327689,
    ONEX_PROFILE_DISALLOWED_EAP_TYPE = 327690,
    ONEX_PROFILE_INVALID_EAP_TYPE_OR_FLAG = 327691,
    ONEX_PROFILE_INVALID_ONEX_FLAGS = 327692,
    ONEX_PROFILE_INVALID_TIMER_VALUE = 327693,
    ONEX_PROFILE_INVALID_SUPPLICANT_MODE = 327694,
    ONEX_PROFILE_INVALID_AUTH_MODE = 327695,
    ONEX_PROFILE_INVALID_EAP_CONNECTION_PROPERTIES = 327696,
    ONEX_UI_CANCELLED = 327697,
    ONEX_PROFILE_INVALID_EXPLICIT_CREDENTIALS = 327698,
    ONEX_PROFILE_EXPIRED_EXPLICIT_CREDENTIALS = 327699,
    ONEX_UI_NOT_PERMITTED = 327700,
}}
pub type PONEX_REASON_CODE = *mut ONEX_REASON_CODE;
ENUM!{enum ONEX_NOTIFICATION_TYPE {
    OneXPublicNotificationBase = 0,
    OneXNotificationTypeResultUpdate = 1,
    OneXNotificationTypeAuthRestarted = 2,
    OneXNotificationTypeEventInvalid = 3,
    OneXNumNotifications = OneXNotificationTypeEventInvalid,
}}
pub type PONEX_NOTIFICATION_TYPE = *mut ONEX_NOTIFICATION_TYPE;
ENUM!{enum ONEX_AUTH_RESTART_REASON {
    OneXRestartReasonPeerInitiated = 0,
    OneXRestartReasonMsmInitiated = 1,
    OneXRestartReasonOneXHeldStateTimeout = 2,
    OneXRestartReasonOneXAuthTimeout = 3,
    OneXRestartReasonOneXConfigurationChanged = 4,
    OneXRestartReasonOneXUserChanged = 5,
    OneXRestartReasonQuarantineStateChanged = 6,
    OneXRestartReasonAltCredsTrial = 7,
    OneXRestartReasonInvalid = 8,
}}
pub type PONEX_AUTH_RESTART_REASON = *mut ONEX_AUTH_RESTART_REASON;
STRUCT!{struct ONEX_VARIABLE_BLOB {
    dwSize: DWORD,
    dwOffset: DWORD,
}}
pub type PONEX_VARIABLE_BLOB = *mut ONEX_VARIABLE_BLOB;
STRUCT!{struct ONEX_AUTH_PARAMS {
    fUpdatePending: BOOL,
    oneXConnProfile: ONEX_VARIABLE_BLOB,
    authIdentity: ONEX_AUTH_IDENTITY,
    dwQuarantineState: DWORD,
    Bitfields: DWORD,
    dwSessionId: DWORD,
    hUserToken: HANDLE,
    OneXUserProfile: ONEX_VARIABLE_BLOB,
    Identity: ONEX_VARIABLE_BLOB,
    UserName: ONEX_VARIABLE_BLOB,
    Domain: ONEX_VARIABLE_BLOB,
}}
BITFIELD!{ONEX_AUTH_PARAMS Bitfields: DWORD [
    fSessionId set_fSessionId[0..1],
    fhUserToken set_fhUserToken[1..2],
    fOnexUserProfile set_fOnexUserProfile[2..3],
    fIdentity set_fIdentity[3..4],
    fUserName set_fUserName[4..5],
    fDomain set_fDomain[5..6],
]}
pub type PONEX_AUTH_PARAMS = *mut ONEX_AUTH_PARAMS;
STRUCT!{struct ONEX_EAP_ERROR {
    dwWinError: DWORD,
    type_: EAP_METHOD_TYPE,
    dwReasonCode: DWORD,
    rootCauseGuid: GUID,
    repairGuid: GUID,
    helpLinkGuid: GUID,
    Bitfields: DWORD,
    RootCauseString: ONEX_VARIABLE_BLOB,
    RepairString: ONEX_VARIABLE_BLOB,
}}
BITFIELD!{ONEX_EAP_ERROR Bitfields: DWORD [
    fRootCauseString set_fRootCauseString[0..1],
    fRepairString set_fRepairString[1..2],
]}
pub type PONEX_EAP_ERROR = *mut ONEX_EAP_ERROR;
STRUCT!{struct ONEX_STATUS {
    authStatus: ONEX_AUTH_STATUS,
    dwReason: DWORD,
    dwError: DWORD,
}}
pub type PONEX_STATUS = *mut ONEX_STATUS;
ENUM!{enum ONEX_EAP_METHOD_BACKEND_SUPPORT {
    OneXEapMethodBackendSupportUnknown = 0,
    OneXEapMethodBackendSupported = 1,
    OneXEapMethodBackendUnsupported = 2,
}}
STRUCT!{struct ONEX_RESULT_UPDATE_DATA {
    oneXStatus: ONEX_STATUS,
    BackendSupport: ONEX_EAP_METHOD_BACKEND_SUPPORT,
    fBackendEngaged: BOOL,
    Bitfields: DWORD,
    authParams: ONEX_VARIABLE_BLOB,
    eapError: ONEX_VARIABLE_BLOB,
}}
BITFIELD!{ONEX_RESULT_UPDATE_DATA Bitfields: DWORD [
    fOneXAuthParams set_fOneXAuthParams[0..1],
    fEapError set_fEapError[1..2],
]}
pub type PONEX_RESULT_UPDATE_DATA = *mut ONEX_RESULT_UPDATE_DATA;
STRUCT!{struct ONEX_USER_INFO {
    authIdentity: ONEX_AUTH_IDENTITY,
    Bitfields: DWORD,
    UserName: ONEX_VARIABLE_BLOB,
    DomainName: ONEX_VARIABLE_BLOB,
}}
BITFIELD!{ONEX_USER_INFO Bitfields: DWORD [
    fUserName set_fUserName[0..1],
    fDomainName set_fDomainName[1..2],
]}
pub type PONEX_USER_INFO = *mut ONEX_USER_INFO;