百科狗-知识改变命运!
--

有一首歌 歌词好像有个(你只想要自由 不顾我的感受) 但是我查不着啊 是女生唱的 声音不是很甜

小肉包1年前 (2023-12-15)阅读数 5#综合百科
文章标签我的硬盘

歌曲:给你所有的泪水够不够

歌手:王浩

歌词:

路灯昏黄的十字路口

风吹得我瑟瑟发抖

任凭我一次次肯求

你还是没有回头

斟上一杯爱情的苦酒

就让我一醉解千愁

还给你想要的自由

伤痛让我独自忍受

给你所有的泪水够不够

你还把我的心伤透

曾经承诺的天长地久

你早就抛在脑后

给你所有的泪水够不够

你全然不顾我的感受

看着我日益变得消瘦

你难道真的不内疚

路灯昏黄的十字路口

风吹得我瑟瑟发抖

任凭我一次次肯求

你还是没有回头

斟上一杯爱情的苦酒

就让我一醉解千愁

还给你想要的自由

伤痛让我独自忍受

给你所有的泪水够不够

你还把我的心伤透

曾经承诺的天长地久

你早就抛在脑后

给你所有的泪水够不够

你全然不顾我的感受

看着我日益变得消瘦

你难道真的不内疚

我不想哭

泪却忍不住

输了你输了全部

给你所有的泪水够不够

你还把我的心伤透

曾经承诺的天长地久

你早就抛在脑后

给你所有的泪水够不够

你全然不顾我的感受

看着我日益变得消瘦

你难道真的不内疚

// “获得Intel CPU ID”按钮消息处理函数

void CIntelCPUIDDlg::OnBtnCPUID()

{

unsigned long s1,s2;

unsigned char vendor_id[]="------------";//CPU提供商ID

CString str1,str2,str3;

// 以下为获得CPU ID的汇编语言指令

_asm // 得到CPU提供商信息

{

xor eax,eax // 将eax清0

cpuid // 获取CPUID的指令

mov dword ptr vendor_id,ebx

mov dword ptr vendor_id[+4],edx

mov dword ptr vendor_id[+8],ecx

}

str1.Format("%s",vendor_id);

_asm // 得到CPU ID的高32位

{

mov eax,01h

xor edx,edx

cpuid

mov s2,eax

}

str2.Format("%08X-",s2);

_asm // 得到CPU ID的低64位

{

mov eax,03h

xor ecx,ecx

xor edx,edx

cpuid

mov s1,edx

mov s2,ecx

}

str3.Format("%08X-%08X\n",s1,s2);

str2=str2+str3;

m_editVendor.SetWindowText(str1);

m_editCPUID.SetWindowText(str2);

}

// GetHDSerial.cpp: implementation of the CGetHDSerial class.

//

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

#include "stdafx.h"

#include "GetHDSerial.h"

char m_buffer[256];

WORD m_serial[256];

DWORD m_OldInterruptAddress;

DWORDLONG m_IDTR;

// 等待硬盘空闲

static unsigned int WaitHardDiskIdle()

{

BYTE byTemp;

Waiting:

_asm

{

mov dx, 0x1f7

in al, dx

cmp al, 0x80

jb Endwaiting

jmp Waiting

}

Endwaiting:

_asm

{

mov byTemp, al

}

return byTemp;

}

//中断服务程序

void _declspec( naked )InterruptProcess(void)

{

int byTemp;

int i;

WORD temp;

//保存寄存器值

_asm

{

push eax

push ebx

push ecx

push edx

push esi

}

WaitHardDiskIdle();//等待硬盘空闲状态

_asm

{

mov dx, 0x1f6

mov al, 0xa0

out dx, al

}

byTemp = WaitHardDiskIdle(); //若直接在Ring3级执行等待命令,会进入死循环

if ((byTemp&0x50)!=0x50)

{

_asm // 恢复中断现场并退出中断服务程序

{

pop esi

pop edx

pop ecx

pop ebx

pop eax

iretd

}

}

_asm

{

mov dx, 0x1f6 //命令端口1f6,选择驱动器0

mov al, 0xa0

out dx, al

inc dx

mov al, 0xec

out dx, al //发送读驱动器参数命令

}

byTemp = WaitHardDiskIdle();

if ((byTemp&0x58)!=0x58)

{

_asm // 恢复中断现场并退出中断服务程序

{

pop esi

pop edx

pop ecx

pop ebx

pop eax

iretd

}

}

//读取硬盘控制器的全部信息

for (i=0;i drive & 0x10)?

IDE_ATAPI_IDENTIFY : IDE_ATA_IDENTIFY;

memset (&scip, 0, sizeof(scip));

memset (IdOutCmd, 0, sizeof(IdOutCmd));

// 获取驱动器信息

if (WinNTGetIDEHDInfo (hPhysicalDriveIOCTL,

&scip,

(PSENDCMDOUTPARAMS)&IdOutCmd,

(BYTE) bIDCmd,

(BYTE) drive,

&cbBytesReturned))

{

int m = 0;

USHORT *pIdSector = (USHORT *)

((PSENDCMDOUTPARAMS) IdOutCmd) -> bBuffer;

for (m = 0; m

buffer[m] = pIdSector [m];

bFlag = TRUE; // 读取硬盘信息成功

}

}

}

