EAP_PEER_METHOD_ROUTINES 结构 (eapmethodpeerapis.h)
包含一组指向 EAPHost 对等方法 API 的函数指针。
语法
typedef struct _EAP_PEER_METHOD_ROUTINES {
DWORD dwVersion;
EAP_TYPE *pEapType;
DWORD((EAP_ERROR **ppEapError) * )EapPeerInitialize;
DWORD(lags,DWORD dwSizeofConnectionData, const BYTE *pConnectionData,DWORD dwSizeofUserData, const BYTE *pUserData,HANDLE hTokenImpersonateUser,BOOL *pfInvokeUI,DWORD *pdwSizeOfUserDataOut,BYTE **ppUserDataOut,WCHAR **ppwszIdentity,EAP_ERROR **ppEapError) * )(DWORD fEapPeerGetIdentity;
DWORD(RD dwFlags, const EapAttributes * const pAttributeArray,HANDLE hTokenImpersonateUser,DWORD dwSizeofConnectionData,BYTE *pConnectionData,DWORD dwSizeofUserData,BYTE *pUserData,DWORD dwMaxSendPacketSize,EAP_SESSION_HANDLE *pSessionHandle,EAP_ERROR **ppEapError) * )(DWOEapPeerBeginSession;
DWORD(AP_SESSION_HANDLE sessionHandle,WCHAR *pwszIdentity,WCHAR *pwszPassword,EAP_ERROR **ppEapError) * )(EEapPeerSetCredentials;
DWORD(AP_SESSION_HANDLE sessionHandle,DWORD cbReceivePacket,EapPacket *pReceivePacket,EapPeerMethodOutput *pEapOutput,EAP_ERROR **ppEapError) * )(EEapPeerProcessRequestPacket;
DWORD(AP_SESSION_HANDLE sessionHandle,DWORD *pcbSendPacket,EapPacket *pSendPacket,EAP_ERROR **ppEapError) * )(EEapPeerGetResponsePacket;
DWORD(EAP_SESSION_HANDLE sessionHandle,EapPeerMethodResultReason reason,EapPeerMethodResult *ppResult,EAP_ERROR **ppEapError) * )(EapPeerGetResult;
DWORD(P_SESSION_HANDLE sessionHandle,DWORD *dwSizeOfUIContextData,BYTE **pUIContextData,EAP_ERROR **ppEapError) * )(EAEapPeerGetUIContext;
DWORD(AP_SESSION_HANDLE sessionHandle,DWORD dwSizeOfUIContextData, const BYTE *pUIContextData,EapPeerMethodOutput *pEapOutput,EAP_ERROR **ppEapError) * )(EEapPeerSetUIContext;
DWORD(EAP_SESSION_HANDLE sessionHandle,EapAttributes *pAttribs,EAP_ERROR **ppEapError) * )(EapPeerGetResponseAttributes;
DWORD(AP_SESSION_HANDLE sessionHandle,EapAttributes *pAttribs,EapPeerMethodOutput *pEapOutput,EAP_ERROR **ppEapError) * )(EEapPeerSetResponseAttributes;
DWORD((EAP_SESSION_HANDLE sessionHandle,EAP_ERROR **ppEapError) * )EapPeerEndSession;
DWORD((EAP_ERROR **ppEapError) * )EapPeerShutdown;
} EAP_PEER_METHOD_ROUTINES;
成员
dwVersion
实现者定义的结构版本。
pEapType
指向 EAP_TYPE 结构的指针,该结构包含有关此结构的成员所指向的 API 实现者的供应商信息。
EapPeerInitialize
EapPeerInitialize 的函数指针。
pEapError
指向 EAP_ERROR 结构的指针,该结构包含执行此函数调用期间引发的任何错误。 使用错误数据后,必须通过传递指向 EapPeerFreeErrorMemory 的指针来释放此内存。
EapPeerGetIdentity
EapPeerGetIdentity 的函数指针。
dwflags
描述 EAP 身份验证会话行为的 EAP 标志的组合。
dwSizeofConnectionData
指定 pConnectionData 中提供的连接数据缓冲区的大小(以字节为单位)
pConnectionData
指向包含不透明配置数据 BLOB 的字节缓冲区的指针。
dwSizeOfUserData
指定 pUserData 中提供的用户数据缓冲区的大小(以字节为单位)。
pUserData
指向特定于此身份验证的用户数据的指针,用于预填充用户数据。 首次调用此 API 或启动新的身份验证会话时,此参数为 NULL。 否则,请将此参数设置为 EapPeerGetResult 接收的 ppResult 参数指向的结构的 pUserData 成员。
hTokenImpersonateUser
指定要进行身份验证的用户的模拟令牌的句柄。 执行计算机身份验证时,此句柄将为 NULL 。 通过使用此句柄,EAP 方法可以模拟用户,以获取用户特定的信息,例如用户名、域名和凭据。
pfInvokeUI
如果未成功返回用户标识和用户数据 Blob,则返回 TRUE ,并且该方法寻求通过用户界面对话框从用户那里收集信息。
pdwSizeOfUserDataOut
指定 ppUserDataOut 缓冲区的大小(以字节为单位)。
ppUserDataOut
指向返回的用户数据的指针的指针。 数据作为输入 pUserData 传递到 EapPeerBeginSession。
ppwszIdentity
指向返回的用户标识的指针。 指针将包含在标识响应数据包中,并返回到服务器。
ppEapError
指向 指向EAP_ERROR 结构的指针的指针,该结构包含执行此函数调用期间引发的任何错误。 使用错误数据后,必须通过调用 EapPeerFreeErrorMemory 来释放此内存。
EapPeerBeginSession
EapPeerBeginSession 的函数指针。
dwFlags
描述新 EAP 身份验证会话行为的 EAP 标志 的组合。
pAttributeArray
指向 EAP_ATTRIBUTES 数组结构的指针,该结构指定要进行身份验证的实体的 EAP 属性。
hTokenImpersonateUser
指定要在此会话中使用的用户模拟令牌的句柄。
dwSizeOfConnectionData
指定 pConnectionData 中提供的连接数据缓冲区的大小(以字节为单位)。
pConnectionData
指向包含不透明配置数据 BLOB 的字节缓冲区的指针。
dwSizeOfUserData
指定 pUserData 中提供的用户数据缓冲区的大小(以字节为单位)。
pUserData
指向包含不透明用户数据 BLOB 的字节缓冲区的指针。
dwMaxSendPacketSize
指定会话期间发送的 EAP 数据包的最大大小(以字节为单位)。 如果方法需要发送大于最大大小的数据包,该方法必须适应碎片和重新组合。
pSessionHandle
指向包含 EAPHost 上新 EAP 身份验证会话的唯一 ID 的 EAP_SESSION_HANDLE 结构的指针
ppEapError
指向 EAP_ERROR 结构的地址的指针,该结构包含执行此函数调用期间 EAPHost 引发的任何错误。 使用错误数据后,必须通过调用 EapPeerFreeErrorMemory 来释放此内存。
EapPeerSetCredentials
sessionHandle
指向 EAP_SESSION_HANDLE 结构的指针,该结构包含 EAPHost 服务器上此 EAP 身份验证会话的唯一句柄。 在以前调用 EapPeerBeginSession 时,此句柄在 pSessionHandle 参数中返回。
pwszIdentity
指定要为其设置凭据的用户标识的指针。 此用户标识字符串是通过调用 EapPeerGetIdentity 函数获取的。
pwszPassword
包含用户标识的明文密码的指针。
ppEapError
指向 EAP_ERROR 结构的地址的指针,该结构包含执行此函数调用期间引发的任何错误。 使用错误数据后,必须通过调用 EapPeerFreeErrorMemory 来释放此内存。
EapPeerProcessRequestPacket
EapPeerProcessRequestPacket 的函数指针。
sessionHandle
EAP_SESSION_HANDLE 值,该值包含 EAPHost 上 EAP 身份验证会话的特定句柄。 此句柄是通过之前对 EapPeerBeginSession 的调用获取的。
cbReceivePacket
pReceivePacket 中指定的请求数据包的大小(以字节为单位)。
pReceivePacket
指向 EapPacket 结构的指针,该结构包含要处理的请求数据包。
pEapOutput
指向 EapPeerMethodOutput 结构的指针,该结构包含数据包处理操作的输出。
ppEapError
指向 EAP_ERROR 结构的地址的指针,该结构包含执行此函数调用期间引发的任何错误。 使用错误数据后,必须通过调用 EapPeerFreeErrorMemory 来释放此内存。
EapPeerGetResponsePacket
EapPeerGetResponsePacket 的函数指针。
sessionHandle
EAP_SESSION_HANDLE 值,该值包含 EAPHost 上 EAP 身份验证会话的特定句柄。 此句柄是通过之前对 EapPeerBeginSession 的调用获取的。
2013 年 12 月
指向一个值的指针,该值包含为响应数据包分配的缓冲区的大小(以字节为单位)。 返回时,此参数接收指向 pSendPacket 的实际大小(以字节为单位)的指针。
pSendPacket
指向包含响应数据包的 EapPacket 结构的指针。
ppEapError
指向 EAP_ERROR 结构的地址的指针,该结构包含执行此函数调用期间引发的任何错误。 使用错误数据后,必须通过调用EapPeerFreeErrorMemory 来释放此内存。
EapPeerGetResult
EapPeerGetResult 的函数指针。
sessionHandle
EAP_SESSION_HANDLE 值,该值包含 EAPHost 上 EAP 身份验证会话的特定句柄。 此句柄是通过之前对 EapPeerBeginSession 的调用获取的。
reason
枚举值,该值指定 ppResult 中返回的身份验证结果的原因代码。
ppResult
指向包含身份验证结果的 EapHostPeerMethodResult 结构的指针。
ppEapError
指向 EAP_ERROR 结构的地址的指针,该结构包含执行此函数调用期间引发的任何错误。 使用错误数据后,必须通过传递指向 EapPeerFreeErrorMemory 的指针来释放此内存。
EapPeerGetUIContext
EapPeerGetUIContext 的函数指针。
sessionHandle
EAP_SESSION_HANDLE 值,该值包含 EAPHost 上 EAP 身份验证会话的特定句柄。 此句柄是通过之前对 EapPeerBeginSession 的调用获取的。
pdwSizeOfUIContextData
指向一个值的指针,该值指定 在 ppUIContextData 中返回的用户界面上下文数据字节缓冲区的大小。
ppUIContextData
指向包含字节缓冲区的地址的指针,该缓冲区包含 EAPHost 中请求的用户界面上下文数据。
ppEapError
指向 EAP_ERROR 结构的地址的指针,该结构包含执行此函数调用期间引发的任何错误。 使用错误数据后,必须通过将指向错误数据的指针传递给 EapPeerFreeErrorMemory 来释放此内存。
EapPeerSetUIContext
EapPeerSetUIContext 的函数指针。
sessionHandle
EAP_SESSION_HANDLE 值,该值包含 EAPHost 上 EAP 身份验证会话的特定句柄。 此句柄是通过之前对 EapPeerBeginSession 的调用获取的。
dwSizeOfUIContextData
指向一个值的指针,该值指定 pUIContextData 中提供的 UI 上下文数据字节缓冲区的大小。
pUIContextData
指向包含字节缓冲区的地址的指针,该缓冲区包含要设置在 EAPHost 上的新请求 UI 上下文数据。
pEapOutput
指向 EapPeerMethodOutput 结构的指针,该结构包含数据包处理操作的输出。
ppEapError
指向 EAP_ERROR 结构的地址的指针,该结构包含执行此函数调用期间引发的任何错误。 使用错误数据后,必须通过传递指向 EapPeerFreeErrorMemory 的指针来释放此内存。
EapPeerGetResponseAttributes
EapPeerGetResponseAttributes 的函数指针。
sessionHandle
EAP_SESSION_HANDLE 值,该值包含 EAPHost 上 EAP 身份验证会话的特定句柄。 此句柄是通过之前对 EapPeerBeginSession 的调用获取的。
pAttribs
接收指向 EAP_ATTRIBUTES 结构的指针,该结构包含请求方 EAP 身份验证响应属性数组。
ppEapError
指向 EAP_ERROR 结构的地址的指针,该结构包含执行此函数调用期间引发的任何错误。 使用错误数据后,必须通过调用EapPeerFreeErrorMemory 来释放此内存。
EapPeerSetResponseAttributes
EapPeerSetResponseAttributes 的函数指针。
sessionHandle
EAP_SESSION_HANDLE 值,该值包含 EAPHost 上 EAP 身份验证会话的特定句柄。 此句柄是通过之前对 EapPeerBeginSession 的调用获取的。
pAttribs
指向 EAP_ATTRIBUTES 结构的指针,该结构包含要为 EAPHost 上的请求者设置的新 EAP 身份验证响应属性数组。
pEapOutput
指向 EapPeerMethodOutput 结构的指针,该结构指定请求者作为对更新属性的响应应采取的建议操作。
ppEapError
指向 EAP_ERROR 结构的地址的指针,该结构包含执行此函数调用期间引发的任何错误。 使用错误数据后,必须通过调用 EapPeerFreeErrorMemory 来释放此内存。
EapPeerEndSession
EapPeerEndSession 的函数指针。
sessionHandle
EAP_SESSION_HANDLE 值,该值包含要在 EAPHost 上关闭的 EAP 身份验证会话的特定句柄。 此句柄是通过之前对 EapPeerBeginSession 的调用获取的。
ppEapError
指向 EAP_ERROR 结构的地址的指针,该结构包含执行此函数调用期间引发的任何错误。 使用错误数据后,必须通过调用 EapPeerFreeErrorMemory 来释放此内存。
EapPeerShutdown
EapPeerShutdown 的函数指针。
ppEapError
指向 EAP_ERROR 结构的地址的指针,该结构包含执行此函数调用期间引发的任何错误。 使用错误数据后,必须通过传递指向 EapPeerFreeErrorMemory 的指针来释放此内存。
注解
每个 EAP 方法 DLL 都必须实现以下 API:
- EapPeerInitialize
- EapPeerBeginSession
- EapPeerGetIdentity
- EapPeerSetCredentials
- EapPeerProcessRequestPacket
- EapPeerGetResponsePacket
- EapPeerGetResult
- EapPeerGetUIContext
- EapPeerSetUIContext
- EapPeerGetResponseAttributes
- EapPeerSetResponseAttributes
- EapPeerEndSession
- EapPeerShutdown
EAP 对等方法 API 集中的其他函数由基于对等的 EAPHost 调用,无需相应的请求调用,并用于连接验证或用户界面引发操作。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
标头 | eapmethodpeerapis.h |