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

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

?? savedisk.cpp

?? 保存軟盤內容到一個指定的文件內.vc++6.0
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// loaddll.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "resource.h"
#include <stdio.h>
#include "SaveDisk.h"
#include <mmsystem.h>
#pragma comment(lib,"winmm")
#include <time.h>
#include <COMMCTRL.H>
#pragma comment(lib,"comctl32.lib")
#include <setupapi.h>
#pragma comment(lib,"setupapi.lib")
#include <devioctl.h>
#include <DBT.H>
//#include <ntddstor.h>
#include <ntddscsi.h>
#include "ntddstor.h"
#include <SHLOBJ.H>

HWND AfxMainHwnd;
HINSTANCE MainInstance;
HANDLE SaveThread;
BOOL CancelSave;
HINSTANCE AFXInstance;
LRESULT CALLBACK	WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK	About(HWND, UINT, WPARAM, LPARAM);

#define OOPS() Oops(__FILE__, __LINE__)  //調用OOPS宏,可以以消息框形式顯示調用處的行號,所在的文件名


//輸出調試信息到文件里
BOOL PrintToFile(PUCHAR Buffer,//打印信息
				 ULONG OLen,   //打印信息長度
				 BOOL IsChar){ //打印信息以字符形式顯示還是以數值形式顯示
	char tembuf[1000]="";
	CHAR tem[10]="";
	HANDLE DFileHandle;
	DWORD nNumberOfBytesToWrite,i;
	DFileHandle = CreateFile("DbgInfor.txt",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_WRITE|FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,NULL);
	if(DFileHandle==INVALID_HANDLE_VALUE)
		return FALSE;
	nNumberOfBytesToWrite=OLen;
	ZeroMemory(tembuf,sizeof(tembuf));
	if(!IsChar){
		for(i=0;i<OLen;i++){
			sprintf(tem,"%02X",Buffer[i]);
			strcat(tembuf,tem);			
		}
		strcat(tembuf,"\r\n");
		nNumberOfBytesToWrite=OLen*2+1;
	}
	else{		
		strcpy(tembuf,(PCHAR)Buffer);
		strcat(tembuf,"\r\n\0");
		nNumberOfBytesToWrite=strlen((PCHAR)Buffer);
	}
	SetFilePointer(DFileHandle,0,NULL,FILE_END);
	WriteFile(DFileHandle,tembuf,nNumberOfBytesToWrite,&nNumberOfBytesToWrite,NULL);
	CloseHandle(DFileHandle);
	return FALSE;
}

//顯示格式化字符串
VOID  DebugPrint (LPCTSTR lpFormat,...){
 	CHAR TextBufferTmp[500]="";    
    va_list arglist;
    va_start(arglist, lpFormat);
	vsprintf(TextBufferTmp,lpFormat,arglist);
	va_end(arglist);
	OutputDebugString(TextBufferTmp);
	//SendDlgItemMessage(AfxAfxMainHwnd,IDC_show,LB_ADDSTRING,0,(LPARAM)(LPCTSTR)TextBufferTmp);
	//PrintToFile(TextBufferTmp,strlen(TextBufferTmp),TRUE);//打印到指定DbgInfor.txt文件里
	return;
}
/*顯示上次運行錯誤*/
void ShowLastError(PCHAR FuncName) 
{
	DWORD LastResult=0; // pointer to variable to receive error codes	
	char szSysMsg[100],tem[1000]="";
	LastResult=GetLastError();
	FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,0,LastResult,
		MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),szSysMsg,sizeof(szSysMsg),0);	
	sprintf(tem,"%s:Last Err(%x)%s",FuncName,LastResult,szSysMsg);
	DebugPrint(tem);
}

/*將十六進制字符轉換成十進制碼,數字轉換成字符用ltoa()函數*/
ULONG mStrToBcd(PCHAR str) 
{ 
	char mlen,i=0;
	UCHAR iChar=0,Char[9]="";
	UINT mBCD=0,de=1;
	mlen=strlen(str);
	memcpy(Char,str,mlen);
	for(i=mlen-1;i>=0;i--)
	{	iChar=Char[i];
	if ( iChar >= '0' && iChar <= '9' )
		mBCD = mBCD+(iChar -'0')*de;
	else if ( iChar >= 'A' && iChar <= 'F' ) 
		mBCD =mBCD+ (iChar - 'A' + 0x0a)*de;
	else if ( iChar >= 'a' && iChar <= 'f' )
		mBCD =mBCD+ (iChar - 'a' + 0x0a)*de;
	else return(0);
	de*=16;
	}
	return(mBCD);
}

double GetCurrentTimerVal(){//獲取硬件計數器已運行時間,ms為單位,比GetTickCount更準確
	LARGE_INTEGER litmp; 
	double dfFreq,QPart1; 
	QueryPerformanceFrequency(&litmp);  //頻率以HZ為單位
	dfFreq = (double)litmp.QuadPart;    //獲得計數器的時鐘頻率
	QueryPerformanceCounter(&litmp);
	QPart1 = (double)litmp.QuadPart;        //獲得初始值
	return(QPart1 *1000/ dfFreq  );  //獲得對應的時間值=振蕩次數/振蕩頻率,單位為秒
}

//延時函數,以ms為單位
VOID DelayTime1(double TimerVal){//定時值為ms,其定時誤差一般不超過0.5微秒,精度與CPU等機器配置有關
	LARGE_INTEGER litmp; 
	LONGLONG QPart1,QPart2;
	double dfMinus, dfFreq, dfTim,NewTimerVal; 
	NewTimerVal = TimerVal*0.001;       //將ms定時值轉成s值
	QueryPerformanceFrequency(&litmp);  //頻率以HZ為單位
	dfFreq = (double)litmp.QuadPart;    //獲得計數器的時鐘頻率
	QueryPerformanceCounter(&litmp);
	QPart1 = litmp.QuadPart;            //獲得初始值
	do{
		QueryPerformanceCounter(&litmp);
		QPart2 = litmp.QuadPart;        //獲得中止值
		dfMinus = (double)(QPart2-QPart1);
		dfTim = dfMinus / dfFreq;       //獲得對應的時間值=振蕩次數/振蕩頻率,單位為秒		
	}while(dfTim<NewTimerVal);
	return;
}

