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

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

?? hdisksn.h

?? 這個是集合幾種關于硬盤的序列號的獲取方式的DLL
?? H
?? 第 1 頁 / 共 2 頁
字號:
/////////////////////////////////////////////////////////////////////////////
// HDiskSN.h : Defines the function header for the DLL application.
// Made By ShanChengKun.PentiumWorkingRoom
// CopyRight(C) 1996-2008 . Email: Sck007@163.com . Made in 2004.05.27
/////////////////////////////////////////////////////////////////////////////

#ifndef HDISK_SN_H
#define HDISK_SN_H

#ifdef HDISKSN_EXPORTS
#define HDISKSN_API __declspec(dllexport)
#else
#define HDISKSN_API __declspec(dllimport)
#endif

/////////////////////////////////////////////////////////////////////////////

// 為支持BSTR和sprintf而作的預定義
#include <stdio.h>
typedef unsigned short *BSTR;
#define WINOLEAUTAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
WINOLEAUTAPI_(BSTR) SysAllocString(const BSTR);

#ifdef __cplusplus
extern "C" {
#endif

// 動態(tài)鏈接庫WinIo.DLL的接口聲明
typedef BOOL  (_stdcall *PInitializeWinIo)();
typedef VOID  (_stdcall *PShutdownWinIo)();
typedef BOOL  (_stdcall *PGetPortVal)(WORD wPortAddr, PDWORD pdwPortVal, BYTE bSize);
typedef BOOL  (_stdcall *PSetPortVal)(WORD wPortAddr, DWORD dwPortVal, BYTE bSize);

#ifdef __cplusplus
}
#endif

// 各種小工具函數(shù)定義及相關宏定義
void	function_des(BYTE, const BYTE *, const BYTE *, BYTE *);
BOOL	SckDesD88(BYTE style, const BYTE *src, const BYTE *key, BYTE *dec);
BOOL	SckDesBin(BYTE bStyle, BYTE *byData, DWORD dwLength, const BYTE *byKeys);
BOOL	ZnnDesBin(BYTE bStyle, BYTE *byData, DWORD dwLength, const BYTE *byKeys);

int		lstrCpy(char *chDes, const char *chSrc, int nMax = 0);
BOOL	IsWindowsNT(void);							// 是否是NT系統(tǒng)
BOOL	IsHaveDiskPrivilege(VOID);					// 權限是否足夠
void	HandleSckPath(char *pStr, int nCut, int nLen = 0);
BOOL	IsFileExist(const char chName[], DWORD *pLength = NULL);
BOOL	MakeSurePath(const char chPath[]);			// 確認路徑存在
BOOL	MakeFilePath(const char chFile[]);			// 確認文件所在路徑
BOOL	SaveBinaryFile(const char *chFileName, const BYTE *pBuffData, DWORD dwBuffSize);
BOOL	LoadBinaryFile(const char *chFileName, BYTE *&pBuffData, DWORD &dwBuffSize);
int		MsgBox(HWND, UINT, const char *chfmt, ...);	// 測試用信息對話框
DWORD	GenerateCRC32(const BYTE *, long nLength);	// 提取CRC32檢驗碼
void	CryptXOR(BYTE bySrc[], long nLen, BYTE byPatt = 0xA5);
void	CryptXOR(BYTE byDes[], const BYTE bySrc[], LONG nLen, BYTE byPatt = 0xA5);
INT		GetRecyclerDirectory(CHAR chPath[]);		// 獲取系統(tǒng)的回收站全路徑

#define BCD2DEC(b) ((BYTE)((((b) & 0xF0) >> 4) * 10 + ((b) & 0x0F)))
static const BYTE DATA_KEYS[] = {0xF6, 0xC6, 0xCE, 0x95, 0x95, 0x92, 0x9F, 0x8C};
static const BYTE BETA_KEYS[] = {0xEC, 0xE9, 0xCA, 0xD3, 0xC0, 0xFC, 0xCA, 0xD0};

HDISKSN_API LONG DiskSectorIO(LONG bLogPhy, LONG nWhichDisk, DWORD dwStartSector,
		DWORD dwSumSectors, LONG lpBuffer, LONG bOperation);
