亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mmanagerdlg.cpp

?? FSD file system driver
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	volume[0] = volume_name[0];
	volume[1] = volume_name[1];
	volume[2] = '\\';
	GetVolumeInformation(volume, NULL, 0, NULL, NULL, &FileSystemFlag, FileSystemName, 63);

	if (strcmp("FFS", FileSystemName) == 0)
	{
		if (Unmount(volume_name) == FALSE)
			return;
	}
	
	if (Mount(DevName, volume_name) == TRUE)
	{
		wsprintf(msg, "Mount Complete. Drive %s", volume_name);
		MessageBox(msg, "Mount Manager");
	}
	else
	{
		wsprintf(msg, "Mount Failed. Drive %s", volume_name);
		MessageBox(msg, "Mount Manager");
	}
}

void CMmanagerDlg::OnBnClickedUnmount()
{
	char msg[256];
	char temp[4];
	char volume_name[] = " :";

	m_DriveCombo.GetLBText(m_DriveCombo.GetCurSel(), temp);
	volume_name[0] = temp[0];

	if(Unmount(volume_name) == TRUE)
	{
		wsprintf(msg, "Unmount Complete. Drive %s", volume_name);
		MessageBox(msg, "Mount Manager");
	}
}


/* Driver Functions */

BOOL CMmanagerDlg::LoadDriver(char *pDeviceName, char FullPath[MAX_PATH])
{
	SC_HANDLE hManager, hService;
	DWORD LastError;
	char strPath[MAX_PATH], temp[MAX_PATH];

	GetCurrentDirectory(MAX_PATH, strPath);
	sprintf(temp, "\\%s.sys", pDeviceName);
	strcpy(strPath + strlen(strPath), temp);


	hManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);

	if (FullPath != NULL)
		strcpy(strPath, FullPath);

	hService = CreateService(hManager, pDeviceName, pDeviceName, SERVICE_ALL_ACCESS, 
		SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL, strPath, 
		NULL, NULL, NULL, NULL, NULL);

	LastError = GetLastError();

	if (LastError = ERROR_SERVICE_EXISTS)
	{
		hService = OpenService(hManager, pDeviceName, SC_MANAGER_ALL_ACCESS);
		if (!ChangeServiceConfig(hService, SERVICE_KERNEL_DRIVER, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE,
			strPath, NULL, NULL, NULL, NULL, NULL, NULL))
		{
			return FALSE;
		}
	}

	if (!hService)
	{
		hService = OpenService(hManager, pDeviceName, SERVICE_ALL_ACCESS);
		if (!hService)
		{
			CloseServiceHandle(hManager);
			return FALSE;
		}
	}

	StartService(hService, 0, NULL);
	CloseServiceHandle(hService);
	CloseServiceHandle(hManager);


	return TRUE;
}

/* Volume Mount & Unmount Functions */
BOOL CMmanagerDlg::Mount(char *pDeviceName, char *drive)
{

	if (!DefineDosDevice(
		DDD_RAW_TARGET_PATH,
		drive,
		pDeviceName))
	{
		return FALSE;
	}

	return TRUE;
}

BOOL CMmanagerDlg::Unmount(char *drive)
{
	char DosDevName[256];
	HANDLE hdevice;
	ULONG dwBytes;
	char msg[256];

	wsprintf(DosDevName, "\\\\.\\%s", drive);

	hdevice = CreateFile(
		DosDevName,
		GENERIC_READ | GENERIC_WRITE,
		FILE_SHARE_READ | FILE_SHARE_WRITE,
		NULL,
		OPEN_EXISTING,
		FILE_ATTRIBUTE_NORMAL,
		NULL);

	if (hdevice == INVALID_HANDLE_VALUE)
	{
		wsprintf(msg, "Unmount: open %s error.\n", drive);
		MessageBox(msg, "Mount Manager");
		return FALSE;
	}

	if (!DeviceIoControl(
		hdevice,
		FSCTL_LOCK_VOLUME,
		NULL,
		0,
		NULL,
		0,
		&dwBytes,
		NULL))
	{
		wsprintf(msg, "Unmount: Drive %s is mounted, LockVolume error.\n", drive);
		MessageBox(msg, "Mount Manager");

		CloseHandle(hdevice);
		return FALSE;
	}

	if (!DeviceIoControl(
		hdevice,
		FSCTL_DISMOUNT_VOLUME,
		NULL,
		0,
		NULL,
		0,
		&dwBytes,
		NULL))
	{
		wsprintf(msg, "Unmount: DisMount %s error.\n", drive);
		MessageBox(msg, "Mount Manager");
		CloseHandle(hdevice);
		return TRUE;
	}

	CloseHandle(hdevice);

	if (!DefineDosDevice(
		DDD_REMOVE_DEFINITION,
		drive,
		NULL))
	{
		wsprintf(msg, "Unmount: Remove %s error.\n", drive);
		MessageBox(msg, "Mount Manager");
		return FALSE;
	}

	return TRUE;
}

