RasEapMakeMessage callback function

The RasEapMakeMessage function is the framework within which incoming and outgoing EAP packets, time outs, and other events such as authentication completion are processed for an EAP. RAS calls the RasEapMakeMessage function every time there is an incoming or outgoing packet.


  _In_  VOID           *pWorkBuf,
  _In_  PPP_EAP_PACKET *pReceivePacket,
  _Out_ PPP_EAP_PACKET *pSendPacket,
  _In_  DWORD          cbSendPacket,
  _Out_ PPP_EAP_OUTPUT *pEapOutput,
  _In_  PPP_EAP_INPUT  *pEapInput


  • pWorkBuf [in]
    Pointer to the work buffer. The authentication protocol provides RAS with a pointer to this buffer via the RasEapBegin function.

  • pReceivePacket [in]
    Pointer to a PPP_EAP_PACKET structure that contains a received packet. A pReceivePacket value of NULL indicates either that RAS is initiating the dialog with the authentication protocol, or that a time out has occurred and the authentication protocol should resend the last packet. The authentication protocol must determine, based on context, which of these two cases is true.

  • pSendPacket [out]
    Pointer to a PPP_EAP_PACKET structure. The authentication protocol can use this structure to specify a packet to send.

  • cbSendPacket [in]
    Specifies the size, in bytes, of the buffer pointed to by pSendPacket.

  • pEapOutput [out]
    Pointer to a PPP_EAP_OUTPUT structure.

  • pEapInput [in]
    Pointer to a PPP_EAP_INPUT structure. This parameter may be NULL.

Return value

If the function succeeds, the return value is NO_ERROR.

If the function fails, the return value should be an appropriate error code from Winerror.h, Raserror.h, or Mprerror.h. Any error except for ERROR_PPP_INVALID_PACKET, terminates the authentication session. For more information on the ERROR_PPP_INVALID_PACKET return code, see EAP Implementation Details.


The RasEapMakeMessage function is not part of the RRAS API; it is implemented in the EAP DLL. When the connection manager calls the RasEapGetInfo function, it receives a PPP_EAP_INFO structure for the authentication protocol. This structure contains a pointer to the RasEapMakeMessage function.

RAS allocates the buffers pointed to by pReceivePacket, pSendPacket, pEapOutput, and pEapInput. The authentication protocol does not allocate any of these buffers.


Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]



See also

Extensible Authentication Protocol Reference

EAP Functions