// Delete garbage inf files void SuDeleteGarbageInfs() { void *wow; wow = MsDisableWow64FileSystemRedirection(); SuDeleteGarbageInfsInner(); MsRestoreWow64FileSystemRedirection(wow); }
// Try to install PCD driver HINSTANCE InstallPcdDriver() { HINSTANCE ret; void *p = MsDisableWow64FileSystemRedirection(); ret = InstallPcdDriverInternal(); MsRestoreWow64FileSystemRedirection(p); return ret; }
// Install the driver bool SuInstallDriver(bool force) { bool ret; void *wow; wow = MsDisableWow64FileSystemRedirection(); ret = SuInstallDriverInner(force); MsRestoreWow64FileSystemRedirection(wow); return ret; }
// Get Ethernet adapter list LIST *GetEthAdapterList() { void *p; LIST *o; p = MsDisableWow64FileSystemRedirection(); o = GetEthAdapterListInternal(); MsRestoreWow64FileSystemRedirection(p); return o; }
// Open adapter ETH *OpenEth(char *name, bool local, bool tapmode, char *tapaddr) { ETH *ret; void *p; p = MsDisableWow64FileSystemRedirection(); ret = OpenEthInternal(name, local, tapmode, tapaddr); MsRestoreWow64FileSystemRedirection(p); return ret; }
// Initialize and start the driver bool IPsecWin7InitDriver() { bool ret; void *lock = MsInitGlobalLock("IPsecWin7InitDriver", false); void *p = MsDisableWow64FileSystemRedirection(); MsGlobalLock(lock); { ret = IPsecWin7InitDriverInner(); } MsGlobalUnlock(lock); MsFreeGlobalLock(lock); MsRestoreWow64FileSystemRedirection(p); Debug("IPsecWin7InitDriver: %u\n", ret); return ret; }
// Delete garbage inf files void SuDeleteGarbageInfs() { void *wow; bool load_hive = false; Debug("SuDeleteGarbageInfs()\n"); wow = MsDisableWow64FileSystemRedirection(); load_hive = SuLoadDriversHive(); Debug("SuLoadDriversHive: %u\n", load_hive); SuDeleteGarbageInfsInner(); /* if (load_hive) { Debug("SuUnloadDriversHive: %u\n", SuUnloadDriversHive()); }*/ MsRestoreWow64FileSystemRedirection(wow); }
// Get VLAN tag pass-through availability of the device void GetVLanSupportStatus(RPC_ENUM_ETH_VLAN_ITEM *e) { BUF *b; char filename[MAX_SIZE]; void *wow; // Validate arguments if (e == NULL) { return; } wow = MsDisableWow64FileSystemRedirection(); // Read the device driver file CombinePath(filename, sizeof(filename), MsGetSystem32Dir(), "drivers"); CombinePath(filename, sizeof(filename), filename, e->DriverName); b = ReadDump(filename); if (b != NULL) { char intel1[] = "VlanFiltering"; char intel2[] = "V\0l\0a\0n\0F\0i\0l\0t\0e\0r\0i\0n\0g"; char intel3[] = "MonitorMode"; char intel4[] = "M\0o\0n\0i\0t\0o\0r\0M\0o\0d\0e"; char intel5[] = "TaggingMode"; char intel6[] = "T\0a\0g\0g\0i\0n\0g\0M\0o\0d\0e"; char broadcom1[] = "PreserveVlanInfoInRxPacket"; char broadcom2[] = "P\0r\0e\0s\0e\0r\0v\0e\0V\0l\0a\0n\0I\0n\0f\0o\0I\0n\0R\0x\0P\0a\0c\0k\0e\0t"; char marvell1[] = "SkDisableVlanStrip"; char marvell2[] = "S\0k\0D\0i\0s\0a\0b\0l\0e\0V\0l\0a\0n\0S\0t\0r\0i\0p"; char *driver_type = ""; if (SearchBin(b->Buf, 0, b->Size, intel1, sizeof(intel1)) != INFINITE || SearchBin(b->Buf, 0, b->Size, intel2, sizeof(intel2)) != INFINITE || SearchBin(b->Buf, 0, b->Size, intel3, sizeof(intel3)) != INFINITE || SearchBin(b->Buf, 0, b->Size, intel4, sizeof(intel4)) != INFINITE || SearchBin(b->Buf, 0, b->Size, intel5, sizeof(intel5)) != INFINITE || SearchBin(b->Buf, 0, b->Size, intel6, sizeof(intel6)) != INFINITE) { driver_type = "Intel"; } else if (SearchBin(b->Buf, 0, b->Size, broadcom1, sizeof(broadcom1)) != INFINITE || SearchBin(b->Buf, 0, b->Size, broadcom2, sizeof(broadcom2)) != INFINITE) { driver_type = "Broadcom"; } else if (SearchBin(b->Buf, 0, b->Size, marvell1, sizeof(marvell1)) != INFINITE || SearchBin(b->Buf, 0, b->Size, marvell2, sizeof(marvell2)) != INFINITE) { driver_type = "Marvell"; } if (IsEmptyStr(driver_type) == false) { StrCpy(e->DriverType, sizeof(e->DriverType), driver_type); e->Support = true; } FreeBuf(b); } MsRestoreWow64FileSystemRedirection(wow); }