⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wzcsapi.h

📁 Wince下通过ndisuio使用wifi卡的示例
💻 H
📖 第 1 页 / 共 3 页
字号:


#define     EAPOL_VERSION_1             1
#define     EAPOL_VERSION_2             2
#define     EAPOL_VERSION_3             3

#define     EAPOL_CURRENT_VERSION       EAPOL_VERSION_3

//
// Structure : EAPOL_AUTH_DATA
//
typedef struct _EAPOL_AUTH_DATA
{
    DWORD   dwEapType;
    DWORD   dwSize;
    BYTE    bData[1];
} EAPOL_AUTH_DATA, *PEAPOL_AUTH_DATA;

DWORD
WZCGetEapUserInfo (
        IN  WCHAR           *pwszGUID,
        IN  DWORD           dwEapTypeId,
        IN  DWORD           dwSizOfSSID,
        IN  BYTE            *pbSSID,
        IN  OUT PBYTE       pbUserInfo,
        IN  OUT DWORD       *pdwInfoSize
        );

// Structure used to define the UI Response.
// Currently it contains upto 3 blobs.
// If more are required, add to the structure

#define NUM_RESP_BLOBS 3

typedef struct _EAPOLUI_RESP
{
    RAW_DATA    rdData0;
    RAW_DATA    rdData1;
    RAW_DATA    rdData2;
} EAPOLUI_RESP, *PEAPOLUI_RESP;


//
// EAPOL Policy related parameters
//

#define     EAPOL_CERT_TYPE_SMARTCARD   1
#define     EAPOL_CERT_TYPE_MC_CERT     2

typedef struct _EAPOL_POLICY_DATA {
    BYTE  pbWirelessSSID[32];
    DWORD dwWirelessSSIDLen;
    DWORD dwEnable8021x;
    DWORD dw8021xMode;
    DWORD dwEAPType;
    DWORD dwMachineAuthentication;
    DWORD dwMachineAuthenticationType;
    DWORD dwGuestAuthentication;
    DWORD dwIEEE8021xMaxStart;
    DWORD dwIEEE8021xStartPeriod;
    DWORD dwIEEE8021xAuthPeriod;
    DWORD dwIEEE8021xHeldPeriod;
    DWORD dwEAPDataLen;
    LPBYTE pbEAPData;
} EAPOL_POLICY_DATA, *PEAPOL_POLICY_DATA;


typedef struct _EAPOL_POLICY_LIST  {
	DWORD			    dwNumberOfItems;
	EAPOL_POLICY_DATA	EAPOLPolicy[1];
} EAPOL_POLICY_LIST, *PEAPOL_POLICY_LIST;


#if !defined(MIDL_PASS)

//---------------------------------------
// WZCEapolGetCustomAuthData: Get EAP-specific configuration data for interface
// 
// Parameters:
//   pSrvAddr:
//     [in]  WZC Server to contact
//   pwszGuid:
//     [in]  Interface GUID
//   dwEapTypeId:
//     [in]  EAP type Id
//   dwSizeOfSSID:
//     [in]  Size of SSID for which data is to be stored
//   pbSSID:
//     [in]  SSID for which data is to be stored
//   pbConnInfo:
//     [in out]  Connection EAP info
//   pdwInfoSize:
//     [in out]  Size of pbConnInfo
//
// Returned value:
//     Win32 error code 
DWORD
WZCEapolGetCustomAuthData (
    IN  LPWSTR        pSrvAddr,
    IN  PWCHAR        pwszGuid,
    IN  DWORD         dwEapTypeId,
    IN  DWORD         dwSizeOfSSID,
    IN  BYTE          *pbSSID,
    IN OUT PBYTE      pbConnInfo,
    IN OUT PDWORD     pdwInfoSize
    );

//---------------------------------------
// WZCEapolSetCustomAuthData: Set EAP-specific configuration data for interface
// 
// Parameters:
//   pSrvAddr:
//     [in]  WZC Server to contact
//   pwszGuid:
//     [in]  Interface GUID
//   dwEapTypeId:
//     [in]  EAP type Id
//   dwSizeOfSSID:
//     [in]  Size of SSID for which data is to be stored
//   pbSSID:
//     [in]  SSID for which data is to be stored
//   pbConnInfo:
//     [in]  Connection EAP info
//   pdwInfoSize:
//     [in]  Size of pbConnInfo
//
// Returned value:
//     Win32 error code 
DWORD
WZCEapolSetCustomAuthData (
    IN  LPWSTR        pSrvAddr,
    IN  PWCHAR        pwszGuid,
    IN  DWORD         dwEapTypeId,
    IN  DWORD         dwSizeOfSSID,
    IN  BYTE          *pbSSID,
    IN  PBYTE         pbConnInfo,
    IN  DWORD         dwInfoSize
    );

