xpmgr/BuildTools/Include/EapHostPeerTypes.h

151 lines
4.0 KiB
C

////////////////////////////////////////////////////////////
//
// Copyright (c) Microsoft Corporation.
//
// SYNOPSIS
//
// IDL source for interaction with EAPHost supplicants.
//
////////////////////////////////////////////////////////////
#ifndef EAPHOSTPEERTYPES_H
#define EAPHOSTPEERTYPES_H
#pragma once
// Request to provide guest access.
#define EAP_PEER_FLAG_GUEST_ACCESS 0x00000040
typedef
#ifdef __midl
[v1_enum]
#endif
// Possible reasons for which EAP-method can call getResult from EAPhost
enum tagEapHostPeerMethodResultReason
{
// if method has obtained success from some
EapHostPeerMethodResultAltSuccessReceived = 1,
// method timedout waiting for response
EapHostPeerMethodResultTimeout,
// normal completion of authentication process
EapHostPeerMethodResultFromMethod
} EapHostPeerMethodResultReason;
typedef
#ifdef __midl
[v1_enum]
#endif
enum tagEapHostPeerResponseAction
{
// Discard the request as EAP cannot use it.
EapHostPeerResponseDiscard = 0,
// Send the packet to the authenticator
EapHostPeerResponseSend,
// Respond to EAP by acting on the returned attributes
EapHostPeerResponseResult,
// Invoke appropriate UI based on the context
EapHostPeerResponseInvokeUi,
// Display a string to the user received as part of a notification
// request
// EapHostPeerResponseNotification,
// The supplicant needs to take an action based on the context.
EapHostPeerResponseRespond,
// The supplicant needs to restart authentication with the same session.
//EapHostPeerResponseResetAuthentication,
// The session could not be found. So the supplicant either needs to
// start session again with the same packet or discard the packet.
EapHostPeerResponseStartAuthentication,
// The supplicant needs to take no action at all.
EapHostPeerResponseNone
} EapHostPeerResponseAction;
typedef
#ifdef __midl
[v1_enum]
#endif
enum tagEapHostPeerAuthParams {
EapHostPeerAuthStatus = 1, // current auth status
EapHostPeerIdentity, // obtain the inner method id
EapHostPeerIdentityExtendedInfo, // obtained from Identity packet
// This includes NLA information for wireless
EapHostNapInfo //obtain the Nap details
} EapHostPeerAuthParams;
typedef
#ifdef __midl
[v1_enum]
#endif
// possible values for EAP status during authentication process
enum _EAPHOST_AUTH_STATUS
{
EapHostInvalidSession = 0,
EapHostAuthNotStarted,
EapHostAuthIdentityExchange,
EapHostAuthNegotiatingType,
EapHostAuthInProgress,
EapHostAuthSucceeded,
EapHostAuthFailed
} EAPHOST_AUTH_STATUS;
// describes the current authentication info through different stages
// of EAP authentication process.
typedef struct _EAPHOST_AUTH_INFO
{
EAPHOST_AUTH_STATUS status;
DWORD dwErrorCode;
DWORD dwReasonCode;
} EAPHOST_AUTH_INFO;
// Describes the isolation state of a machine, i.e.
// whether connectivity is affected.
typedef
#ifdef __midl
[v1_enum]
#endif
enum _ISOLATION_STATE
{
ISOLATION_STATE_UNKNOWN = 0,
ISOLATION_STATE_NOT_RESTRICTED = 1,
ISOLATION_STATE_IN_PROBATION = 2,
ISOLATION_STATE_RESTRICTED_ACCESS = 3
} ISOLATION_STATE;
// This carries the result information passed from EAPHost to EAP-method,
// when EAP-method calls GetResult
typedef struct tagEapHostPeerMethodResult
{
BOOL fIsSuccess;
UINT32 dwFailureReasonCode;
BOOL fSaveConnectionData;
UINT32 dwSizeofConnectionData;
#ifdef __midl
[size_is(dwSizeofConnectionData)] BYTE* pConnectionData;
#else
BYTE* pConnectionData;
#endif
BOOL fSaveUserData;
UINT32 dwSizeofUserData;
#ifdef __midl
[size_is(dwSizeofUserData)] BYTE* pUserData;
#else
BYTE* pUserData;
#endif
EAP_ATTRIBUTES* pAttribArray;
ISOLATION_STATE isolationState;
EAP_METHOD_INFO* pEapMethodInfo;
EAP_ERROR* pEapError;
} EapHostPeerMethodResult;
#endif //EAPHOSTPEERTYPES_IDL