
硬体相关
文章平均质量分 88
Gaia
凡所有相 皆是虚妄 若见诸相非相 即见如来
展开
-
TTL电平和CMOS电平总结
cmos 和TTL转载 2022-10-18 15:27:25 · 2059 阅读 · 0 评论 -
windows的磁盘操作之十——获取磁盘型号
我们在第七节http://cutebunny.blog.51cto.com/301216/625577中探讨了如何获取系统中所有磁盘的磁盘号。但是在很多情况下,仅仅是磁盘号并不能满足我们的需求,我们希望在应用程序界面上显示更详细的磁盘信息。通过前面几节的方法,我们已经可以获得许多磁盘信息,例如磁盘大小,柱面,扇区,分区等等。但是如下图所示,我们在设备管理器中看到的“WDC WD1600转载 2017-03-24 11:37:40 · 2403 阅读 · 0 评论 -
windows的磁盘操作之九——区分本地磁盘与移动硬盘
最近碰到了个新问题,记录下来作为windows的磁盘操作那个系列的续篇吧。一些时候我们的程序需要区分本地存储设备和USB存储设备。在网上搜一搜一般会找到一个最直接的API,GetDriveType,其原型为UINT GetDriveType(LPCTSTR lpRootPathName)参数lpRootPathName是存储设备的根目录,例如C:\,返回值即为设备类型。转载 2017-03-24 11:35:54 · 2443 阅读 · 0 评论 -
windows的磁盘操作之八——格式化分区的思考
格式化分区平常在我们看来是再普通不过的操作了,点两下鼠标就可以搞定的事情,但是在程序中实现的的确确不太容易。可能有人说直接调个format命令不就好了,没错,但系统命令存在我们第一节http://cutebunny.blog.51cto.com/301216/624027中阐述的种种问题。算上format命令,目前我发现有三种方法,1.Windows API SHFormatDri转载 2017-03-24 11:34:32 · 725 阅读 · 0 评论 -
windows的磁盘操作之七——获取当前所有的物理磁盘号
有了前几节的基础后,本节给出一个更复杂但却非常实用的例子。很多情况下,我们想知道当前系统下安装了多少块磁盘,他们的物理驱动器号都是多少,每一块磁盘上有多少个分区,分区号怎么分布,每个分区大小是多少。这就类似于我们打开windows的磁盘管理看到的那种非常清晰的列表。对于后几个问题,我们根据物理驱动器号调用第五节http://cutebunny.blog.51cto.com/301216转载 2017-03-24 11:33:43 · 3320 阅读 · 0 评论 -
windows的磁盘操作之六——获取系统所在物理磁盘号
很多情况下,我们在程序中需要获知操作系统安装在哪个分区上或者哪个物理磁盘上,进而对其进行一些操作或避免一些操作。例如要避免对系统磁盘分区表的删除操作。本节讨论如何获取操作系统所在的逻辑分区号和物理驱动器号。还是先上代码。/*******************************************************************************转载 2017-03-24 11:32:46 · 2555 阅读 · 0 评论 -
windows的磁盘操作之五——获取物理磁盘上的所有逻辑分区号
本节讨论与上一节相反的操作,根据物理驱动器号获取该磁盘上的所有分区号。DeviceIoControl函数并没有提供操作码来直接完成此操作,所以需要稍微绕个圈子来实现这项功能。大体思路为,先通过GetLogicalDrives函数获得系统中所有分区号,然后过滤掉非硬盘分区(例如软驱、光驱),再过滤掉不属于指定物理磁盘的分区,最后剩下的就是我们所需要的分区号了。 代码如下/**转载 2017-03-24 11:30:39 · 863 阅读 · 0 评论 -
windows的磁盘操作之四——根据逻辑分区号获得物理磁盘号
第一节中http://cutebunny.blog.51cto.com/301216/624027我们谈到了磁盘设备名称的两种形式:对于物理驱动器x,形式为 \\.\PhysicalDriveX,编号从0开始,例如名称含义\\.\PhysicalDrive0打开第一个物理驱动器\\.\Physi转载 2017-03-24 11:29:22 · 735 阅读 · 0 评论 -
windows的磁盘操作之三——获取和删除磁盘分区信息
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://cutebunny.blog.51cto.com/301216/624079上一节中介绍了如何初始化一块空白的磁盘,并创建分区。那么对于一块已存在分区的磁盘,我们如何获得其分区信息,如何删除其分区信息呢?本节对这两类操作进行讨论。 获得磁盘分区信息的代码转载 2017-03-24 11:28:07 · 2699 阅读 · 1 评论 -
windows的磁盘操作之二——初始化磁盘
上一节中我们介绍了一些基本概念和主要的API,本节开始我们将列举并分析一些实例。本文中的所有代码我都在vs2008下测试过,读者只需要替换少量的宏定义即可编译执行。 面对一块新的磁盘,我们首先要做的就是对其初始化。在系统中通过windows的磁盘管理完成这一点非常容易,但在程序中实现略微复杂。本节的示例代码对一块新硬盘初始化,并在上面创建分区。代码如下: /******转载 2017-03-24 13:52:24 · 5003 阅读 · 2 评论 -
API函数获取磁盘空间
包含windows.h这个头文件函数原型说明如下: 1.获取系统中逻辑驱动器的数量The GetLogicalDrives function retrieves a bitmask representing the currently available disk drives.DWORD GetLogicalDrives(void);转载 2017-03-24 13:56:46 · 888 阅读 · 0 评论 -
系统IO地址
PC机中仅使用A[0]–A[9]地址位来表示I/O地址,即可有1024个地址。前512个供系统电路使用,后512个供扩充插槽使用。当A[9]=0时表示为系统板上的I/O地址;A[9]=1 时表示为扩充插槽接口卡上的地址。系统I/O地址使用情况I/O地址范围用途 I/O地址范围用途0000-001F823转载 2012-11-21 11:06:44 · 1267 阅读 · 0 评论 -
windows磁盘API实践
https://www.cnblogs.com/matrix-r/p/3288886.html磁盘和驱动器管理APIGetLogicalDrivers 获取主机中所有的逻辑驱动器,以BitMap的形式返回.GetLogicalDriverString 获取主机中所有的逻辑驱动器,以驱动器根路径字符串返回.FindFirstVolume 查找主机中的转载 2018-01-29 14:43:55 · 807 阅读 · 0 评论 -
C#中通过WMI的Win32_DiskDrive对象获取磁盘驱动器信息
http://blog.youkuaiyun.com/taozpwater/article/details/80505291、简介 在WMI中,通过Win32_DiskDrive对象可以获取磁盘驱动器的相关信息: ManagementClass mc = new ManagementClass("Win32_DiskDrive"); ManagementOb转载 2018-01-29 14:35:49 · 3058 阅读 · 0 评论 -
磁盘学习+MBR学习
转自:http://blog.youkuaiyun.com/zcc1414/article/details/12208897磁头数: 硬盘总共有几个磁头,也就是几面盘片,硬盘式由多个盘片组成的, 而每个盘片上都有一个读写磁头复制该盘片的读写操作,磁头数最大为255柱面数: 表示硬盘每一面盘片上有几条磁道,最大为1023 10个二进制位。扇区:转载 2018-01-29 11:15:18 · 651 阅读 · 0 评论 -
硬盘的那些事(主分区、扩展分区、逻辑分区、活动分区、系统分区、启动分区、引导扇区、MBR等)
转载地址http://xu3stones.blog.163.com/blog/static/205957136201210309424303主分区,扩展分区,逻辑分区,活动分区,系统分区,启动分区。。。。。。。。。主引导扇区,MBR,bootloader。。。。。。。。。。各种概念,你都清楚什么意思吗?花了一天的时间终于研究清楚了,网上好多帖子的解释都是错的,或者没有深转载 2018-01-29 11:10:24 · 616 阅读 · 0 评论 -
读 Hardware Monitor
这几天一直在回忆HW Monitor的读取方法,因为之前的source code 被误删掉了,所以翻出ICH10和SIO的datasheet重看了一下。找到一个很好的论坛,需要了解硬体操作的可以看下 :http://bbs.2beanet.com/map.php?forum=5&news1.AP访问底层需要通过驱动中转,常用的工具是WinIo,它通过加载内核级驱动来提供底层操作,也正因如此原创 2013-01-05 09:46:02 · 1713 阅读 · 0 评论 -
使用WinIO访问底层端口&寄存器
一 在window系统中应用层程序没有权限访问底层,为了实现端口或者寄存器操作,就要借助高权限的程序。一般是将winio.dll 加载到驱动,借道实现底层操作。就好像我们借助驱动程序操作外设一样。64位系统的应用层是兼容32位程序的,但驱动层是不能向下兼容的,所以winio64和winio32要用对。 WinIo可以到官方网站:http://www.internals.com/去下载,原创 2017-07-07 11:17:56 · 3376 阅读 · 1 评论 -
API函数操作COM口
一 summary在Dos环境下,用户可以直接对通信设备编程,可以通过查询中断的方式使用通信设备。但是Windows不提倡应用程序直接控制硬件,而是通过Windows所提供的设备驱动程序来进行数据传递。在Windows环境中,通信支持中断功能,当通信设备接收到一个输入字符的时候就产生一个硬件中断,该中断暂停应用程序的执行,并把接收到的字符存入到一个叫接收数据队列的内存缓冲区中。而待原创 2017-07-06 16:28:29 · 779 阅读 · 0 评论 -
intel x86 架构
X86架构进行一个简单的介绍:当然,这个架构图并不是所有的都是如此,根据不同的主板,平台,架构是略有差别的比如说,目前很多主板已经将北桥集成到CPU当中,将南桥集成为PCH,但大致的框架还是如此的。下面对这个架构图上的各个内容分别进行一些简介。1:CPU,大家都不陌生的名词,中央处理器,计算机的核心大脑。 2: 北桥(North Bridge Chipse转载 2017-06-15 15:35:33 · 4558 阅读 · 0 评论 -
windows的磁盘操作之一——基本概念
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://cutebunny.blog.51cto.com/301216/624027最近项目中需要在windows系统下与磁盘打交道,用了一个礼拜时间,弄懂了一些基本的概念,记录于此,并以项目中的部分代码作为范例。首先说明一点,本文中使用的不是cmd命令行,转载 2017-03-24 11:25:00 · 2001 阅读 · 0 评论 -
Windows Biometric Framework API 指纹识别
一 相关链接非常详细的demo code ,可以直接编译 Client Application Functions 错误代码的定义 Client Error Codes函数说明 WinBioEnrollBegin function二 环境用的是win1064系统,VS2012编译环境三 注意1 WinBioOpenSession的第三个参数Flags原创 2016-09-08 11:46:40 · 5197 阅读 · 0 评论 -
vc++ 学习笔记
一 .全屏void CXXXDlg::SetFullScreen(){ int frameWidth = GetSystemMetrics(SM_CXFRAME); int frameHeight = GetSystemMetrics(SM_CYFRAME); int captionHeight = GetSystemMetrics(SM_CYCAPTION); int scree原创 2013-02-27 10:21:10 · 3690 阅读 · 0 评论 -
无线网络连接 wlan test
无线网络控制使用Native wifi API 函数来实现1 查找本机无线网卡 if ( WlanOpenHandle(WLAN_API_VERSION, NULL, &dwServiceVersion, &hClient) != ERROR_SUCCESS){wsprintf(stTemp,L"Could not return handle!");}WlanOpenHandle(原创 2013-03-26 15:25:16 · 3915 阅读 · 1 评论 -
C# 获取系统信息
使用System.Management类获取系统信息: using System.Management;namespace test_cpuid{ class Program { static private void GetInfo() { string cpuInfo = "";//cpu序列号转载 2013-03-19 15:53:53 · 7780 阅读 · 0 评论 -
从WMI看VC++到.Net的变迁
http://cool.worm.blog.163.com/blog/static/6433900620095893630609/WMI(Windows Management Instrumentation)是Windows下可以与系统信息(包括软硬件等)的一个管理框架,通过WMI可以很方便地对机器进行管理。现在以通过WMI来打开(或创建)一个记事本(notepad.exe)进程为例,看看VC转载 2013-03-21 10:44:33 · 715 阅读 · 0 评论 -
WMIC命令整理
转自 :http://blog.youkuaiyun.com/dot_50/article/details/5855857 执行“wmic”命令启动WMIC命令行环境。这个命令可以在XP或 .NET Server的标准命令行解释器(cmd.exe)、Telnet会话或“运行”对话框中执行。这些启动方法可以在本地使用,也可以通过.NET Server终端服务会话使用。第一次执行WMIC命令时,Windo转载 2013-03-19 16:56:19 · 1288 阅读 · 0 评论 -
LCD背光控制 brightness control
在显示器的校正中常常会涉及Gamma值、白点坐标、色温、三原色、荧光剂色度值等参数。不同的gamma值会使显示器的亮度和颜色有较大差别。gamma值较小时亮调的等级差比较大,对表现亮度的颜色有利,反之,gamma值较大时对暗调的等级差拉的很大,对表现暗色有利。人的视觉对RGB三色信号的感觉大致成对数变化而不是线性变化,gamma校正正是为了克服这种非线性。gamma值的选取应该使整个亮度级别变化均转载 2013-04-02 16:58:11 · 7883 阅读 · 1 评论 -
Windows XP电源管理及注册表分析
http://www.cnblogs.com/ziwuge/archive/2011/10/04/2199141.html注册表: 注册表中电源选项的关键字为“PowerCfg”,以为Windows XP SP3的系统为例,注册表中有“PowerCfg”的位置有①HKEY_CURRENT_USER\Control Panel\PowerCfg②HKEY_LOCAL_MACHINE\SOF转载 2012-12-27 12:55:45 · 3909 阅读 · 0 评论 -
读取DMI信息
DMI table 记录了系统硬体信息,比如BIOS version ,OEM vender info ,CPU RAM 等。系统在boot时会将DMI table map到 MEMORY中。程序从0x0000F000:0 位置开始查找string “_SM_”,确定地址后把指针格式化成struct dmi_eps的格式,再读出需要的信息。下面是memtest86+4.20里边ope原创 2012-11-27 10:44:37 · 2199 阅读 · 0 评论 -
计算机启动全过程
一 Intel的IBMPC上i386芯片是遵循Intel与IBM共同制定的Boot协议的1. PC机的复位线和系统中的所有部件相连,包括CPU的RESET引脚2. 系统上电开机时,主板电源系统发送低电平的"Power Good"信号,该信号送到复位接口电路的#RES端,产生时钟同步的复位正脉冲信号RESET,该脉冲发送到上面提及的复位线上,经由CPU的RESET引脚被CPU采集到,当正脉冲转载 2012-11-26 09:18:15 · 849 阅读 · 0 评论 -
API函数GetAdaptersAddresses获取网卡信息MAC &IP &描述信息
一 , 两个函数The GetAdaptersInfo function retrieves adapter information for the local computerThe GetAdaptersAddresses function retrieves the addresses associated with the adapters on the local compute...原创 2013-06-06 11:47:22 · 4280 阅读 · 0 评论 -
delphi 获取硬盘序列号、cpu号、bios号、网卡号
delphi 获取硬盘序列号、cpu号、bios号、网卡号2009-06-15 9:45delphi 获取硬盘 序列号function GetIdeNum: String;type TSrbIoControl = packed record HeaderLength : ULONG; Signature : Array[0..7] of Char; Timeout : ULONG; Control转载 2016-06-06 10:14:38 · 6446 阅读 · 0 评论 -
耳机阻抗匹配原理
转自:http://blog.youkuaiyun.com/zhandoushi1982/article/details/6101590电功率的计算公式 用电压乘以电流,这个公式是电功率的定义式,永远正确,适用于任何情况。对于纯电阻电路,如电阻丝、灯炮等,可以用“电流的平方乘以电阻”“电压的平方除以电阻”的公式计算,这是由欧姆定律推导出来的(其中的电流和电压都是有效值(有效值就是转载 2016-01-15 15:35:40 · 10565 阅读 · 0 评论 -
Windows下Core Audio APIS 音频应用开发(一)
http://msdn.microsoft.com/en-us/library/dd370784(v=vs.85).aspx文章翻译译文转载自http://www.cppblog.com/shenhuafeng/archive/2006/12/12/16323.htmlCore Audio APIS :Vista 里面,一组新的用户态的音频组件提供给应用程序来改善应转载 2016-01-15 16:21:20 · 10449 阅读 · 0 评论 -
Win7音频系统底层API
VISTA、Win Server 2008、Win7 等系统音频系统底层APICore Audio APIs的优势:Windows Vista、Windows 7、Windows server 2008等系统音频系统相比之前的系统有很大的变化,产生了一套新的底层API即Core Audio APIs。该低层API为高层API( 如Media Foundation(将要取代Dir转载 2016-01-15 16:04:07 · 8295 阅读 · 0 评论 -
检测笔记本电脑的主板,cpu,硬盘的温度
转自 http://blog.youkuaiyun.com/Treeyan其实不算原创,资料几乎都是通过 google 来自 internet :)前段时间买了 hp-dv1702 笔记本电脑, 酷睿单核 cpu, 5400 转硬盘, 看电影挺不错的. 酷睿 cpu支持 speedstep 技术, 不忙的时候总是工作在 800MHz 左右,发热量小,BIOS 设定风扇启动温度为 cpu 75度转载 2014-05-27 09:03:34 · 1565 阅读 · 0 评论 -
用SetupDiGetClassDevs枚举设备
转自:http://blog.youkuaiyun.com/qinlicang/article/details/4422886网 络上有段代码是用SetupDiGetClassDevs枚举U盘对应的盘符。代码中判断设备是否是u盘的办法是首先用 GUID_DEVINTERFACE_VOLUME调用SetupDiGetClassDevs后再 SetupDiEnumDeviceInterfaces,Setu转载 2014-01-28 10:03:27 · 1852 阅读 · 0 评论 -
用wattcp库实现实模式dos下的TCP/IP通讯
转自 http://blog.youkuaiyun.com/dos5gw/article/details/5429582 首先看题目: dos 环境下, 实模式(不是DJGPP),用wattcp库, TCP/IP通讯, 其中需要注意的:1,dos没有固定的ip, 比如dos系统运行后, 工控机连上路由器, 此时这个dos系统是没有ip地址的(别想着能ping到, 连ip都没有,拿什么pi转载 2013-12-02 15:15:35 · 1891 阅读 · 0 评论 -
grub4dos 加载 MEMTEST+86
DOS 系统由三个文件组成 IO.SYS MSDOS.SYS COMMAND.SYS IO.SYS : 提供 输入输出功能MSDOS.SYS : dos系统的内核 COMMAND.SYS : 提供DOS命令的解析执行隐藏文件查看:attrib -s -r -h c:\boot.ini DOS操作系统引导过程: 1.加电->ROM B原创 2013-01-16 14:26:08 · 2557 阅读 · 0 评论