Quantcast
Channel: Gemalto Sentinel Customer Discussions
Viewing all articles
Browse latest Browse all 1619

Re : Errors with Sentinel HL SuperPro and Windows 2012

$
0
0
Hi Olivier,

I hope you had good holidays, the behavior that you are reporting now, seems more standard to me.

The superpro librarie do have some restriction when authenticating to a 1 user dongle connected to a Windows server.

This is mainly because of the "Remote Desktop Services" role is usually installed by default on Windows 2012 server.
As a result your direct communication with our Sentinel Drivers is disabled, and you are forced to establish a network communication with our Sentinel Protection Server.

This restricts the usage of 1 instance of your application (for 120 seconds) before your network license handle times-out (you lose connection with the dongle), and you can then open another instance of the application.

Note that this is happening as your application is not maintaining / renewing your network license handle, and it dies out.

The RNBOsproReleaseLicense, returns the network license handle to the "Sentinel Protection Server" before it times out, so that you can run another instance of your application.


Here are some workaround:

a) If you could uninstall the "Remote Desktop Services" role, and you should regain access to direct driver communication.
Here are the steps: https://technet.microsoft.com/en-us/library/cc755232(v=ws.11).aspx


b) Else, you could disable the RDS verification in the superpro libraries. To achieve that call the following SuperPro API sequence:

int main()
{
    SP_STATUS   RNBOStatus;
    RB_SPRO_APIPACKET Packet;

    // format packet
    RNBOStatus = RNBOsproFormatPacket(Packet,sizeof (RB_SPRO_APIPACKET));
    printf("FormatPacket status=%d\n", RNBOStatus);

    if (RNBOStatus == SP_SUCCESS)
    {
        // initialize
        RNBOStatus = RNBOsproInitialize(Packet);
        printf("Initialize status=%d\n", RNBOStatus);
        if (RNBOStatus == SP_SUCCESS)
        {
            // no server communication
            RNBOStatus = RNBOsproSetContactServer(Packet, RNBO_STANDALONE);
            printf("ContactServer status=%d\n", RNBOStatus);
            if (RNBOStatus == SP_SUCCESS)
            {
// no TS check
RNBOStatus = RNBOsproCheckTerminalService(Packet, SP_TERM_SERV_CHECK_OFF);
                printf("CheckTerminalService status=%d\n", RNBOStatus);
                if (RNBOStatus == SP_SUCCESS)
                {
// Find key
RNBOStatus = RNBOsproFindFirstUnit(Packet, DevID);
printf("FindFirstUnit status=%d\n", RNBOStatus);
if (RNBOStatus == SP_SUCCESS)
      {
      printf("key detected\n");
                               }
}
            }
        }
    }
}

I hope this helps,
Olivier

Viewing all articles
Browse latest Browse all 1619

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>