Richie - xjl20008的BLOG http://xjl20008.52rd.net/ - 复制 - 收藏
博 文
一半是U盘一半是光盘 U盘拥有双分区■河南/CTI:下面我们再来看看来自河南的CTI朋友为大家编制的USB_CD工具,他让我们可以运行一个程序,马上便拥有U盘多分区且有一个是光驱。如果你不是很善于自己操作,不妨就用CTI朋友提供的挑战专用工具吧。他在中文提到的那些小工具都包含在他的安装程序中,下载一次即可。废话不多说了,相信很多朋友非常想知道如何实现U盘变成“一半是U盘,一半是光盘”的方法,我们直接进入正题。这里要用到我自己制作的一个工具——USB_CD,下载地址在http://work.newhua.com/cfan/200710/usbcd.rar。我们马上开始制作:第一步:将U盘接入电脑,然后将USB_CD压缩包中的install.exe解压到U盘根目录,最后双击install.exe进行安装。第二步:上步完成后删除该U盘并重新接入电脑,在系统中就会出现两个盘符了(U盘J:和光盘K:见图1),并且在系统托盘区除了普通的U盘图标外还会有一个光盘图标。图1第三步:单击上面提到的光盘图标,在出现的菜单上点击“安全删除 USB_CD 设备”即可将其删除(见图2)。图2小提示:如果在删除过程中出现“现在无法停止'CD'设备,请稍候再停止该设备”或“现在无法停止'USB'设备,请稍候再停止该设备”的提示,则说明在光盘或U盘上有程序正在运行,只要退出这些程序,然后再点击系统托盘的光盘图标进行删除即可。如果想要卸载U盘双分区的效果,只要将这个U盘接入电脑,进入U盘,在窗口工具栏的“工具→文件夹选项→查看→隐藏文件和文件夹”中选择“显示所有文件和文件夹”,然后点击“确定”即可看见在U盘根目录有个USB2CD...
[Windows驱动]INF文件2 (2007-6-4 18:26)
.INF文件是什么 .INF是 Device Information File 的缩写,是微软公司为供硬件设备制造商发布其设备驱动程序而发展的———许多硬件设备的驱动程序都是使用 .INF文件来安装的。.INF文件从 Windows3.X 时代就开始大量被使用了。  .INF文件是一种具有特定格式的纯文本文件,我们可说它是一种安装脚本(SetupScript)。虽然 .INF 只是纯文本文件,但是当我们在文件管理器explorer对 .INF文件按鼠标右键後,如图inf右键.PNG,在右键菜单上就会出现“安装I”命令,这是因为微软公司已在其操作系统 Windows 中内置提供了 Setup API(可以解释.INF脚本文件),我们只需用文本编辑软件编写 .INF文件,便可完成大部份的安装工作,所以尤其是在软体的大小并不是很大的情况下,安装工作不是很复杂的时候,使用 .INF文件来进行安装工作将会是一个好选择。而且如果要安装设备驱动程序,.INF文件是目前唯一的选择。 可以用 .INF文件创建包括注册表条目和目的目录的自定义软件安装指令。.INF文件可以提供有限的平台独立性,并指定有限的软件依赖性。目前.INF文件最普遍的应用是为安装硬件设备的驱动程序服务的,本文的目的就是介绍 .INF文件的功能、结构、并提供了几个 事例来说明如何用.INF文件,如何扩展.INF文件的用途,比如制作绿色软件,仅供参考。 下面首先给出一个驱动程序的.INF文件的例子,如图usbinfpng.png,是我从Windows2000中抽取出来的用于Win98se的USB存储设备驱动的usbstor.INF文件,删除了大部分内容,紧紧保留了一个基本的.INF文件的框架。 .INF文件的格式 在图usbinfpn...
win2k,XP下用setupapi.dll自动安装Driver 在驱网看到54cndr 写的这篇文章,虽然自己一直都用Installshield,但还是觉得这个也是一个很好的思路,故摘录在此。 用setupapi.dll安装Driver 适用OS: win2k,winXP InstallShiled代码: szProgram = "rundll32.exe"; szCmdLine = "setupapi.dll,InstallHinfSection DefaultInstall 132" + SUPPORTDIR + "netsf.inf"; LaunchAppAndWait(szProgram, szCmdLine, WAIT); 注意: 1、其中DefaultInstll是指INF文件中的安装节,必须替换为自己INF中的INSTALL节名,例如节名是USBCamera.Dev,则代码要要改为: szCmdLine = "setupapi.dll,InstallHinfSection USBCamera.Dev 132" + SUPPORTDIR + "netsf.inf"; 2、SUPPORTDIR是指inf及sys等所有Driver文件所在的路径.你要先把所有Driver文件copy到硬盘,例如你的文件在C:YourDriver, 则SUPPORTDIR在程序中要替换为 "C:\\\\YourDriver\\\\". ------------------------------------------------------------------------------------------------------ 你先在COMMAND DOS命令环境下用打命令方式调试成功后再写程序吧。这样容易排除错误,要注意driver的目录和空格。你还可以去查看rundll32.exe的用法。 调试命令请参考: rundll32.exe setupapi.dll,InstallHinfSection Modem2.NT 132 C:\\YourDriver\\netsf.inf
查看展开后的宏:vc: project   menu->settings     project   settings   dialog     C/C++   tab     category   :   preprocessor     Project   options:     最后加上   /P     rebuild   all,会产生于.cpp同名的.i文件。在这里宏被展开了
在调试USB设备Vista驱动,发现以前在xp下使用正常的驱动在Vista下无法使用。调试发现是IoCallDriver调用失败,很是奇怪。后来想到我的usb设备是进入suspend模式被打开的,可能与此有关。让设备始终不进入suspend后,测试OK了。发现问题在此。可能是vista下usb host及hub驱动与xp下有差异造成的。辛苦了3周了,原来一直不知道问题所在。终于解决了。
[驱动调试]windbg命令 (2007-5-9 18:33)
!analyze -v;r;kv;lmtn;. 一般使用!analyze -v,加上后面两个参数后会显示更加详细的信息.   0: kd> !analyze -v;r;kv;lmtn;.logclose;q************************************************** ****************************** ** Bugcheck Analysis ** *************************************************** *****************************KERNEL_MODE_EXCEPTION_NOT_HANDLED (8e)This is a very common bugcheck. Usually the exception address pinpointsthe driver/function that caused the problem. Always note this addressas well as the link date of the driver/image that contains this address.Some common problems are exception code 0x80000003. This means a hardcoded breakpoint or assertion was hit, but this system was booted/NODEBUG. This is not supposed to happen as developers should never havehardcoded breakpoints in retail code, but ...If this happens, make sure a debugger gets connected, and thesystem is booted /DEBUG. This will let us see why this breakpoint ishappening.Arguments:Arg1: c0000005, The exception code that was not handledArg2: 8054a71c, The address that the exception occurred atArg3: f1a9bb78, Trap FrameArg4: 00000000Debugging Details:------------------EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at "0x%08lx" referenced memory at "0x%08lx". The memory coul...
imjacob 发表于 2006-12-27 20:26:00 声明:本文转载自imjacob博客,原文网址: Detail_RD.Blog_imjacob_5686.html 在C语言中,假设我们有这样的一个函数:int function(int a,int b)调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数。也就是说,计算机不知道怎么给这个函数传递参数,传递参数的工作必须由函数调用者和函数本身来协调。为此,计算机提供了一种被称为栈的数据结构来支持参数传递。栈是一种先进后出的数据结构,栈有一个存储区、一个栈顶指针。栈顶指针指向堆栈中第一个可用的数据项(被称为栈顶)。用户可以在栈顶上方向栈中加入数据,这个操作被称为压栈(Push),压栈以后,栈顶自动变成新加入数据项的位置,栈顶指针也随之修改。用户也可以从堆栈中取走栈顶,称为弹出栈(pop),弹出栈后,栈顶下的一个元素变成栈顶,栈顶指针随之修改。函数调用时,调用者依次把参数压栈,然后调用函数,函数被调用以后,在堆栈中取得数据,并进行计算。函数计算结束以后,或者调用者、或者函数本身修改堆栈,使堆栈恢复原装。在参数传递中,有两个很重要的问题必须得到明确说明:当参数个数多于一个时,按照什么顺序把参数压入堆栈函数调用后,由谁来把堆栈恢复原装在高级语言中,通过函数调用约定来说明这两个问题。常见的调用约定有:stdcall、cdecl、fastcall、thisc...
[VC编程]CEdit框换行问题 (2007-4-30 15:14)
在Edit框中想要手动换行,原先以为加"\n",后来测试发现没有作用.后来才发现原来是要加"\r\n". CString strTemp2; strTemp2 += "\r\n"; UpdateData(FALSE);
方法很多,这里讲解两种比较简单的方法,也是从google上搜索来的。 方法一: CWnd*   pEdit;     pEdit   =   GetDlgItem(IDC_EDIT_ONE);     ASSERT(pEdit   !=   NULL);         HFONT   hFont   =   (HFONT)::GetStockObject(SYSTEM_FIXED_FONT);     CFont*   pFont   =   CFont::FromHandle(hFont);     pEdit->SetFont(pFont);   方法二:  CFont * f;  f = new CFont;  f->CreateFont(22, // nHeight  0, // nWidth  0, // nEscapement  0, // nOrientation  FW_BOLD, // nWeight  TRUE, // bItalic  FALSE, // bUnderline  0, // cStrikeOut  ANSI_CHARSET, // nCharSet  OUT_DEFAULT_PRECIS, // nOutPrecision  CLIP_DEFAULT_PRECIS, // nClipPrecision  DEFAULT_QUALITY, // nQuality  DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily  _T("Arial")); // lpszFac   GetDlgItem(IDC_EDIT_RECEIVE)->SetFont(f);      //IDC_EDIT_RECEIVE是Edit框标号 方法一,方法二其实是类似的,方法二比较好,可以自由创建字体。
[Windows驱动]INF文件 (2007-4-25 19:55)
[驱动设计]INF文件 转自 imjacob 发表于 2007-1-20 15:38:00 INF是Device INFormation File的英文缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,INF文件中包含硬件设备的信息或脚本以控制硬件操作。在INF文件中指明了硬件驱动该如何安装到系统中,源文件在哪里、安装到哪一个文件夹中、怎样在注册表中加入自身相关信息等等。 安装监视器、调制解调器和打印机等设备所需的驱动程序,都是通过INF文件,正是INF的功劳才使得Windows可以找到这些硬件设备的驱动并正确安装。当我们通过“开始→控制面板→添加删除程序→Windows安装程序”来添加系统组件的时候,INF文件将会自动调用。而在其他场合下,则需要在INF文件上点击鼠标右键,然后选择“安装”,你才能顺利安装应用程序。     在C:/Windows/INF文件夹中存放有大量的INF文件。该文件夹一般处在隐含状态,如果你想查看该文件夹,可选择“查看→文件夹选项→查看”,然后在“文件和文件夹”选项下选择“显示所有文件”。   解剖INF文件的结构   INF文件其实是一种纯文本文件,可以用任意一款文本编辑软件来打开进行编辑,如:记事本、写字板等。INF文件有一整套的编写规则,每一个INF文件都是严格按照这些规则来编写的。   *规则一:INF文件是分节的,每一个INF文件有许多的节组成,节名用方括号括起来。这些节名有些是系统定义好的,有一些是用户自定义的。每一个节名最长为255个字符(Windows 2000/XP/2003操作系统中)或28个字符(Windows 98操...
博 主
进入xjl20008的首页
博客名称:Richie
日志总数:11
评论数量:16
访问次数:55651
建立时间:2007-4-25 19:38:00
导 航
公 告
评 论
链 接