CloseHandle (hPhysicalDriveIOCTL); // 关闭句柄

}

return bFlag;

}

// WindowsNT/2000/XP系统下读取SCSI硬盘序列号

BOOL CGetHDSerial::WinNTReadSCSIHDSerial (DWORD * buffer)

{

buffer[0]='\n';

int controller = 0;

HANDLE hScsiDriveIOCTL = 0;

char driveName [256];

sprintf (driveName, "\\\\.\\Scsi%d:", controller);

有一首歌 歌词好像有个(你只想要自由 不顾我的感受) 但是我查不着啊 是女生唱的 声音不是很甜

// Windows NT/2000/XP下任何权限都可以进行

hScsiDriveIOCTL = CreateFile (driveName,

GENERIC_READ | GENERIC_WRITE,

FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,

OPEN_EXISTING, 0, NULL);

if (hScsiDriveIOCTL != INVALID_HANDLE_VALUE)

{

int drive = 0;

DWORD dummy;

for (drive = 0; drive

{

char buffer [sizeof (SRB_IO_CONTROL) + SENDIDLENGTH];

SRB_IO_CONTROL *p = (SRB_IO_CONTROL *) buffer;

SENDCMDINPARAMS *pin =

(SENDCMDINPARAMS *) (buffer + sizeof (SRB_IO_CONTROL));

// 准备参数

memset (buffer, 0, sizeof (buffer));

p -> HeaderLength = sizeof (SRB_IO_CONTROL);

p -> Timeout = 10000;

p -> Length = SENDIDLENGTH;

p -> ControlCode = IOCTL_SCSI_MINIPORT_IDENTIFY;

strncpy ((char *) p -> Signature, "SCSIDISK", 8);

pin -> irDriveRegs.bCommandReg = IDE_ATA_IDENTIFY;

pin -> bDriveNumber = drive;

// 得到SCSI硬盘信息

if (DeviceIoControl (hScsiDriveIOCTL, IOCTL_SCSI_MINIPORT,

buffer,

sizeof (SRB_IO_CONTROL) +

sizeof (SENDCMDINPARAMS) - 1,

buffer,

sizeof (SRB_IO_CONTROL) + SENDIDLENGTH,

&dummy, NULL))

{

SENDCMDOUTPARAMS *pOut =

(SENDCMDOUTPARAMS *) (buffer + sizeof (SRB_IO_CONTROL));

IDSECTOR *pId = (IDSECTOR *) (pOut -> bBuffer);

if (pId -> sModelNumber [0])

{

int n = 0;

USHORT *pIdSector = (USHORT *) pId;

for (n = 0; n

buffer[n] =pIdSector [n];

return TRUE; // 读取成功

}

}

}

CloseHandle (hScsiDriveIOCTL); // 关闭句柄

}

return FALSE; // 读取失败

}

// Windows NT/2000/XP下读取IDE设备信息

BOOL CGetHDSerial::WinNTGetIDEHDInfo (HANDLE hPhysicalDriveIOCTL, PSENDCMDINPARAMS pSCIP,

PSENDCMDOUTPARAMS pSCOP, BYTE bIDCmd, BYTE bDriveNum,

PDWORD lpcbBytesReturned)

{

// 为读取设备信息准备参数

pSCIP -> cBufferSize = IDENTIFY_BUFFER_SIZE;

pSCIP -> irDriveRegs.bFeaturesReg = 0;

pSCIP -> irDriveRegs.bSectorCountReg = 1;

pSCIP -> irDriveRegs.bSectorNumberReg = 1;

pSCIP -> irDriveRegs.bCylLowReg = 0;

pSCIP -> irDriveRegs.bCylHighReg = 0;

// 计算驱动器位置

pSCIP -> irDriveRegs.bDriveHeadReg = 0xA0 | ((bDriveNum & 1) irDriveRegs.bCommandReg = bIDCmd;

pSCIP -> bDriveNumber = bDriveNum;

pSCIP -> cBufferSize = IDENTIFY_BUFFER_SIZE;

// 读取驱动器信息

return ( DeviceIoControl (hPhysicalDriveIOCTL, IOCTL_GET_DRIVE_INFO,

(LPVOID) pSCIP,

sizeof(SENDCMDINPARAMS) - 1,

(LPVOID) pSCOP,

sizeof(SENDCMDOUTPARAMS) + IDENTIFY_BUFFER_SIZE - 1,

lpcbBytesReturned, NULL) );

}

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)