//---------------------------------------
// WZCEapolGetInterfaceParams: Get configuration parameters for interface
// 
// Parameters:
//   pSrvAddr:
//     [in]  WZC Server to contact
//   pwszGuid:
//     [in]  Interface GUID
//   pIntfParams:
//     [in out]  Interface Parameters
//
// Returned value:
//     Win32 error code 
DWORD
WZCEapolGetInterfaceParams (
    IN  LPWSTR          pSrvAddr,
    IN  PWCHAR          pwszGuid,
    IN OUT EAPOL_INTF_PARAMS   *pIntfParams
    );

//---------------------------------------
// WZCEapolSetInterfaceParams: Set configuration parameters for interface
// 
// Parameters:
//   pSrvAddr:
//     [in]  WZC Server to contact
//   pwszGuid:
//     [in]  Interface GUID
//   pIntfParams:
//     [in]  Interface parameters
// Returned value:
//     Win32 error code 
DWORD
WZCEapolSetInterfaceParams (
    IN  LPWSTR        pSrvAddr,
    IN  PWCHAR        pwszGuid,
    IN  EAPOL_INTF_PARAMS   *pIntfParams
    );

//---------------------------------------
// WZCEapolReAuthenticate : Restart 802.1X authentication on an interface 
// 
// Parameters:
//   pSrvAddr:
//     [in]  WZC Server to contact
//   pwszGuid:
//     [in]  Interface GUID
// Returned value:
//     Win32 error code 
DWORD
WZCEapolReAuthenticate (
    IN  LPWSTR        pSrvAddr,
    IN  PWCHAR        pwszGuid
    );

//---------------------------------------
// WZCEapolQueryState: Query the interface 802.1X/EAPOL state
// 
// Parameters:
//   pSrvAddr:
//     [in]  WZC Server to contact
//   pwszGuid:
//     [in]  Interface GUID
//   pIntfState:
//     [in out]  EAPOL Interface State
//
// Returned value:
//     Win32 error code 
DWORD
WZCEapolQueryState (
    IN  LPWSTR              pSrvAddr,
    IN  PWCHAR              pwszGuid,
    IN OUT EAPOL_INTF_STATE *pIntfState
    );

#endif // MIDL_PASS

//
// Free EAPOL interface state information on the client side obtained via
// RPC query
//

DWORD
WZCEapolFreeState (
    IN  EAPOL_INTF_STATE    *pIntfState
    );


//
// Structure: EAPOL_EAP_UI_CONTEXT
//

typedef struct _EAPOL_EAP_UI_CONTEXT
{
    DWORD       dwEAPOLUIMsgType;
    WCHAR       wszGUID[39];
    DWORD       dwSessionId;
    DWORD       dwContextId;
    DWORD       dwEapId;
    DWORD       dwEapTypeId;
    DWORD       dwEapFlags;
    WCHAR       wszSSID[MAX_SSID_LEN+1];
    DWORD       dwSizeOfSSID;
    BYTE        bSSID[MAX_SSID_LEN];
    DWORD       dwEAPOLState;
    DWORD       dwRetCode;
    DWORD       dwSizeOfEapUIData;
    BYTE        bEapUIData[1];
} EAPOL_EAP_UI_CONTEXT, *PEAPOL_EAP_UI_CONTEXT;

//
// Defines for messaging between Service and Dialog DLL
//

#define     EAPOLUI_GET_USERIDENTITY            0x00000001
#define     EAPOLUI_GET_USERNAMEPASSWORD        0x00000002
#define     EAPOLUI_INVOKEINTERACTIVEUI         0x00000004
#define     EAPOLUI_EAP_NOTIFICATION            0x00000008
#define     EAPOLUI_REAUTHENTICATE              0x00000010
#define     EAPOLUI_CREATEBALLOON               0x00000020
#define     EAPOLUI_CLEANUP                     0x00000040
#define     EAPOLUI_DUMMY                       0x00000080

#define     NUM_EAPOL_DLG_MSGS      8


//---------------------------------------
// WZCEapolUIResponse: Send Dlg response to Service
// 
// Parameters:
//   pSrvAddr:
//     [in]  WZC Server to contact
//   EapolUIContext:
//     [in]  EAPOLUI Context data
//   EapolUI:
//     [in]  EAPOLUI response data
//
// Returned value:
//     Win32 error code 
DWORD
WZCEapolUIResponse (
    IN  LPWSTR                  pSrvAddr,
    IN  EAPOL_EAP_UI_CONTEXT    EapolUIContext,
    IN  EAPOLUI_RESP            EapolUIResp
    );



