IOCTL_FARC_GET_NETSTATE

Purpose: query the net status of the controller on the ARCNET adapter

Parameter:
IN:   -
OUT:  struct ARCNET_NETSTATE  (declared in FARC.H)

Comment:
This function can be called to detect the current status of the network. If the network is running, all items should be set to 1.

Possible errors (see also Error codes):
E_FARC_INVALID_HANDLE
E_FARC_BUFFER_TOO_SMALL

Example:
Note, that the following example is only a fragment. It is recommended, that the driver is opened in asynchronous mode and a handle to the driver is available.

OVERLAPPED overlapped;
 DWORD read, err;
 BOOL ret;
ARCNET_NETSTATE netstate;

 overlapped.Offset = 0;
 overlapped.OffsetHigh = 0;
 overlapped.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
 
...
 ret = DeviceIoControl(drvhandle,
     IOCTL_FARC_GET_NETSTATE,
     NULL, 0,
     &netstate, sizeof(netstate),
     &read, &overlapped);
if (!ret)
{
   err = GetLastError();
   if (err == E_FARC_PENDING)
   {
      ret = GetOverlappedResult(drvhandle, &overlapped, &read, TRUE);
      if (!ret)
      {
         err = GetLastError();
         // do errorhandling here
      }
   }
   else
   {
      // other error occured, perhaps wrong handle
   }
}
printf("netstate.z_token_seen = %u",netstate.z_token_seen)
...

Programmers Guide
Contents