void CMmanagerDlg::OnBnClickedAutomountcheck()
{
	if (m_AutoMountCheck.GetCheck())
	{
		if (WinExec("ffs.sys", SW_HIDE) == ERROR_FILE_NOT_FOUND)
		{
			CString TempFilePath;
			char FilePath[MAX_PATH];
			static char BASED_CODE szFilter[] = "ffs.sys (*.sys)|ffs.sys|";
			CFileDialog FileDialog(TRUE, NULL, "ffs.sys", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 
				szFilter, NULL, 0);

			if (FileDialog.DoModal() == IDOK)
			{
				TempFilePath = FileDialog.GetPathName();
				lstrcpy((LPSTR)FilePath, (LPSTR)TempFilePath.operator const char*());

				if (!RegisterAutoMount(DEVICE_NAME, FilePath))
				{
					MessageBox("Driver install failed.", "Mount Manager");
					return;
				}
			}
			else
			{
				m_AutoMountCheck.SetCheck(FALSE);
				MessageBox("Driver open error!", "Mount Manager");
				hDriver = NULL;
				return;
			}
		}
		else
		{
			if (!RegisterAutoMount(DEVICE_NAME, NULL))
			{
				MessageBox("Driver install failed.", "Mount Manager");
				return;
			}
		}

		RegisterDriveLetter();
		m_DiskCombo.EnableWindow(FALSE);
		m_PartitionCombo.EnableWindow(FALSE);
		m_DisklabelCombo.EnableWindow(FALSE);
		m_DriveCombo.EnableWindow(FALSE);

	}
	else
	{
		UnregisterAutoMount(DEVICE_NAME);
		
		UnregisterDriveLetter();
		m_DiskCombo.EnableWindow(TRUE);
		m_PartitionCombo.EnableWindow(TRUE);
		m_DisklabelCombo.EnableWindow(TRUE);
		m_DriveCombo.EnableWindow(TRUE);
	}
}

BOOL CMmanagerDlg::RegisterAutoMount(char *pDeviceName, char FullPath[MAX_PATH])
{
	SC_HANDLE hManager, hService;
	DWORD LastError;
	char strPath[MAX_PATH], temp[MAX_PATH];

	GetCurrentDirectory(MAX_PATH, strPath);
	sprintf(temp, "\\%s.sys", pDeviceName);
	strcpy(strPath + strlen(strPath), temp);


	hManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);

	if (!hManager)
		return FALSE;


	if (FullPath != NULL)
		strcpy(strPath, FullPath);

	hService = CreateService(hManager, pDeviceName, pDeviceName, SERVICE_ALL_ACCESS, 
		SERVICE_KERNEL_DRIVER, SERVICE_SYSTEM_START, SERVICE_ERROR_NORMAL, strPath, 
		NULL, NULL, NULL, NULL, NULL);

	LastError = GetLastError();

	if (LastError = ERROR_SERVICE_EXISTS)
	{
		hService = OpenService(hManager, pDeviceName, SC_MANAGER_ALL_ACCESS);
		if (!ChangeServiceConfig(hService, SERVICE_KERNEL_DRIVER, SERVICE_SYSTEM_START, SERVICE_NO_CHANGE,
			strPath, NULL, NULL, NULL, NULL, NULL, NULL))
		{
			return FALSE;
		}
	}

	CloseServiceHandle(hService);
	CloseServiceHandle(hManager);


	return TRUE;
}

BOOL CMmanagerDlg::UnregisterAutoMount(char *pDeviceName)
{
	SC_HANDLE hManager, hService;

	hManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
	hService = OpenService(hManager, pDeviceName, SC_MANAGER_ALL_ACCESS);
	if (!ChangeServiceConfig(hService, SERVICE_NO_CHANGE, SERVICE_DEMAND_START, SERVICE_NO_CHANGE,
		NULL, NULL, NULL, NULL, NULL, NULL, NULL))
	{
		return FALSE;
	}

	CloseServiceHandle(hService);
	CloseServiceHandle(hManager);

	return TRUE;
}

