
struct TReenter
{
    DWORD Count;
    DWORD Missing;
};
#ifdef __cplusplus
typedef TReenter* PTReenter;
#endif

#ifdef __cplusplus
class TFastIrq
{
public:
  PTReenter PReenter;
  HANDLE    hFastIrq;
  HANDLE    hThread;
  DWORD     ThreadID;
  TReenter  Reenter;
  DWORD     IrqCount;
  PTVLcardD PVLcardD;
  PTApcProc pFastApcProc;

    TFastIrq();

    void InstallFastQueueUserApc(USHORT Base, USHORT No, USHORT Flags);
    void DeInstallFastQueueUserApc();

};
typedef TFastIrq* PTFastIrq;
#else

#endif

#ifdef __cplusplus
struct TFastQueueUserApc
{
  PTApcProc pFastApcProc;
  PTReenter PReenter;
  PTFastIrq pFastIrq;
  USHORT    Base;
  USHORT    No;
  USHORT    Flags;
};
#endif

/*
struct TFastQueueUserApc
{
  PTApcProc pFastApcProc;
  PTReenter PReenter;
  PTFastIrq pFastIrq;
  WORD      Flags;
  WORD      Base;
  WORD      Mode;
  WORD      No;
  // Mode = 1/0 Normal/EPP
};

   (CALL/NO CALL)/(Normal/EPP/No)



*/
