自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 收藏
  • 关注

原创 WDK/WinDDK setenv 路径设置

setenv是一个bat文件,他会设置当前build属性,譬如x86 or x64,check or free。本文只记录修改default路径通常,通过WDK的快捷方式调出Build Env时,会跳转到 $installDisk\WinDDk\7600.16385.1 (以7600.16385.1版本为例 )而我们通常希望他能够自动跳转到我们的常用目录,譬如 D:\mydriver

2013-01-07 17:41:17 3521

原创 bus-master dma 注意事项

DMA通常包括system dma和bus-master dma。他们的区别在于system dma是依赖于系统,device本身并没有dma控制传输的能力,而bus-master则相反,device有dma控制传输的能力。通常比较多见的是bus-master dma方式。    DMA的使用,首先在Start device中获取DMA_ADAPTER,透过DMA_ADAPTER提供的ca

2012-12-31 16:46:46 6011

原创 D3 cold for storport miniport

Mark。。。http://msdn.microsoft.com/en-us/library/windows/hardware/hh920421(v=vs.85).aspxA miniport driver calls StorPortInitializePoFxPower to register a storage device with the power manageme

2012-12-31 14:05:07 2496

转载 zz: 在驱动和应用程序间共享内存

ZZ:http://www.cnblogs.com/lzjsky/archive/2010/11/19/1881911.html在不同的场合,很多驱动编写人员需要在驱动和用户程序间共享内存。两种最容易的技术是:  1,应用程序发送IOCTL给驱动程序,提供一个指向内存的指针,之后驱动程序和应用程序就可以共享内存。(应用程序分配共享内存)  2,由驱动程序分配内存页,并映射这

2012-12-31 13:39:18 1004

原创 MDL的使用(一) IoAllocateMdl / MmInitializeMdl

MDL (memory descriptor list)通常用于描述Va对应的物理内存的位置。通常Driver中可以访问的内容包括Next、MdlFlags。WDK中定义了几个常用的宏来访问MDL中的一些变量,包括:MmGetMdlVirtualAddress returns the virtual memory address of the buffer.// 虚拟内

2012-12-31 11:08:12 4153

转载 zz: 设备读写 之 直接方式(Direct I/O)MmGetMdlByteCount/MmGetMdlByteOffset/MmGetMdlVirtualAddress

最近一直在看WDM的驱动,在memory方面有一些不是很清楚,譬如 MDL 的具体结构、使用方法等等。在网络上搜刮一番,了解了MDL的具体使用,主要是MmGetMdlByteOffset这个宏的意义。之前一直认为这个值应该是0。事实并非如此,这个值是一个相对于page start addrss的offset,也就是说Va转为Pa时,并没有从page start address开始,而是从其中的

2012-12-31 10:50:27 2655

转载 CurrentControlSet\Services 子项解释

zz: http://support.microsoft.com/kb/103000CurrentControlSet\Services 子项The Services subkeys under the following registry path contain parametersfor the device drivers, file system drivers,

2012-08-02 17:42:56 6305

原创 hide empty drive in computer folder in register(隐藏空的驱动盘)

win7的folder option中有这么一个选项:hide empty drive in computer folder in register(隐藏空的驱动盘)可以隐藏某些card reader报出来的空的驱动盘(通常是此时没有插卡的状态,但是如果你的card reader支持auto dlink,那么整个device都会从Device manager中消失,也就不会出现空的驱动盘)

2012-08-01 11:14:59 1679

转载 远程桌面退出全屏/不能全屏/全屏切换的技巧

经常用,经常忘,mark下。。。zz from: http://www.lanfeng.net/archives/26883.html 远程桌面退出全屏/不能全屏/全屏切换的技巧退出全屏问:我的电脑远程登录到服务器上并且切换到了全屏状态,全屏后发现桌面顶部没有浮动工具栏了,想退出全屏状态,不知如何退出了,最后,只有重启电脑。想知道如何退出远程桌面的全屏方法?答:退出远程桌面全屏

2012-07-25 14:59:45 72748 5

原创 Full screen检测方法

Windows下经常会遇到这样一个问题,检测是否有应用程序处于全屏状态,如果有,则需要做一些特别动作。笔者尝试过不同的方法,方法一,检测四个角点的hWnd,看他们是否是同一个window,通常对于播放器这种应用程序处于全屏时,会带有一个进度控制条,导致了四个角点属于两个不同的window。方法二,注册Desktop   Toolbars,当有全屏幕程序打开或者关闭的时候都会有ABN_F

2012-07-20 14:54:49 2701

原创 IPP 6.1 sample code中的compile error:'vswprintf' : too few arguments for call