#ifdef UNDER_CE

//
//  In CE, CreateFile(ZEROCONFIG_DEVICE_NAME) then IOCTL to it..
//

#define ZEROCONFIG_DEVICE_NAME      TEXT("ZCF1:")

#define FSCTL_ZC_BASE               FILE_DEVICE_NETWORK

#define _ZC_CTL_CODE(_Function, _Method, _Access)  \
            CTL_CODE(FSCTL_ZC_BASE, _Function, _Method, _Access)


#define IOCTL_ZC_ENUM_INTERFACES                    \
            _ZC_CTL_CODE(0x300, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_ZC_QUERY_INTERFACE                    \
            _ZC_CTL_CODE(0x301, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_ZC_SET_INTERFACE                      \
            _ZC_CTL_CODE(0x302, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_ZC_REFRESH_INTERFACE                  \
            _ZC_CTL_CODE(0x303, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_ZC_ENUM_EAP_EXTENSIONS                \
            _ZC_CTL_CODE(0x304, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_ZC_QUERY_CONTEXT                      \
            _ZC_CTL_CODE(0x30A, METHOD_BUFFERED, FILE_ANY_ACCESS)
            
#define IOCTL_ZC_SET_CONTEXT                        \
            _ZC_CTL_CODE(0x30B, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_ZC_READ_COMPLETION                    \
            _ZC_CTL_CODE(0x30C, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_ZC_PORT_INDICATION                    \
            _ZC_CTL_CODE(0x30D, METHOD_BUFFERED, FILE_ANY_ACCESS)


typedef struct
{
    DWORD   dwNumIntfs;
    DWORD   dwBufferSize;    
    PBYTE   pbBuffer;

}   CE_ENUM_INTERFACE, *PCE_ENUM_INTERFACE;


typedef struct
{
    DWORD               dwInFlags;
    DWORD               dwOutFlags;
    LPWSTR              wszGuid;
    DWORD               dwBufferSize;    
    PBYTE               pbBuffer;    

}   CE_QUERY_INTERFACE, *PCE_QUERY_INTERFACE;


typedef struct
{
    DWORD               dwInFlags;    
    DWORD               dwOutFlags;
    PINTF_ENTRY         pIntf;

}   CE_SET_INTERFACE, *PCE_SET_INTERFACE;


typedef struct
{
    DWORD               dwInFlags;
    DWORD               dwOutFlags;
    PINTF_ENTRY         pIntf;    

}   CE_REFRESH_INTERFACE, *PCE_REFRESH_INTERFACE;


typedef struct
{
    DWORD   dwNumExtensions;
    DWORD   dwBufferSize;    
    PBYTE   pbBuffer;

}   CE_ENUM_EAP_EXTENSIONS, *PCE_ENUM_EAP_EXTENSIONS;

typedef struct
{
    PWCHAR              pwszGuid;
    DWORD               dwEapTypeId;
    RAW_DATA            rdSSID;
    RAW_DATA            rdConnInfo;

}   CE_EAPOL_CUSTOM_AUTH_DATA, *PCE_EAPOL_CUSTOM_AUTH_DATA;


typedef struct
{
    PWCHAR              pwszGuid;
    EAPOL_INTF_PARAMS   *pIntfParams;

}   CE_EAPOL_INTERFACE_PARAMS, *PCE_EAPOL_INTERFACE_PARAMS;


typedef struct
{
    EAPOL_EAP_UI_CONTEXT    *pEapolUIContext;
    EAPOLUI_RESP            *pEapolUIResp;

}   CE_EAPOL_UI_RESPONSE, *PCE_EAPOL_UI_RESPONSE;

#endif  //  UNDER_CE


DWORD
WZCElReadCompletionRoutineWifi(
    LPWSTR pServerName,
    PDOT11_RECEIVE_UPCALL pDot11RecvUpcall
    );

#define WZC_PORTFLAGS_UP                 0x00000001
#define WZC_PORTFLAGS_DOWN               0x00000002
#define WZC_PORTFLAGS_SUCCESSFUL_ROAM    0x00000004
#define WZC_PORTFLAGS_PEERMAC_AVAILABLE  0x00000008

typedef struct _WZC_PORT_INFO {
    GUID gAdatperId;
    RAW_DATA PeerMacAddress;
    DWORD dwFlags;
} WZC_PORT_INFO, *PWZC_PORT_INFO;


DWORD
WzcPortIndication(
    IN LPWSTR pServerName,
    IN PWZC_PORT_INFO pWzcPortInfo
    );



# ifdef     __cplusplus
}
# endif


#endif	//	_WZCAPI_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -