kots's profile光荣与梦想——永远的CCCPPhotosBlogListsMore Tools Help

Blog


    May 19

    记念

    周日就知道了今天到周三是全国哀悼日,下午14:28全国将为死难者哀悼。

    公司位于闸北区,一个比较偏僻的地方。附近的大马路上,从来都是只有汽车发动机在轰鸣,极少有汽车鸣笛。但是当分针走向那个时刻,骤然间,耳边传来此起彼伏的汽笛,不绝于耳。突然被狠狠感动了一把。平时附近的路上,汽车不顾行人,随便乱转弯的场面我见过不少。但是现在,所有的司机都在为死难者送行。这一刻,所有人都在倾听,所有人都在哀悼。

    30分,一个悠长的声音响起——防空警报。我从来没有听过真正的防空警报,只是在书中读到这样的形容词:“凄厉”。警报声带着一股深冷的寒意,压得人难以呼吸,无法思考。地动山摇的大灾难,仿佛就在眼前。直到警报渐渐停息,方才缓过气来。

    3万遇难者,实在是太过惨痛的代价。但如果能够唤起国民的防灾意识并有所行动,当可告慰亡灵。

    May 14

    关于用SetupDiGetClassDevs枚举设备

    网络上有段代码是用SetupDiGetClassDevs枚举U盘对应的盘符。代码中判断设备是否是u盘的办法是首先用GUID_DEVINTERFACE_VOLUME调用SetupDiGetClassDevs后再SetupDiEnumDeviceInterfaces,SetupDiGetDeviceInterfaceDetail……最后还需要和事先传进来的Device ID比较。

    实际上,经过试验,我找到另外一个简单一点的办法:

    首先是用SetupDiGetClassDevs枚举GUID_DEVINTERFACE_USB_DEVICE,找到所有USB设备。然后用SetupDiGetClassDevs枚举GUID_DEVINTERFACE_VOLUME,找到所有VOLUME后依次递归取其Parent,直到到达HTREE\ROOT\0或者某个Parent等于前面得到的USB设备为止。

    值得注意的是,GUID_DEVINTERFACE_USB_DEVICE、GUID_DEVINTERFACE_DISK枚举出的设备只有一个Child,就是自身。

    下面是SetupDiGetClassDevs在我机器上的一些结果:

    Volume

    {4D36E965-E325-11CE-BFC1-08002BE10318}
    IDE\CDROMHL-DT-ST_CD-ROM_GCR-8523B_______________1.02____\5&4DE3C4&0&0.0.0
    {4D36E965-E325-11CE-BFC1-08002BE10318}
    SCSI\CDROM&VEN_GENERIC&PROD_DVD-ROM&REV_1.0\2&12B1DE20&0&000
    {71A27CDD-812A-11D0-BEC7-08002BE2092F}
    STORAGE\REMOVABLEMEDIA\7&35EAC781&0&RM
    {71A27CDD-812A-11D0-BEC7-08002BE2092F}
    STORAGE\VOLUME\1&30A96598&0&SIGNATURE8150814OFFSET27FCC3000LENGTH27FCB3400
    {71A27CDD-812A-11D0-BEC7-08002BE2092F}
    STORAGE\VOLUME\1&30A96598&0&SIGNATURE8150814OFFSET4FF97E200LENGTH4510E1E00
    {71A27CDD-812A-11D0-BEC7-08002BE2092F}
    STORAGE\VOLUME\1&30A96598&0&SIGNATURE8150814OFFSET7E00LENGTH27FCB3400

    Disk

    {4D36E967-E325-11CE-BFC1-08002BE10318}
    IDE\DISKST340015A_______________________________3.15____\4C35484158483150202020202020202020202020
    {4D36E967-E325-11CE-BFC1-08002BE10318}
    USBSTOR\DISK&VEN_GENERIC&PROD_USB_FLASH_DRIVE&REV_1.00\6&2ECD5725&1

    USB

    {36FC9E60-C465-11CF-8056-444553540000}
    USB\VID_1043&PID_8012\5&1E5B5D9&0&5

    PARTITION

    {71A27CDD-812A-11D0-BEC7-08002BE2092F}
    STORAGE\REMOVABLEMEDIA\7&35EAC781&0&RM

    下面是一些VOLUME的父系层次:

    {4D36E965-E325-11CE-BFC1-08002BE10318}
    IDE\CDROMHL-DT-ST_CD-ROM_GCR-8523B_______________1.02____\5&4DE3C4&0&0.0.0
    PCIIDE\IDECHANNEL\4&14E96D70&0&1
    PCI\VEN_8086&DEV_24DB&SUBSYS_300E103C&REV_02\3&13C0B0C5&0&F9
    ACPI\PNP0A03\1
    ACPI_HAL\PNP0C08\0
    ROOT\ACPI_HAL\0000
    HTREE\ROOT\0

    {4D36E965-E325-11CE-BFC1-08002BE10318}
    SCSI\CDROM&VEN_GENERIC&PROD_DVD-ROM&REV_1.0\2&12B1DE20&0&000
    PCI\D347PRT\0000
    ROOT\SYSTEM\0003
    HTREE\ROOT\0

    {71A27CDD-812A-11D0-BEC7-08002BE2092F}
    STORAGE\REMOVABLEMEDIA\7&35EAC781&0&RM
    USBSTOR\DISK&VEN_GENERIC&PROD_USB_FLASH_DRIVE&REV_1.00\6&2ECD5725&1
    USB\VID_1043&PID_8012\5&1E5B5D9&0&5
    USB\ROOT_HUB20\4&386BDE3F&0
    PCI\VEN_8086&DEV_24DD&SUBSYS_300E103C&REV_02\3&13C0B0C5&0&EF
    ACPI\PNP0A03\1
    ACPI_HAL\PNP0C08\0
    ROOT\ACPI_HAL\0000
    HTREE\ROOT\0

    {71A27CDD-812A-11D0-BEC7-08002BE2092F}
    STORAGE\VOLUME\1&30A96598&0&SIGNATURE8150814OFFSET27FCC3000LENGTH27FCB3400
    ROOT\FTDISK\0000
    HTREE\ROOT\0

    {71A27CDD-812A-11D0-BEC7-08002BE2092F}
    STORAGE\VOLUME\1&30A96598&0&SIGNATURE8150814OFFSET4FF97E200LENGTH4510E1E00
    ROOT\FTDISK\0000
    HTREE\ROOT\0

    {71A27CDD-812A-11D0-BEC7-08002BE2092F}
    STORAGE\VOLUME\1&30A96598&0&SIGNATURE8150814OFFSET7E00LENGTH27FCB3400
    ROOT\FTDISK\0000
    HTREE\ROOT\0

    对照一下可以发现以下值得注意的地方:

    1、IDE硬盘中VOLUME的设备ID包括了VOLUME的位置、长度
    2、IDE硬盘中VOLUME的Parents中不包括该硬盘的Device ID
    3、U盘中VOLUME的Parents中包括该U盘的Device ID
    4、U盘中VOLUME的Device ID里有“REMOVABLEMEDIA”标记

    May 02

    买书

    最近得知《黑暗森林》要出书了,赶紧跑去SFW网站看,打算把看中的其他书一起买了。没想到杂志上的消息只是广告,正式的书要到5月中旬。看网站的时候发现,想买的一本《达尔文电波》快没货了,于是决定先下手为强。

    这次打算买不少书,SFW都有卖,但是很多书普通会员都没有优惠。其中有几本在joyo有买,不但有优惠,还可以通过egou的返点连接进去得到返点。SFW达到50元就可以免费快递,joyo则是任何商品任何价格均免费快递。

    一番盘算后,得到清单:

    《提升之战》《三体》在joyo买,因为自己暂时还是VIP,72打到59.6

    《沙丘之子》《达尔文电波》《黑暗森林》《沙丘救世主》在SFW买。前两本马上下单,60打到51.后两本等到《黑暗森林》出来再买,正好50,没有打折。加上一本SFW08年第一期以保证超过50,正好这期杂志因为邮寄的时候出了问题没拿到。

    小插曲:在joyo买书的时候,网站提示我可以优惠换购一些东西。看了看,发现有一个RCA古典精选。长了个心眼,没马上选。Google了一下,发现这个东西到处有卖,paipai,taobao,甚至baidu贴吧都有广告。开始觉得不对头,继续搜,结果发现有个买过的人贴的Blog说其中某盘有杂音( http://foysong.blog.sohu.com/83630895.html ) 。谢天谢地,总算发现真相,没上当受骗。

    当了一回XP SP3小白鼠

    虽然SP3还没有在MS网站上正式放出来,但是已经可以在WU下载。据某人说安装以后效果不错。

    鉴于某些原因,没敢在公司的机器上装。先在家里的机器上做个实验。

    家里2台机器,新装的机器打SP3倒是挺快。打完重启动的时候,出现一个CMD窗口,似乎是要执行什么程序。可执行的过程好像出了问题,一溜的Error.但是以后也没见啥异常。旧机器就有点受罪了。系统盘塞得比较满,于是一次又一次提示空间不足。直到把反安装所需的文件备份放到别的盘才顺利打完。这回那个CMD窗口倒没出错。最后总结的时候发现:文件备份需要500M,补丁本身需要250M左右。

    本以为事情就这么完了。结果晚上因为要传手机拍的照片,连数据线的时候发现连不上。勉强连上以后,传输程序总是崩溃。第二天再试,还是这样。无奈只好重装数据线驱动和传输软件。装完以后就好了。看来是SP3升级了USB控制器的驱动,造成某些特殊USB设备的信息混乱。