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

实现者定义的结构版本。

注意 此字段的值不是由 Microsoft 定义的。
 

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

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:

这些 API 对应于请求方发出的调用,并充当请求方 API 调用与 EAP 方法 DLL 上公开的公共 API 之间的代理。 因此,当请求方调用基于对等的 EAPHost 以建立身份验证会话或在会话期间执行操作时,EAPHost 会使用所提供的参数数据调用 EAP 方法 DLL 上实现的相应函数。 EAP 方法函数通过指向其各自入口点的指针进行管理。

EAP 对等方法 API 集中的其他函数由基于对等的 EAPHost 调用,无需相应的请求调用,并用于连接验证或用户界面引发操作。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
标头 eapmethodpeerapis.h

另请参阅

EAPHost 对等方法结构

EapPeerGetInfo