在Ipp 6.1的sample code - Audio-Video-Codecs的compile过程中发现有提示Error:vm_file_win.c(1173): error C2198: 'vswprintf' : too few arguments for callvswprintf是一个MACRO,通过查看vswprintf的定义可以发现,他VC安装目录里有不同的定义,分别是

2012-03-12 15:16:50 2826

转载 zz: C++11中值得关注的几大变化

zz From : http://blog.csdn.net/lanphaday/article/details/6564162赖勇浩(http://laiyonghao.com)声明:本文源自 Danny Kalev 在 2011 年 6 月 21 日发表的《The Biggest Changes in C++11(and Why You Should Care)》一文,

2012-01-30 09:49:05 628

原创 Storport MSI (Message Signaled Interrupts)

最近在学习storport miniport Driver,在看到interrupt时,发现有两种方式,一种是通过HW_INITIALIZATION_DATA (Storport)中的HwInterrupt函数来响应,支持line-based interrupts和message-based interrupts;另外一种是通过PORT_CONFIGURATION_INFORMATION (Sto

2012-01-13 17:20:06 2595

原创 进程间同步(互斥) 以及 同一DLL的不同进程copy共享全局变量

此前遇到一个问题,希望实现一个COM组件,能够被不同的AP调用,同时需要他们保持同步。比较好的方式是采用ATL实现singleton的Com组件,很遗憾,这部分并不熟悉,只是依照codeproject上的sample"葫芦"画了一个瓢。看起来是可以用,大概的流程也清楚,但是说起ATL,根本没看过。     那好吧,既然互斥就可以了,那就挑简单的,实现一个普通的COM组件/DLL,利用进程间互斥

2011-12-09 11:04:33 4136

原创 Dell D380 XP sp3下VS2010经常会crash的问题 (intel graphics driver)

最近开发工具由vs2005转至vs2010,无意中发现vs2010经常crash,基本每天都会发生。绝大部分发生 lock -> unlock 之后。网上查了查,microsoft的网站上也有人反映,解决办法有两个:1,Disable hardware acceleration: Tools -> Options -> General -> Visual Experience2,updat

2011-12-09 10:20:44 2041

原创 利用Virtual Box/ VMware Workstation实现单机调试

最近刚刚学习驱动,对驱动调试这部分很不熟悉,因此希望通过搭建Debug平台来熟悉Windows下的Driver调试。从网上找了不少资料,帮助很大,下面简单介绍下基于Virtual Box / VMware Workstation建立单机调试环境。 1,安装虚拟机,可以是Virtual Box,也可以是VMware WorkStation,这两个都有安装过。Virtual Box的优

2011-11-20 11:44:54 1396

转载 zz:用WinDbg在双机环境下调试驱动程序

zz From :  http://blog.csdn.net/BackStrokeFish/article/details/2205404刚刚开始学习驱动,还希望各位不吝赐教:) 最近一直在学习Windows下驱动开发,尝试过SoftICE调试,可安装上后系统启动(Start NetICE)后,整个系统就死机了,以前在Win2K下安装挺好的,郁闷。所以改成WinDbg调试,发现很

2011-11-20 11:15:38 999

转载 zz: 如何改变PDF文档的背景颜色

zz: http://blog.sina.com.cn/s/blog_4af3b3230100biwt.html       最近在看论文,经常打开PDF文档,但因为背景是白色的,看久了非常刺眼。今天终于找到改变背景颜色的方法,发到这里,和朋友共享。       主菜单->编辑->首选项->辅助工具->替换文档颜色->自定义颜色->页面背景->其它颜色->按下列设置更改:色调:85;饱

2011-11-04 11:41:35 1216

转载 zz: chkdsk 修复磁盘 / U盘错误文件

U盘在传输文件时意外断开,导致有一个文件无论如何都无法删除。Unlocker提醒需要运行chkdsk,于是乎搜索了下他的用法。确实可以修复损坏的U盘。chkdsk基于所用的文件系统,创建和显示磁盘的状态报告。Chkdsk 还会列出并纠正磁盘上的错误。如果不

2011-09-02 10:20:19 2549

原创 UTF-8 转 Unicode

UTF-8 转 Unicode    在编写FTP Client时,发现通过recv获取的数据是采用UTF-8方式进行编码的,直接用Unicode方式进行显示时会发生错误。采用MultiByteToWideChar也无法正确转换(default是Ascii to Unicode。是我的设置问题?没有仔细研究)。    因此学习了下UTF-8的编码原理,参考如下:标准的UTF-8

2011-07-01 16:14:00 1605

原创 Intel Sandy-Bridge H264 encoder GOP setting

Intel Sandy-bridge HW H264 encoder GOP(Group of Pictures)settings参考Intel Media SDK提供的sample code,可以设置H264 Encoder的相关参数: Intel(R) Media SDK Encoding SampleUsage: sample_encode.exe h264|mpeg

2011-06-24 11:29:00 5414

原创 VS2010 使用 Derictshow 时遇到的问题

<br />之前一直采用VS2005,现成的Code直接搬到vs2010,编译时出现如下错误:<br />错误1:<br />1>e:/program files/microsoft visual studio 10.0/vc/atlmfc/include/afxglobals.h(375): error C2143: syntax error : missing ';' before '*'<br />1>e:/program files/microsoft visual studio 10.0/vc

2011-04-22 14:19:00 2804

转载 zz:关于ERROR LNK 2005错误

<br />zz: http://blog.csdn.net/li_007/archive/2008/08/20/2801781.aspx<br /> <br />关于ERROR LNK 2005错误<br />相信很多人对这个错误是一点也不陌生,甚至有些害怕,我也一样。其实自己遇到过这样的问题,也每次都解决了这样的问题,但关键是自己没总结,所以总是再遇到再改,很烦人,查资料也麻烦。现在有时间了总结下。<br />遇到问题我最喜欢F1,所以还是先看MSDN是怎么说的:<br />To fix by chec

2011-04-13 11:19:00 1695

原创 zz:虚函数绑定与调用时机分析

<br />zz: http://bbs.chinaunix.net/archiver/tid-1711337.html<br /> <br />理解虚函数( virtual function )的几个关键点:<br />1.       理解早绑定(early binding)、晚绑定(late binding)。所谓early binding:On compile time,就能明确一个函数调用是对哪个对象的哪个成员函数进行的,即编译时就晓得了确定的函数地址;所谓late binding:O

2011-03-10 17:57:00 1094

原创 USB驱动学习 ---- USB设备每换一个新口,就的重新安装驱动,正常吗?

<br />USB设备每换一个新口,就的重新安装驱动,正常吗? <br />这种情况是因为 USB 设备没有 Serial Number(或Serial Number无效)。所以bus driver 就根据它的位置信息来生成 InstanceID。如果 USB device 指定了有效的 SerialNumber,则系统始终将该设备识别成同一个设备(Instance ID就是SerialNumber)。<br /><br /><br />参考文档:<br />http://blogs.msdn.

2011-01-19 16:23:00 4273

原创 ZZ: VS2005 + DDK6001 环境搭配及编译全过程 (编译错误分析)

<br /><br />一.DDKWirzard+VS2005开发驱动环境配置<br />DDKWirzard是Oliver Schneider写的一个驱动开发辅助插件,支持windows2000 XP 2003,VS.net 2003 VS2005等。前提是你安装了VS和DDK或IFS<br />具体使用方法:<br />1.下载DDKWirzard,网址http://ddkwizard.assarbad.net/<br />ddkwizard_setup.exe<br />ddkbuild_bat.zi

2010-07-14 10:12:00 2537

转载 zz:基于 OpenCV 的矩阵运算 (CvMat)

<br />ZZ from: http://blog.csdn.net/schoolers/archive/2009/11/02/4758838.aspx综述:OpenCV有针对矩阵操作的C语言函数. 许多其他方法提供了更加方便的C++接口,其效率与OpenCV一样.OpenCV将向量作为1维矩阵处理.矩阵按行存储,每行有4字节的校整.分配矩阵空间:CvMat* cvCreateMat(int rows, int cols, int type);<br />type: 矩阵元素类型. 格式为CV_<

2010-06-11 14:21:00 3721

原创 VC/MFC 将 数据/资源 放入resource中 (从resource加载 数据/资源)

    很多时候,我们程序(.exe,.dll)需要配合外部资源进行操作,譬如笔者有在写得 固件更新程序(FW update tool),需要将固件程序通过tool烧录到device中去。这其中通常我们会写一个genera的tool,可以support不同的固件程序(FW),在update时只需要指定某一个固件程序即可。不过有些时候,我们希望客户不要看到我们的固件程序,希望将某个或者某些固件程序包进程序中(.exe,.dll)。这样做还可以使得我们的应用程序看起来很简洁,单个档案即可。    这就需要我们将

2010-06-02 19:57:00 5526

转载 zz:VC CMenu / 菜单操作

实现右键菜单时,需要实现单选项,查msdn没能解决,只好求助网络。 ZZ from:http://blog.sina.com.cn/s/blog_4c1934d5010009k7.html 1. 取消右键系统菜单在PreCreateWindow函数中改变设置样式:cs.style&=~WS_SYSMENUCREATESTRUCT的具体结构如下:typedef s

2010-04-06 17:55:00 2673

转载 zz:Intel IPP (为什么很便宜,呵呵)

Intel的IPPIPP(Intel® Integrated Performance Primitives,英特尔(R) 集成性能原件)一直有所听闻,这次OpenCV研讨会上,IPP的Chief Architect李信弘(Shinn-Horng LEE)也来参加。跟他了解了一下IPP:1. Intel不靠IPP赚钱(价格199USD),开发IPP的目的是为了发挥CPU的性能。销售I

2010-04-06 15:36:00 4186

原创 Windows Live Message (MSN) 登陆错误解决办法 -- windows live communications platform 遇到问题需要关闭

最近不知道安装了什么软件之后,Windows Live Message一直无法正常工作。登陆上去几秒钟后出现提示:“windows live communications platform 遇到问题需要关闭” 截图如下图所示: 卸载、重新安装了很多次,没有任何效果。 只好google,从别人那里学习下。果然功夫不负有心人,顺利找到了解决问题的方法。 1,找到

2010-04-06 15:24:00 3434

转载 zz:CEdit & CRichEdit 使用技巧

zz from: http://www.my1984.com.cn/article.asp?id=830注:m_edit1代表ID为IDC_EDIT1的CEdit控件的control类型的变量m_richedit1代表ID为IDC_RICHEDIT1的CRichEditCtrl控件的control类型的变量----------------------------------------

2010-01-14 14:28:00 2242

原创 CRichEditCtrl 获取单行字符串长度

对于多行RichEdit控件,CRichEditCtrl 提供了获取每行字符长度的函数:LineLength()定义如下:Retrieves the length of a line in a rich edit control. int LineLength( int nLine = -1 ) const;ParametersnLineSpecifies

2010-01-14 10:58:00 2607

原创 WM_COPYDATA 进程间传递数据(以字符串为例)

 WM_COPYDATA 进程间传递数据(以字符串为例) Win32下很多时候,不同的进程之间需要通信,message是最常用的一种。可以通过SendMessage来向某个进程发送消息,前提是需要获取此进程的handle。SyntaxLRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wPara

2010-01-05 18:16:00 5543 1

转载 zz: 遍历 USB devcie,读取设备描述符 device descriptor

 理论:    对于USB接口的设备,现在越来越多了。本篇我们就通过获取一个USB扫描仪设备中的序列号,来介绍如何获取usb设备的一些硬件信息。对于usb设备都是采用HCD0,HCD1,HCD2,HCD3等符号描述的。如下图:因此,有了这个名字,我们就可以使用CreateFile来打开usb设备。然后使用DeviceIoControl函数与usb设备通讯了。HCD是host controlle

2009-11-19 17:59:00 7879 1

转载 ZZ:ASF/WMV Profile相关参数设置

 设置(Profile) 一个设置是一个ASF的配置(configuration)的描述数据集合。一个设置必须至少包含一个流的配置设置。 流信息 设置中的流信息包含流的比特率(bit rate),缓冲窗口和媒体属性的设置。视频和音频的流信息准确描述了文件中的媒体配置,包括压缩数据使用的编码和解码器(如果有的话)。 一个设置也包含很多创建ASF文件时使用的ASF的特性,这包括互斥、媒体优先级、带宽共

2009-11-13 15:53:00 2906

转载 zz: 解决Visual C++ 编译器中混合 .c 文件时收到 C1853 预编译头错误的方法

解决Visual C++ 编译器中混合 .c 文件时收到 C1853 预编译头错误的方法2008-07-25 20:48:02 旧日重来当 Visual C++ 项目启用了预编译头 (Precompiled header) 功能时,如果项目中同时混合有 .c 和 .cpp 源文件,则可能收到 C1853 编译器错误:fatal error C1853: pjtname.pch pr

2009-10-26 11:10:00 1014

转载 zz : A LNK2005 error occurs when the CRT library and MFC libraries are linked in the wrong order in Visual C++ ---- nafxcw.lib(a

zz From msdn Article ID: 148652 - Last Review: March 13, 2008 - Revision: 7.1A LNK2005 error occurs when the CRT library and MFC libraries are linked in the wrong order in Visual C++View produ

2009-10-10 10:52:00 1156

原创 VC 获取操作系统语言信息 Language Sublanguage

 通过函数GetSystemDefaultLCID();GetSystemDefaultLanguageID(); 可以获取系统的default language信息。 From MSDN: The GetSystemDefaultLCID function retrieves the system default locale identifier. LC

2009-09-17 17:31:00 4902

原创 利用SHBrowseForFolder 产生 路径/文件夹 选择对话框 显示 创建文件夹

前一篇文章中讲到了,如何通过SHBrowserForFolder来产生 路径/文件夹 选择对话框。很多时候,我们除了需要选择文件夹之外,还希望可以随时随地的创建新的文件夹,这就要求选择的同时也可以创建,SHBrowserForFolder提供了这样的选项在产生 路径/文件夹 选择对话框时,我们可以通过设置BROWSEINFO的ulFlags来显示创建新文件夹的按钮,以便于随时随地创

2009-08-18 11:36:00 5210 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除