FwpsConstructIpHeaderForTransportPacket0 not returning ttl for icmp packet

Hi,
When I call FwpsConstructIpHeaderForTransportPacket0 for icmp packet, I dont get the ttl for the ip header, it returns 0 for .
Below is my code snippet:-
Thanks,
Vipin

if (pPendedPkt->ProtocolId == IPPROTO_ICMP) {
    STADRV_TUNNEL_PKT pkt = {0};
    memset(&pkt, 0, sizeof(pkt));
    status = FwpsConstructIpHeaderForTransportPacket0(
        pClonedNbl,
        pPendedPkt->IpHeaderSize,
        pPendedPkt->AddressFamily,
        (pPendedPkt->AddressFamily == AF_INET)
            ? (PUINT8)&pPendedPkt->RemoteAddrV4
            : (PUINT8)&pPendedPkt->RemoteAddrV6,
        (pPendedPkt->AddressFamily == AF_INET)
            ? (PUINT8)&pPendedPkt->LocalAddrV4
            : (PUINT8)&pPendedPkt->LocalAddrV6,
        pPendedPkt->ProtocolId,
        pPendedPkt->EndpointHandle,
        pPendedPkt->pControlData,
        pPendedPkt->ControlDataLength,
        0,
        NULL,
        pPendedPkt->InterfaceIndex,
        pPendedPkt->SubInterfaceIndex);
    if (!NT_SUCCESS(status)) {
        DBG_TRACE(
            DBG_FLAG_ERROR,
            "%s: FwpsConstructIpHeaderForTransportPacket0 failed. Status "
            "= 0x%08x\n",
            __FUNCTION__,
            status);
    }
}