| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- // SoftEther VPN Source Code - Developer Edition Master Branch
- // SeLow: SoftEther Lightweight Network Protocol
- // SeLowUser.h
- // Header for SeLowUser.c
- #ifndef SELOWUSER_H
- #define SELOWUSER_H
- #include "CedarType.h"
- #include "Mayaqua/Mayaqua.h"
- #include <SeLow/SeLowCommon.h>
- //// Macro
- #define SL_USER_INSTALL_LOCK_TIMEOUT 60000 // Lock acquisition timeout
- #define SL_USER_AUTO_PUSH_TIMER 60000 // Timer to start the installation automatically
- //// Type
- // SU
- struct SU
- {
- void *hFile; // File handle
- SL_ADAPTER_INFO_LIST AdapterInfoList; // Adapter list cache
- };
- // Adapter
- struct SU_ADAPTER
- {
- char AdapterId[MAX_PATH]; // Adapter ID
- char DeviceName[MAX_PATH]; // Device name
- void *hFile; // File handle
- void *hEvent; // Event handle
- bool Halt;
- UINT CurrentPacketCount;
- UCHAR GetBuffer[SL_EXCHANGE_BUFFER_SIZE]; // Read buffer
- UCHAR PutBuffer[SL_EXCHANGE_BUFFER_SIZE]; // Write buffer
- };
- // Adapter list items
- struct SU_ADAPTER_LIST
- {
- SL_ADAPTER_INFO Info; // Adapter information
- char Guid[128]; // GUID
- char Name[MAX_SIZE]; // Name
- char SortKey[MAX_SIZE]; // Sort key
- };
- //// Function prototype
- SU *SuInit();
- SU *SuInitEx(UINT wait_for_bind_complete_tick);
- void SuFree(SU *u);
- TOKEN_LIST *SuEnumAdapters(SU *u);
- SU_ADAPTER *SuOpenAdapter(SU *u, char *adapter_id);
- void SuCloseAdapter(SU_ADAPTER *a);
- void SuCloseAdapterHandleInner(SU_ADAPTER *a);
- bool SuGetPacketsFromDriver(SU_ADAPTER *a);
- bool SuGetNextPacket(SU_ADAPTER *a, void **buf, UINT *size);
- bool SuPutPacketsToDriver(SU_ADAPTER *a);
- bool SuPutPacket(SU_ADAPTER *a, void *buf, UINT size);
- SU_ADAPTER_LIST *SuAdapterInfoToAdapterList(SL_ADAPTER_INFO *info);
- LIST *SuGetAdapterList(SU *u);
- void SuFreeAdapterList(LIST *o);
- int SuCmpAdapterList(void *p1, void *p2);
- bool SuInstallDriver(bool force);
- bool SuInstallDriverInner(bool force);
- bool SuIsSupportedOs(bool on_install);
- bool SuCopySysFile(wchar_t *src, wchar_t *dst);
- void SuDeleteGarbageInfs();
- void SuDeleteGarbageInfsInner();
- bool SuLoadDriversHive();
- bool SuUnloadDriversHive();
- #endif // SELOWUSER_H
|