BOOL CMmanagerDlg::RegisterDriveLetter()
{
	HKEY Key;
	int nDisk = 0;
	int nPart = 0;
	int nDisklabel = 0;
	int nDrive = 0;
	char DevName[MAX_PATH];
	char temp[4];
	char volume_name[] = " :";

	m_DiskCombo.GetLBText(m_DiskCombo.GetCurSel(), temp);
	nDisk = atoi(&temp[0]);

	m_PartitionCombo.GetLBText(m_PartitionCombo.GetCurSel(), temp);
	nPart = atoi(&temp[0]);

	m_DisklabelCombo.GetLBText(m_DisklabelCombo.GetCurSel(), temp);
	nDisklabel = atoi(&temp[0]);

	m_DriveCombo.GetLBText(m_DriveCombo.GetCurSel(), temp);
	volume_name[0] = temp[0];
	nDrive = m_DriveCombo.GetCurSel();

	sprintf(DevName,"\\Device\\Harddisk%d\\Partition%d", nDisk, nPart);

	/* 磊悼角青 汲瀝 歷厘 (汲瀝). */
	AfxGetApp()->WriteProfileInt("Settings", "AutoMount", 1);

	/* 叼膠農, 頗萍記, 靛扼撈宏 瀝焊 歷厘. */
	AfxGetApp()->WriteProfileInt("Settings", "Disk", nDisk);
	AfxGetApp()->WriteProfileInt("Settings", "Partition", nPart);
	AfxGetApp()->WriteProfileInt("Settings", "Disklabel", nDisklabel);
	AfxGetApp()->WriteProfileInt("Settings", "Drive", nDrive);

	/* 矯累 橇肺弊伐 殿廢 */
	RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\DOS Devices", 
		0, KEY_ALL_ACCESS, &Key);
	RegSetValueEx(Key, volume_name, 0, REG_SZ, (BYTE *)DevName, strlen(DevName));

	/* 輯厚膠狼 Parameters俊 BSD 頗萍記 鍋齲 歷厘 */
	RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Services\\ffs\\Parameters",
		0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &Key, NULL);

	//RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Services\\ffs\\Parameters", 
	//	0, KEY_ALL_ACCESS, &Key);
	RegSetValueEx(Key, "PartitionNumber", 0, REG_DWORD, (unsigned char *)&nDisklabel, sizeof(nDisklabel));

	RegCloseKey(Key);

	return TRUE;
}