//獲取磁盤屬性
BOOL GetDisksProperty(HANDLE hDevice, PSTORAGE_DEVICE_DESCRIPTOR pDevDesc)
{
	STORAGE_PROPERTY_QUERY	Query;	
	DWORD dwOutBytes;				
	BOOL bResult;					

	Query.PropertyId = StorageDeviceProperty;
	Query.QueryType = PropertyStandardQuery;

	bResult = ::DeviceIoControl(hDevice,			
			IOCTL_STORAGE_QUERY_PROPERTY,			
			&Query, sizeof(STORAGE_PROPERTY_QUERY),	
			pDevDesc, pDevDesc->Size,				
			&dwOutBytes,							
			(LPOVERLAPPED)NULL);
	return bResult;
}
PVOID trim(PVOID str)  //去除字符串中的前后空格
{
	PCHAR x;
	char y[1000]="",z[1000]="";
	x=(char *)str;
	if (lstrlen(x)==0) return(NULL) ;
	while(*x==' '|| *x==0x09 )  //trimleft
		x++;
	if (*x==NULL)
		return(NULL);
	else
		strcpy(y,x);
	x=y+lstrlen(y);
	x--;
	while(*x==' '|| *x==0x09) x--;
	memcpy(z,y,x-y+1);
    z[lstrlen(z)]='\0';
	return(&z[0]);
}
//讀磁盤扇區
int ReadSector	(HANDLE DevHandle,int nsects, int lsect,PVOID buffer)
{
	ULONG	i, j;
	CHAR   tem[512]="";	
	
	i = lsect*512;
	j = SetFilePointer( DevHandle, i, NULL, FILE_BEGIN );  // 指定讀扇區起始號
	if ( i != j ) {//指定讀扇區起始號出錯
		return( 3 );
	}
	i = nsects*512;
	if ( ! ReadFile( DevHandle, buffer, i, &i, NULL ) ) {  // 讀一個扇區512字節
		return( 4 );
	}
	if ( i != (ULONG)(nsects*512) ) {
		return( 5 );
	}
	return(0);
}
void SearchUDisk()//搜索指定U盤
{
	HANDLE mDevice;
	ULONG i;
	CHAR DiskID[512],DiskDesc[512],Buf[1024],logicname[100]="";
	PCHAR str;
	PSTORAGE_DEVICE_DESCRIPTOR pDevDesc=NULL;
	
	pDevDesc = (PSTORAGE_DEVICE_DESCRIPTOR)Buf;
	i = 0;
	for(i=1;i<10;i++)
	{
		//打開指定的盤符,獲取盤符的設備號
		sprintf(&logicname[0],"\\\\.\\PhysicalDrive%d",i);
		mDevice = CreateFile( &logicname[0], GENERIC_READ | GENERIC_WRITE,
			FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
			NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );	
		if(mDevice==INVALID_HANDLE_VALUE){
			continue;
		}
		//獲取U盤屬性			
		pDevDesc->Size = sizeof(STORAGE_DEVICE_DESCRIPTOR) + 512 - 1;
		if(GetDisksProperty(mDevice, pDevDesc))
		{
			if(pDevDesc->BusType != BusTypeUsb)//尋找USB接口磁盤
			{					
				CloseHandle(mDevice);
				continue;
			}		
		}				
		{
			CHAR SectorData[512]="";
			if(ReadSector(mDevice,1,0,SectorData))//讀DBR扇區錯誤.
			{
				CloseHandle(mDevice);
				continue;
			}
			if( (SectorData[509]!='W') || (SectorData[510]!='C') || (SectorData[511]!='H') )
			{
				CloseHandle(mDevice);
				continue;			
			}
		}
		{//保存物理盤的ID字符串
			ULONG k;
			PCHAR p= (char*)pDevDesc;
			str = (pDevDesc->VendorIdOffset ? &p[pDevDesc->VendorIdOffset]:"(NULL)");				
			strcpy(&DiskID[0],"VEN_");
			strcat(DiskID,(PCHAR)trim(str));
			strcat(DiskID,"&PROD_");
			str=(pDevDesc->ProductIdOffset ? &p[pDevDesc->ProductIdOffset]:"(NULL)");
			strcat(DiskID,(PCHAR)trim(str));
			for(k=0;k<strlen(DiskID);k++)//按照instanceid里的格式以_代替。
			{
				if(DiskID[k]==' ')
					DiskID[k] = '_';
			}
		}
		sprintf(&DiskDesc[0],"可移動盤%d %s\0",i,DiskID);
		SendDlgItemMessage(AfxMainHwnd,IDC_UList,CB_ADDSTRING,0,(LPARAM)(LPCTSTR)DiskDesc);
		CloseHandle(mDevice);
	}
}
//從當前條目中獲取磁盤的序號
int GetDiskNumFromSel()
{
	ULONG ItemSel=0;
	CHAR DiskID[512]="";
	PCHAR p;
	SendDlgItemMessage(AfxMainHwnd,IDC_UList,CB_GETLBTEXT,ItemSel,(LPARAM)(LPCTSTR)&DiskID[0]);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品aⅴ在线视频| 日日噜噜夜夜狠狠视频欧美人| 国产精品电影院| 亚洲色图欧美激情| 亚洲第一精品在线| 国产一区二区电影| 91视频在线看| 91精品欧美久久久久久动漫| 欧美不卡一区二区| 亚洲另类中文字| 蜜桃av一区二区在线观看| 国产成人av影院| 欧美午夜寂寞影院| 2020国产精品| 一区二区三区资源| 激情成人综合网| 日本韩国视频一区二区| 精品国免费一区二区三区| 中文字幕一区二区三中文字幕| 亚洲成人av电影| 春色校园综合激情亚洲| 欧美美女一区二区在线观看| 26uuu精品一区二区三区四区在线| 日韩毛片高清在线播放| 免费一级欧美片在线观看| 不卡在线视频中文字幕| 91精品国产综合久久久久久久久久| 国产亚洲人成网站| 亚洲chinese男男1069| 粉嫩13p一区二区三区| 3atv在线一区二区三区| 亚洲图片另类小说| 九色porny丨国产精品| 在线精品视频免费观看| 国产婷婷精品av在线| 午夜欧美2019年伦理| 99在线热播精品免费| 欧美tk—视频vk| 午夜精品一区二区三区电影天堂| 岛国精品在线观看| 欧美mv和日韩mv的网站| 亚洲成人激情社区| 99久久99久久免费精品蜜臀| 精品对白一区国产伦| 日本亚洲免费观看| 欧美视频一区二区三区| 亚洲欧美日韩国产手机在线| 在线观看视频一区二区欧美日韩| 26uuu亚洲| 免费欧美日韩国产三级电影| 91久久精品一区二区三| 亚洲国产精品激情在线观看| 六月丁香婷婷色狠狠久久| 欧美丝袜丝nylons| 亚洲精品中文字幕在线观看| 高清国产午夜精品久久久久久| 欧美一级国产精品| 首页国产欧美日韩丝袜| 色美美综合视频| 18成人在线观看| 国产91清纯白嫩初高中在线观看| 日韩欧美亚洲另类制服综合在线| 亚洲高清免费一级二级三级| 色狠狠桃花综合| 国产精品国产自产拍高清av| 国产99久久久久| 国产日韩欧美a| 久久草av在线| 精品国产一区二区三区不卡 | 国产69精品久久久久毛片| 日韩一级片在线播放| 爽爽淫人综合网网站| 欧美婷婷六月丁香综合色| 亚洲男人的天堂在线aⅴ视频| 国产精品一级二级三级| 国产午夜精品一区二区| 国产大陆亚洲精品国产| 国产色婷婷亚洲99精品小说| 国产成人无遮挡在线视频| 久久久精品免费网站| 国产成人免费视频一区| 日本一区二区成人在线| 成人精品一区二区三区四区| 中文字幕精品在线不卡| 国产成人无遮挡在线视频| 国产女人aaa级久久久级 | 国产精品美女视频| 北岛玲一区二区三区四区| 国产精品对白交换视频| 在线观看国产91| 午夜免费久久看| 欧美成人一区二区| 国产精品系列在线观看| 亚洲婷婷综合久久一本伊一区| 欧美主播一区二区三区| 视频在线观看一区二区三区| 欧美精品一区二区在线播放 | 亚洲欧美在线观看| 91久久精品一区二区三区| 五月天丁香久久| 精品久久久久久久人人人人传媒| 国产久卡久卡久卡久卡视频精品| 国产精品视频麻豆| 色av成人天堂桃色av| 天天操天天色综合| 久久综合狠狠综合久久综合88| 粉嫩欧美一区二区三区高清影视| 日韩毛片高清在线播放| 欧美日韩视频一区二区| 久久精品国产精品亚洲红杏| 久久久久99精品一区| 91久久国产综合久久| 日韩高清电影一区| 日本一区二区三区国色天香| 色成年激情久久综合| 久久99国产精品免费| 国产精品麻豆一区二区| 欧美日韩日本视频| 国产一区欧美日韩| 艳妇臀荡乳欲伦亚洲一区| 日韩欧美一级精品久久| av在线免费不卡| 亚洲成精国产精品女| 国产午夜三级一区二区三| 91成人在线精品| 激情小说欧美图片| 亚洲精品视频观看| 精品国产亚洲一区二区三区在线观看| 国产98色在线|日韩| 五月激情综合网| 中文字幕亚洲欧美在线不卡| 欧美一区二区视频在线观看| 成人动漫一区二区在线| 日韩国产精品久久| ㊣最新国产の精品bt伙计久久| 宅男噜噜噜66一区二区66| 成人va在线观看| 免费在线观看一区二区三区| 亚洲精品视频在线观看网站| 久久蜜臀精品av| 91精品啪在线观看国产60岁| 91免费观看视频| 黑人巨大精品欧美一区| 亚洲午夜国产一区99re久久| 国产欧美日韩视频在线观看| 欧美精品一二三| 91农村精品一区二区在线| 国产精品自产自拍| 日本va欧美va精品| 一区二区三区在线视频观看58 | 激情成人综合网| 亚洲五月六月丁香激情| 国产精品久久国产精麻豆99网站 | 黄色资源网久久资源365| 午夜欧美大尺度福利影院在线看| 国产精品你懂的在线| 久久久久久久一区| 日韩午夜在线观看| 欧美日韩综合在线免费观看| 99久免费精品视频在线观看| 国产一区二区伦理片| 麻豆中文一区二区| 亚洲成年人影院| 一区二区三区国产| 最新久久zyz资源站| 欧美—级在线免费片| 久久人人爽人人爽| 欧美变态tickling挠脚心| 91精品国产福利在线观看| 欧美系列日韩一区| 色94色欧美sute亚洲线路一久| 99国产精品久久久久久久久久| 国产高清不卡一区| 国产乱国产乱300精品| 国产一区二区三区四| 久久精品国产成人一区二区三区| 午夜精品成人在线| 亚洲18女电影在线观看| 亚洲成人中文在线| 亚洲成av人影院| 午夜av电影一区| 日本一道高清亚洲日美韩| 免费观看日韩av| 美女久久久精品| 久久精品99国产精品| 蜜桃精品在线观看| 韩国精品一区二区| 丁香婷婷综合激情五月色| 国产白丝精品91爽爽久久| 国产超碰在线一区| youjizz久久| 一本久久a久久免费精品不卡| 91福利视频网站| 欧美色倩网站大全免费| 91精品国产综合久久久久久久 | 色婷婷综合久色| 日本二三区不卡| 欧美人xxxx| 日韩欧美aaaaaa| 久久久777精品电影网影网|