Dear User,
Thank you for raising the concern.
The call for hasp_login() is required for hasp_read(). This is because the login handle generated after successful login call is used in hasp_read().
However, please be informed that the license key memory is not dedicated to any specific feature and can be accessed through login over any feature in the key.
Hence, you may like to use an alternative perpetual feature (for example, feature '0') to perform hasp_login() and use the handle generated to in hasp_read() at the event when the main time-based feature has expired.
Please confirm if any further detail is required.
Best Regards,
Parth Kaushik