BOOL CMmanagerDlg::UnregisterDriveLetter()
{
	HKEY Key;
	char temp[4];
	char volume_name[] = " :";

	m_DriveCombo.GetLBText(m_DriveCombo.GetCurSel(), temp);
	volume_name[0] = temp[0];

	/* 磊悼角青 汲瀝 歷厘 (秦力). */
	AfxGetApp()->WriteProfileInt("Settings", "AutoMount", 0);

	/* 矯累 橇肺弊伐 昏力 */
	RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\DOS Devices", 
		0, KEY_ALL_ACCESS, &Key);
	RegDeleteValue(Key, volume_name);

	/* 輯厚膠狼 Parameters俊 BSD 頗萍記 鍋齲 昏力 */
	RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Services\\ffs\\Parameters", 
		0, KEY_ALL_ACCESS, &Key);
	RegDeleteValue(Key, "PartitionNumber");

	RegCloseKey(Key);

	return TRUE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人三级在线视频| 中文字幕中文字幕在线一区 | 欧美一级片免费看| 亚洲自拍另类综合| 99久久99久久免费精品蜜臀| 欧美成人精品1314www| 视频一区中文字幕| 欧美日韩国产三级| 午夜精品福利在线| 欧美一区二区精品| 日本大胆欧美人术艺术动态| 欧美色综合天天久久综合精品| 国产精品久久精品日日| 成+人+亚洲+综合天堂| 日本一区二区电影| 色哟哟精品一区| 亚洲aⅴ怡春院| 精品久久久久久久久久久久久久久 | 日韩有码一区二区三区| 久久99精品久久久久久| 中文字幕中文字幕中文字幕亚洲无线| 成人性生交大片免费| 日本aⅴ亚洲精品中文乱码| 蜜臀av性久久久久av蜜臀妖精| 一本大道久久a久久精品综合| 日韩在线观看一区二区| 国产激情91久久精品导航| 日韩精彩视频在线观看| 天天综合色天天综合| 亚洲综合色在线| 婷婷丁香激情综合| 国产美女精品一区二区三区| 久久成人久久爱| 青青草伊人久久| 国产成人免费9x9x人网站视频| 国产一区二区三区免费观看| 韩国v欧美v亚洲v日本v| 色哟哟在线观看一区二区三区| 欧美三级日韩在线| 精品国产不卡一区二区三区| 国产精品卡一卡二| 美女在线一区二区| jlzzjlzz亚洲日本少妇| 欧美日韩免费一区二区三区| 久久蜜桃av一区二区天堂| 亚洲一线二线三线视频| 国产精品一区二区久久不卡| a4yy欧美一区二区三区| 日韩午夜在线影院| 亚洲欧美另类图片小说| 久久99精品国产91久久来源| 一本久久精品一区二区| 2021久久国产精品不只是精品| 亚洲私人黄色宅男| 国产麻豆成人精品| 7777精品伊人久久久大香线蕉超级流畅 | 精品国产伦一区二区三区观看方式 | 成人午夜视频福利| 在线成人小视频| 有坂深雪av一区二区精品| 国产一区二区久久| 欧美一级免费大片| 亚洲精品va在线观看| 国产剧情一区在线| 日韩色视频在线观看| 亚洲成av人片在线| 在线视频欧美区| 国产精品成人免费精品自在线观看 | 久久精品理论片| 欧美人牲a欧美精品| 一区二区三区鲁丝不卡| 成人久久久精品乱码一区二区三区| 欧美一级二级在线观看| 亚洲高清免费在线| 91视频国产资源| 国产拍欧美日韩视频二区| 久久精品国产亚洲a| 欧洲一区二区三区免费视频| 综合av第一页| 色香蕉成人二区免费| 中文字幕在线不卡一区二区三区 | 国产精品国产三级国产aⅴ入口| 日韩成人午夜精品| 日韩三级.com| 免费高清不卡av| 欧美成人bangbros| 韩国女主播一区| 久久精品一区二区三区不卡牛牛| 国产综合色产在线精品| 亚洲精品一线二线三线无人区| 免费黄网站欧美| 久久日一线二线三线suv| 久久99精品国产91久久来源| 久久精品水蜜桃av综合天堂| 国产盗摄视频一区二区三区| 中文字幕乱码亚洲精品一区| www.99精品| 亚洲国产精品嫩草影院| 欧美一区二区三区四区视频| 久久99国产精品尤物| 欧美激情一区二区| 色婷婷精品大在线视频| 天天射综合影视| 精品久久久久久久久久久久久久久久久| 激情综合网天天干| 日韩伦理av电影| 欧美一卡在线观看| 风流少妇一区二区| 亚洲1区2区3区视频| 精品国产91亚洲一区二区三区婷婷| 国产精品综合久久| 一区二区三区免费网站| 日韩欧美一区二区在线视频| 高清久久久久久| 天天综合网 天天综合色| 久久久91精品国产一区二区三区| 欧美伊人久久久久久久久影院 | 国产精品成人午夜| 91麻豆精品国产自产在线 | 国产精品视频观看| 91麻豆精品国产91久久久使用方法| 国产美女娇喘av呻吟久久| 亚洲黄网站在线观看| 久久综合成人精品亚洲另类欧美| 91免费视频网| 国产精品1区2区3区在线观看| 一区二区三区四区国产精品| 日韩三级高清在线| 欧美午夜片在线看| zzijzzij亚洲日本少妇熟睡| 免费观看在线色综合| 伊人夜夜躁av伊人久久| 欧美极品aⅴ影院| 制服丝袜一区二区三区| 成人h版在线观看| 国产伦精品一区二区三区在线观看| 亚洲亚洲人成综合网络| 国产精品高潮久久久久无| 日韩欧美在线123| 4438成人网| 色老汉av一区二区三区| 大白屁股一区二区视频| 全部av―极品视觉盛宴亚洲| 亚洲国产aⅴ成人精品无吗| 亚洲少妇30p| 国产精品麻豆99久久久久久| 精品裸体舞一区二区三区| 欧美顶级少妇做爰| 欧美私模裸体表演在线观看| 99久久精品国产精品久久| 国产成人鲁色资源国产91色综| 精品一区二区在线观看| 日韩va欧美va亚洲va久久| 亚洲电影一区二区三区| 亚洲线精品一区二区三区| 亚洲男人天堂av网| 亚洲视频在线一区观看| 中文字幕一区二区三区精华液 | 在线观看免费亚洲| av激情亚洲男人天堂| 国产999精品久久久久久绿帽| 国产麻豆精品95视频| 国产成a人亚洲精| 成人激情校园春色| 色综合咪咪久久| 91久久线看在观草草青青| 在线观看视频一区二区| 欧美色图免费看| 欧美丰满嫩嫩电影| 日韩一区二区免费在线观看| 欧美大胆一级视频| 久久久91精品国产一区二区三区| 中国色在线观看另类| 亚洲特黄一级片| 日本视频在线一区| 国产传媒一区在线| 色婷婷久久久综合中文字幕| 欧美精品久久一区| 26uuu精品一区二区在线观看| 国产视频在线观看一区二区三区| 最新日韩在线视频| 午夜精品久久久| 国产乱码精品一区二区三区av | 久久视频一区二区| 亚洲精品少妇30p| 日韩va欧美va亚洲va久久| 国产精品原创巨作av| 91视频.com| 欧美一级在线视频| 亚洲三级小视频| 美女视频黄a大片欧美| 国产.欧美.日韩| 欧美一区二区在线视频| 国产日韩一级二级三级| 亚洲一卡二卡三卡四卡| 国产一区二区三区免费播放| 色94色欧美sute亚洲13| 欧美精品一区二区三区蜜臀| 亚洲女爱视频在线| 国产在线视频一区二区|