123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- #pragma once
- #include "Definitions.h"
- #include "DiosFileHandle.h"
- #include "DiosLock.h"
- #include "ResDataObject.h"
- #ifndef CDI_EXPORTS
- #ifdef _WIN64
- #ifdef _DEBUG
- #pragma comment(lib, "CDIX64D.lib")
- #else
- #pragma comment(lib, "CDIX64.lib")
- #endif
- #else
- #ifdef _DEBUG
- #pragma comment(lib, "CDID.lib")
- #else
- #pragma comment(lib, "CDI.lib")
- #endif
- #endif
- #endif
- #ifdef CDI_EXPORTS
- #define CDI_API __declspec(dllexport)
- #define CDI_C_API extern "C" __declspec(dllexport)
- #else
- #define CDI_API __declspec(dllimport)
- #define CDI_C_API extern "C" __declspec(dllimport)
- #endif
- class CDI_API CDI :public DiosLock{
- HANDLE m_Mutex;
- UINT64 m_MasterProcId;
- HANDLE m_ExitHandle;
- void *m_prootClient;
- PVOID m_DCSMap;
- INT LoadAllDCS();//used by system
- INT UnLoadAllDCS();//used by system
- bool InitBusUnit();
- void Ex_ResponseClientReq(ResDataObject &Req, RET_STATUS status, const char *pInfo = NULL);
- void Ex_ResponseRemoteClientReq(ResDataObject &Req, RET_STATUS status, const char *pInfo = NULL);
- void Ex_ResponseDeviceRes(ResDataObject &Res);
- void Ex_ResponseEbus(ResDataObject &packet);
- void Ex_RequestRemoteClientClose(ResDataObject &Res);
- CMD_ECHO DispatchToLocal(ResDataObject &packet);
- public:
- CDI(void);
- virtual ~CDI(void);
- bool WaitExit(DWORD timeout = 0, bool Exit = false);
- bool InitAs(DIOS_PROC_TYPE Master, UINT64 MasterProcId);//3 = DiosClient,2 = Channel,1 = Master,0 = Slave
- INT CommandInput(const char *pszCmd);
- //simple command
- bool ReceivedFromLocalBus(ResDataObject &packet);
- bool ReceivedFromEthBus(ResDataObject &packet);
- bool ReceivedFromBus(ResDataObject &packet);
- bool ReceivedFromDevice(ResDataObject &packet);
- bool ReceivedDeviceNotify(ResDataObject &packet);
- bool ReceivedFromClient(ResDataObject &packet);
- //Client Stuff
- bool RegistClient(UINT64 Address);
- bool UnRegistClient(UINT64 Address);
- //Handle Stuff
- bool Registhandle(HANDLE Handle);
- bool UnRegistHandle(UINT64 CrcCode);
- bool RegistThread(PVOID pDiosThread);
- void UnRegistThread(DWORD Tid);
- bool GetThreadsLogger(DWORD Tid, PVOID &pLogger);
- void UnLoadAll();
- bool AddDPC(PVOID pMDPC, PVOID pDPC, ResDataObject &DrvConfig);
- bool DelDPC(PVOID pMDPC, PVOID pDPC);
- };
- CDI_C_API CDI *GetCommandDispathIF();
- CDI_C_API bool InitClientEnv();
- CDI_C_API bool DestroyClientEnv();
|