HDISKSN_API BOOL VerifySector(HMODULE hMoudle, LONG pdwVerify);
HDISKSN_API BSTR GetHDiskSN(void);					// 獲取硬盤序列號
BOOL	GetCurrDate(BYTE *byDate);					// 獲取CMOS內(nèi)年月日記錄
LONG	GetDiffDate(const BYTE *byNew, const BYTE *byOld);// 獲取兩個時間的天數(shù)差
BOOL	IsDiffTime(const BYTE *byNew, const BYTE *byOld);// 判斷兩個時間是否相同

extern	HMODULE g_hHDiskSnDLL;						// HDiskSN動態(tài)庫句柄
class	CTcsyRegistList;							// 鏈表注冊類預定義
extern	CTcsyRegistList TcsyList;					// 扇區(qū)注冊管理鏈表
extern	DWORD SELF_CRC32;							// HDiskSN.DLL自校驗碼

/////////////////////////////////////////////////////////////////////////////

// IOCTL控制碼,#include <winioctl.h>
#define	DFP_GET_VERSION			0x00074080
#define	DFP_SEND_DRIVE_COMMAND	0x0007c084
#define DFP_RECEIVE_DRIVE_DATA	0x0007c088
#define DIOC_DISKIO_MINE_SCK	0x0022048f
//#define DFP_RECEIVE_DRIVE_DATA	CTL_CODE(IOCTL_DISK_BASE, 0x0022, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
//#define DFP_SEND_DRIVE_COMMAND	CTL_CODE(IOCTL_DISK_BASE, 0x0021, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
//#define DIOC_DISKIO_MINE_SCK		CTL_CODE(FILE_DEVICE_UNKNOWN, 0x123, METHOD_NEITHER, FILE_ANY_ACCESS)

#define IDENTIFY_BUFFER_SIZE	512	// Miscellaneous
#define DISK_SECTOR_SIZE		512	// Bytes Per Sector
#define SCK_SN_INFOR			1	// 正在讀取硬盤序列號
#define SCK_RW_HDISK			2	// 正在讀寫硬盤物理扇

// bDriverError values,由IOCTL返回的錯誤信息
#define	SMART_NO_ERROR			0	// No error
#define	SMART_IDE_ERROR			1	// Error from IDE controller
#define	SMART_INVALID_FLAG		2	// Invalid command flag
#define	SMART_INVALID_COMMAND	3	// Invalid command byte
#define	SMART_INVALID_BUFFER	4	// Bad buffer (null, invalid addr..)
#define	SMART_INVALID_DRIVE		5	// Drive number not valid
#define	SMART_INVALID_IOCTL		6	// Invalid IOCTL
#define	SMART_ERROR_NO_MEM		7	// Could not lock user's buffer
#define	SMART_INVALID_REGISTER	8	// Some IDE Register not valid
#define	SMART_NOT_SUPPORTED		9	// Invalid cmd flag set
#define	SMART_NO_IDE_DEVICE		10	// Cmd issued to device not present
// 11-255 reserved					// although drive number is valid

// Bits returned in the fCapabilities member of GETVERSIONOUTPARAMS
#define	CAP_IDE_ID_FUNCTION				1	// ATA ID command supported
#define	CAP_IDE_ATAPI_ID				2	// ATAPI ID command supported
#define	CAP_IDE_EXECUTE_SMART_FUNCTION	4	// SMART commannds supported

// Valid values for the bCommandReg member of IDEREGS.
#define	IDE_ATAPI_ID				0xA1	// Returns ID sector for ATAPI.
#define	IDE_ID_FUNCTION				0xEC	// Returns ID sector for ATA.
#define	IDE_EXECUTE_SMART_FUNCTION	0xB0	// Performs SMART cmd.
// Requires valid bFeaturesReg,				// bCylLowReg, and bCylHighReg

// Vendor specific commands:
#define	SMART_ENABLE_SMART_OPERATIONS			0xD8
#define	SMART_DISABLE_SMART_OPERATIONS			0xD9
#define	SMART_RETURN_SMART_STATUS				0xDA

// Cylinder register values required when issuing SMART command
#define	SMART_CYL_LOW	0x4F
#define	SMART_CYL_HI	0xC2

#define  FILE_DEVICE_SCSI			0x0000001b
#define  IOCTL_SCSI_MINIPORT_IDENTIFY  ((FILE_DEVICE_SCSI << 16) + 0x0501)
#define  IOCTL_SCSI_MINIPORT		0x0004D008	// see NTDDSCSI.H for definition

// 以下是DeviceIoControl可以進行的幾種中斷調(diào)用
#define VWIN32_DIOC_DOS_IOCTL		1		// MS-DOS Int21h 44xxh functions call
#define VWIN32_DIOC_DOS_INT25		2		// MS-DOS Int25h functions call
#define VWIN32_DIOC_DOS_INT26		3		// MS-DOS Int26h functions call
#define VWIN32_DIOC_DOS_INT13		4		// MS-DOS Int13h functions call
#define VWIN32_DIOC_DOS_DRIVEINFO	6		// MS-DOS Int21h 730xh functions call

//-------------------------------------------------------------------------//

// Required to ensure correct SMART IOCTL structure setup
#pragma pack(1) // 定義結構體對齊方式,以保證IDSECTOR結構正確:512字節(jié)

// 獲取版本輸出信息
typedef struct _GETVERSIONOUTPARAMS
{
	BYTE	bVersion;		// Binary driver version.
	BYTE	bRevision;		// Binary driver revision.
	BYTE	bReserved;		// Not used.
	BYTE	bIDEDeviceMap;	// Bit map of IDE devices.
	DWORD	fCapabilities;	// Bit mask of driver capabilities.
	DWORD	dwReserved[4];	// For future use.
}
GETVERSIONOUTPARAMS, *PGETVERSIONOUTPARAMS, *LPGETVERSIONOUTPARAMS;

//-------------------------------------------------------------------------//

// IDE命令寄存器
typedef struct _IDEREGS
{
	BYTE	bFeaturesReg;		// Used for specifying SMART "commands".
	BYTE	bSectorCountReg;	// IDE sector count register
	BYTE	bSectorNumberReg;	// IDE sector number register
	BYTE	bCylLowReg;			// IDE low order cylinder value
	BYTE	bCylHighReg;		// IDE high order cylinder value
	BYTE	bDriveHeadReg;		// IDE drive/head register
	BYTE	bCommandReg;		// Actual IDE command.
	BYTE	bReserved;			// reserved for future use.  Must be zero.
}
IDEREGS, *PIDEREGS, *LPIDEREGS;

// IDE設備IOCTL輸入數(shù)據(jù)結構:in
typedef struct _SENDCMDINPARAMS
{
	DWORD	cBufferSize;		// Buffer size in bytes
	IDEREGS	irDriveRegs;		// Structure with drive register values.
	BYTE	bDriveNumber;		// Physical drive number to send 
								// command to (0,1,2,3).
	BYTE	bReserved[3];		// Reserved for future expansion.
	DWORD	dwReserved[4];		// For future use.
//	BYTE 	bBuffer[1];			// Input buffer.
}
SENDCMDINPARAMS, *PSENDCMDINPARAMS, *LPSENDCMDINPARAMS;

//-------------------------------------------------------------------------//

// 從驅(qū)動程序返回的狀態(tài):status
typedef struct _DRIVERSTATUS
{
	BYTE	bDriverError;		// Error code from driver, 
								// or 0 if no error.
	BYTE	bIDEStatus;			// Contents of IDE Error register.
								// Only valid when bDriverError
								// is SMART_IDE_ERROR.
	BYTE	bReserved[2];		// Reserved for future expansion.
	DWORD	dwReserved[2];		// Reserved for future expansion.
}
DRIVERSTATUS, *PDRIVERSTATUS, *LPDRIVERSTATUS;

// IDE設備IOCTL輸出數(shù)據(jù)結構:out
typedef struct _SENDCMDOUTPARAMS
{
	DWORD 			cBufferSize;		// Size of bBuffer in bytes
	DRIVERSTATUS	DriverStatus;		// Driver status structure.
	BYTE			bBuffer[512];		// Buffer of arbitrary length in which to store
										//the data read from the drive.
}
SENDCMDOUTPARAMS, *PSENDCMDOUTPARAMS, *LPSENDCMDOUTPARAMS;

//-------------------------------------------------------------------------//

#define HD_SN_LEN		20				// 序列號數(shù)組大小
#define HD_FR_LEN		 8				// 固件版本數(shù)組大小
#define HD_MN_LEN		40				// 內(nèi)部型號數(shù)組大小

// IDE的ID命令返回的信息數(shù)據(jù),共512字節(jié)
typedef struct _IDSECTOR
{
	USHORT wGenConfig;					// 01. 基本信息字
	USHORT wNumCyls;					// 02. 柱面數(shù)
	USHORT wReserved;					// 03. 保留
	USHORT wNumHeads;					// 04. 磁頭數(shù)
	USHORT wBytesPerTrack;				// 05. 字節(jié)數(shù)/每磁道
	USHORT wBytesPerSector;				// 06. 字節(jié)數(shù)/每扇區(qū)
	USHORT wSectorsPerTrack;			// 07. 每磁道扇區(qū)數(shù)
	USHORT wVendorUnique[3];			// 08. 廠家設定值
	CHAR   sSerialNumber[HD_SN_LEN];	// 09. 序列號
	USHORT wBufferType;					// 10. 緩沖類型
	USHORT wBufferSize;					// 11. 緩沖大小
	USHORT wECCSize;					// 12. ECC校驗大小
	CHAR   sFirmwareRev[HD_FR_LEN];		// 13. 固件版本
	CHAR   sModelNumber[HD_MN_LEN];		// 14. 內(nèi)部型號
	USHORT wMoreVendorUnique;			// 15. 廠家設定值
	USHORT wDoubleWordIO;				// 16. 保留

	struct
	{
		USHORT  reserved1:8;		// 保留
		USHORT  DMA:1;				// 1=支持DMA
		USHORT  LBA:1;				// 1=支持LBA
		USHORT  DisIORDY:1;			// 1=可不使用IORDY
		USHORT  IORDY:1;			// 1=支持IORDY
		USHORT  SoftReset:1;		// 1=需要ATA軟啟動
		USHORT  Overlap:1;			// 1=支持重疊操作
		USHORT  Queue:1;			// 1=支持命令隊列
		USHORT  InlDMA:1;			// 1=支持交叉存取DMA
	}
	wCapabilities;						// 17. 一般能力

	USHORT wReserved1;					// 18. 保留
	USHORT wPIOTiming;					// 19. PIO時序

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美婷婷六月丁香综合色| 中文字幕在线观看一区二区| 日本一区二区三区电影| 香蕉成人伊视频在线观看| 国产精品性做久久久久久| 欧美丰满少妇xxxxx高潮对白| 国产三级一区二区| 老司机免费视频一区二区三区| 一本久久a久久免费精品不卡| 久久综合九色综合97_久久久| 亚洲午夜日本在线观看| 成人午夜av在线| 日韩女优电影在线观看| 偷拍一区二区三区| 欧美在线不卡视频| 亚洲激情自拍视频| 91久久精品一区二区三| 国产精品久久影院| 成人美女视频在线看| 久久人人97超碰com| 久久97超碰色| 精品国产乱码久久久久久1区2区 | 色综合一区二区| 久久久精品免费观看| 麻豆精品在线播放| 日韩欧美激情一区| 六月丁香综合在线视频| 欧美mv日韩mv| 国产一区二区三区四| 久久奇米777| 成人做爰69片免费看网站| 国产三级精品三级在线专区| 国产·精品毛片| 中文字幕中文字幕中文字幕亚洲无线| 国产激情偷乱视频一区二区三区| 久久人人97超碰com| 国产成人在线网站| 国产精品色呦呦| 一本久久精品一区二区| 亚洲一区二区三区四区五区黄| 欧美日韩视频专区在线播放| 日本欧美久久久久免费播放网| 日韩欧美成人一区| 国产成人精品一区二| 国产精品久久夜| 欧洲一区二区三区免费视频| 亚洲成人av一区二区| 欧美大片日本大片免费观看| 国产在线一区观看| 国产精品第一页第二页第三页| 色乱码一区二区三区88| 午夜精品久久久久| 久久久久久免费| 94-欧美-setu| 日韩成人免费电影| 欧美经典一区二区| 欧美这里有精品| 久久精品国产一区二区三 | 国产精一品亚洲二区在线视频| 国产亚洲va综合人人澡精品| 91麻豆高清视频| 婷婷综合五月天| 欧美国产一区在线| 在线播放日韩导航| 高清国产午夜精品久久久久久| 一区二区三区在线高清| 精品国产乱码久久久久久浪潮| 97aⅴ精品视频一二三区| 日韩电影在线免费| 国产精品久久一级| 日韩一区国产二区欧美三区| 成a人片国产精品| 理论片日本一区| 亚洲精品视频在线观看免费| 亚洲精品一区二区三区在线观看| 91免费精品国自产拍在线不卡 | 亚洲国产视频网站| 欧美激情艳妇裸体舞| 欧美高清视频www夜色资源网| 高清不卡在线观看| 麻豆精品在线看| 亚洲国产精品久久人人爱| 国产欧美精品一区二区色综合| 欧美人伦禁忌dvd放荡欲情| 不卡一区二区三区四区| 麻豆91免费看| 肉肉av福利一精品导航| 亚洲欧美一区二区三区孕妇| 国产女人aaa级久久久级 | 欧美在线免费播放| 成人美女视频在线观看18| 美美哒免费高清在线观看视频一区二区 | 欧美日韩国产系列| youjizz国产精品| 国产福利一区二区三区| 久久国产欧美日韩精品| 亚洲高清免费观看| 亚洲国产一区二区三区| 亚洲精品水蜜桃| 亚洲欧美欧美一区二区三区| 国产精品高潮呻吟| 国产三级一区二区三区| 久久精品人人做人人爽人人| 精品免费国产二区三区| 日韩精品影音先锋| 日韩欧美一区二区久久婷婷| 日韩一区二区在线观看视频| 欧美日韩国产片| 欧美日韩综合不卡| 欧美在线制服丝袜| 欧美精三区欧美精三区| 欧美精品乱码久久久久久| 欧美日韩高清在线播放| 91麻豆精品国产| 91麻豆精品国产91久久久久久| 91精品国产麻豆国产自产在线| 777a∨成人精品桃花网| 91麻豆精品国产无毒不卡在线观看| 在线观看91精品国产麻豆| 91精品国产乱| 337p日本欧洲亚洲大胆色噜噜| 久久久精品影视| 国产精品黄色在线观看| 亚洲精品国产a| 天涯成人国产亚洲精品一区av| 日本不卡高清视频| 韩国av一区二区| 成人一区在线观看| 色婷婷av一区二区三区之一色屋| 欧美无砖砖区免费| 精品国产一二三区| 国产欧美日本一区二区三区| 亚洲人123区| 欧美aaa在线| 成人精品免费网站| 欧美人与性动xxxx| 久久奇米777| 一区二区日韩av| 久国产精品韩国三级视频| 成人美女视频在线看| 欧美特级限制片免费在线观看| 欧美高清视频www夜色资源网| 久久综合色8888| 一区二区三区中文字幕精品精品 | 1区2区3区国产精品| 婷婷亚洲久悠悠色悠在线播放| 国产又粗又猛又爽又黄91精品| 波多野结衣中文一区| 欧美日韩视频在线第一区| 26uuu亚洲综合色| 一区二区三区免费在线观看| 青青草国产成人99久久| 99久久精品99国产精品| 欧美一区二区三区在线观看 | 亚洲国产成人高清精品| 国产精品资源在线| 欧美日韩国产天堂| 中文字幕亚洲区| 蜜臀久久99精品久久久久久9| 99re这里都是精品| 精品免费日韩av| 亚洲福利视频一区二区| 懂色中文一区二区在线播放| 欧美日韩不卡视频| 18成人在线观看| 九九国产精品视频| 欧美日本韩国一区二区三区视频| 日本一区二区久久| 激情五月婷婷综合| 337p亚洲精品色噜噜噜| 亚洲欧美日韩人成在线播放| 国产一区二区三区在线看麻豆| 欧美另类一区二区三区| 国产精品进线69影院| 国产精品自拍av| 精品国产人成亚洲区| 午夜激情久久久| 在线免费观看不卡av| 国产精品久久福利| 国产成人av一区二区| 久久综合九色综合欧美98 | 91精品国产色综合久久不卡电影| 一区二区三区四区不卡在线 | 一区二区三区四区蜜桃| eeuss鲁一区二区三区| 久久久午夜精品理论片中文字幕| 日本在线不卡一区| 91精品国产综合久久婷婷香蕉| 一级特黄大欧美久久久| 色偷偷一区二区三区| 中文字幕一区二区三区不卡在线 | 成人永久免费视频| 欧美国产成人精品| 成人网男人的天堂| 中文字幕一区二区三中文字幕| 成人三级伦理片| 国产精品伦一区二区三级视频| 成人夜色视频网站在线观看| 国产网站一区二区| 成人综合日日夜夜|