다음을 통해 공유


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

이 구조체의 멤버가 가리키는 API 의 구현자에 대한 공급업체 정보를 포함하는 EAP_TYPE 구조체에 대한 포인터입니다.

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

사용자 ID 및 사용자 데이터 Blob이 성공적으로 반환되지 않고 메서드가 사용자 인터페이스 대화 상자를 통해 사용자로부터 정보를 수집하려고 하면 TRUE 를 반환합니다.

pdwSizeOfUserDataOut

ppUserDataOut 버퍼의 크기(바이트)를 지정합니다.

ppUserDataOut

반환된 사용자 데이터에 대한 포인터에 대한 포인터입니다. 데이터는 입력 pUserDataEapPeerBeginSession에 전달됩니다.

ppwszIdentity

반환된 사용자 ID에 대한 포인터입니다. 포인터는 ID 응답 패킷에 포함되고 서버로 반환됩니다.

ppEapError

이 함수 호출을 실행하는 동안 발생한 오류를 포함하는 EAP_ERROR 구조체에 대한 포인터입니다. 오류 데이터를 사용한 후 EapPeerFreeErrorMemory를 호출하여 이 메모리를 해제해야 합니다.

EapPeerBeginSession

EapPeerBeginSession에 대한 함수 포인터입니다.

dwFlags

EAP 인증 세션 동작을 설명하는 EAP 플래그의 조합입니다.

pAttributeArray

인증할 엔터티의 EAP 특성을 지정하는 EAP_ATTRIBUTES 배열 구조체에 대한 포인터입니다.

hTokenImpersonateUser

이 세션에서 사용할 사용자 가장 토큰에 대한 핸들을 지정합니다.

dwSizeOfConnectionData

pConnectionData에 제공된 연결 데이터 버퍼의 크기(바이트)를 지정합니다.

pConnectionData

불투명 구성 데이터 BLOB을 포함하는 바이트 버퍼에 대한 포인터입니다.

dwSizeOfUserData

pUserData에 제공된 사용자 데이터 버퍼의 크기(바이트)를 지정합니다.

pUserData

불투명 사용자 데이터 BLOB을 포함하는 바이트 버퍼에 대한 포인터입니다.

dwMaxSendPacketSize

세션 중에 전송된 EAP 패킷의 최대 크기(바이트)를 지정합니다. 메서드가 최대 크기보다 큰 패킷을 보내야 하는 경우 메서드는 조각화 및 어셈블리를 수용해야 합니다.

pSessionHandle

EAPHost의 새 EAP 인증 세션에 대한 고유 ID를 포함하는 EAP_SESSION_HANDLE 구조체에 대한 포인터

ppEapError

이 함수 호출을 실행하는 동안 EAPHost에서 발생한 오류를 포함하는 EAP_ERROR 구조체의 주소에 대한 포인터입니다. 오류 데이터를 사용한 후 EapPeerFreeErrorMemory를 호출하여 이 메모리를 해제해야 합니다.

EapPeerSetCredentials

EapPeerSetCredentials에 대한 함수 포인터입니다.

sessionHandle

EAPHost 서버에서 이 EAP 인증 세션에 대한 고유 핸들을 포함하는 EAP_SESSION_HANDLE 구조체에 대한 포인터입니다. 이 핸들은 EapPeerBeginSession에 대한 이전 호출에서 pSessionHandle 매개 변수에 반환됩니다.

pwszIdentity

자격 증명을 설정할 사용자 ID를 지정하는 포인터입니다. 이 사용자 ID 문자열은 EapPeerGetIdentity 함수를 호출하여 가져옵니다.

pwszPassword

사용자 ID에 대한 명확한 텍스트 암호를 포함하는 포인터입니다.

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에 대한 이전 호출에서 가져옵니다.

pcbSendPacket

응답 패킷에 할당된 버퍼의 크기(바이트)를 포함하는 값에 대한 포인터입니다. 반환 시 이 매개 변수는 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 인증 응답 특성 배열을 포함하는 EAP_ATTRIBUTES 구조체에 대한 포인터를 받습니다.

ppEapError

이 함수 호출을 실행하는 동안 발생한 오류가 포함된 EAP_ERROR 구조체의 주소에 대한 포인터입니다. 오류 데이터를 사용한 후EapPeerFreeErrorMemory를 호출하여 이 메모리를 해제해야 합니다.

EapPeerSetResponseAttributes

EapPeerSetResponseAttributes에 대한 함수 포인터입니다.

sessionHandle

EAP_SESSION_HANDLE EAPHost의 EAP 인증 세션에 대한 특정 핸들을 포함하는 값입니다. 이 핸들은 EapPeerBeginSession에 대한 이전 호출에서 가져옵니다.

pAttribs

EAPHost 의 지원 대상에 대해 설정할 새 EAP 인증 응답 특성의 배열을 포함하는 EAP_ATTRIBUTES 구조체에 대한 포인터입니다.

pEapOutput

지원자가 업데이트된 특성에 대한 응답으로 수행해야 하는 제안된 작업을 지정하는 EapPeerMethodOutput 구조체에 대한 포인터입니다.

ppEapError

이 함수 호출을 실행하는 동안 발생한 오류가 포함된 EAP_ERROR 구조체의 주소에 대한 포인터입니다. 오류 데이터를 사용한 후 EapPeerFreeErrorMemory를 호출하여 이 메모리를 해제해야 합니다.

EapPeerEndSession

EapPeerEndSession에 대한 함수 포인터입니다.

sessionHandle

EAPHost에서 닫을 EAP 인증 세션에 대한 특정 핸들을 포함하는 값을 EAP_SESSION_HANDLE. 이 핸들은 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