blob: 326b7fc9bf760d93765e8ab1e450a13a6b63e773 [file] [log] [blame]
// 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;