Lo normal en estos casos suele ser que entre la versión del so en la que el código funcionaba correctamente y la versión en la que ya no funciona haya habido algún cambio en la Api. En estos casos lo mejor es ir a msd y comprobarlo.
https://msdn.microsoft.com/es-es/lib...=vs.85%29.aspx
Por lo que veo el problema está en el último parámetro que pasas en
Código Delphi
[-]IcmpSendEcho(Handle, InAddr, nil, 0, nil, @rep, 128, 0)
Estás pasando como timeout un 0 y al parecer en las últimas versiones de IcmpSendEcho es necesario pasar como timeout un valor mayor que 0