windows驱动怎么写
1.什么是windows驱动编程
Linux的内核编程大家都是比较熟悉的。
而Windows内核编程则不大为一般读者所熟悉。常常有这样的问题: “你又没有Windows的代码,你如何搞内核编程?” “除了微软的人,难道还有人做Windows内核吗?” “Windows内核编程有用吗?” 其实Windows内核编程不但有用,而且常用。
很多我们每天都使用的软件,就毫无疑问的使用了Windows内核编程的技术。最典型的就是实时监控的杀毒软件。
此外还有防火墙、虚拟光驱、以及90%的驱动程序。这些程序的有一个共同的特点,他们的一部分组件,是作为Windows的一部分,能对 Windows上运行的所有的应用程序起作用。
因此内核编程的应用,往往给传统软件带来更强的功能,实现技术上的飞跃。 举个例子。
我们常常听说,对文件进行加密,可以使文档更加安全。对文件加密并不需要任何内核组件。
我们可以写一个应用程序,读入文件,加密数据,然后重写为一个加密文件。解密也可以同样如此。
但是实际上这并不满足一般的用户需求。对一个公司的员工来说,那些“重要的文档”很可能就是每天工作所用的文件。
想象一下,他必须要每天从服务器上下载加密的文件,然后用解密工具解密。然后用Office开始工作。
工作完毕后,用加密工具加密,再上传,然后删除工作文档。且不说大部分时间文档是以解密的方式保存在硬盘上的不安全性,这个工作流程是可以接受的吗?没有人会接受的。
比较“人性化”的方式就是让Office可以直接打开已经加密的文档。保存的时候,直接就保存成加密的文档。
硬盘上,这个文档始终是加密的。而且对合法的用户透明。
对非法的用户,则只能看见密文,从而无法编辑也无法阅读。而且也不仅仅Office,还有AutoCAD、Visual Studio、Photoshop等等用户可能用于编辑机密文件的所有的工具。
这是可以实现的吗?如果我们不能去修改Office和其他的工作软件。 这当然是可以实现的。
既然我们编写Windows内核程序,当然可以让Windows的文件系统从硬盘读取文件的时候,对特定的进程进行特别的解密。等这些软件读取到数据的时候,它们读到的已经是正常的数据了。
这个过程和实时扫描病毒的原理是一样的,使用一个文件过滤驱动程序。这就是读者可能已经听到过的文件透明加密技术。
在和《天书夜读:从汇编语言到Windows内核编程》一书同一系列的《寒江独钓——Windows内核编程与信息安全》(预计明年出版)中,对键盘过滤、硬盘过滤、文件过滤、网络过滤等安全相关的内核编程,都有详尽的讲解和例子。 内核编程的另一个特点是:这些代码运行在R0级。
R0级别是最高特权级别。对CPU有完全控制的能力。
这非常的适合一些安全软件,当然也适合做破坏的工作。因为内核程序有最高(也就是根)权限,这样的技术在安全领域(或者破坏领域)被称为rootkit技术。
rootkit技术是当前安全领域最热门的技术之一。 许多病毒使用了rootkit技术。
用来隐藏病毒文件,窃取密码、发送攻击包等等。rootkit病毒感染后极难清除,在感染前提前防范是最有效的办法。
Windows内核确实没有公开源代码。但是MS提供Windows内核程序的开发包:WDK。
WDK实际上主要用于开发驱动程序。而驱动程序基本上都是内核程序。
WDK提供的头文件以及部分源代码,实际上就是Windows内核的代码的一部分。有部分驱动程序(比如FAT32文件系统)的代码是完全公开的。
我们也可以在这里看到Windows内核开发者的代码风格。同时,微软也提供了所有Windows版本的符号表在网上供研究者下载。
并提供了功能无比强大的调试器WinDbg。有了它们,你就可以轻松的调试Windows内核了。
无论是你自己写的代码的部分,还是Windows内核开发者们编写的部分。虽然看到的是汇编语言,但是函数名和全局变量名都是存在的。
而且,所有的这些(WDK、WinDBG,符号表)都是免费的。 那您还在等什么呢?欢迎进入Windows内核编程的世界! 本文来自CSDN博客,转载请标明出处: ,我就知道这么点,大家可以补充。 我用的是9052,还是那句话,用的人多,技术成熟,遇到问题了可以到bbs发问。
我就喜欢捡现成的,不服你就说嘛!!!! 9052的机理比较简单,它内部提供了两种配置寄存器。一种叫做pci configuration registers ,这就是我们常说的pci配置空间另外一个叫 local configuration registers,它提供了配置本地端的一些信息。
这里提到了本地端,说一说。其实9052就相当于一个桥,连接pci卡的本地端的芯片到pci总线上,将pci指令例如读写某个寄存器、内存、io翻译到本地端。
9052本地端。
4.用C++写驱动
如果你要写WINDOWS的驱动,必须要用DDK:Driver Development Kits for Windows。单独从MSDN下载后安装。
Linux的需要安装Core Development,不过LINUX系统开源驱动不少,许多都可以作为经典样例参考。有了Core Development库后,直接用g++编程。
幸运的是,上述两种编译器都支持C++,可能这一点你会觉得很舒服。尽管个人品味认为C++是垃圾。我的一个美国朋友是专门为海军军方的一个专业程序员,从大学毕业一直做到退休,他的一句名言是God Bless C! 他用UNIX+C+SH,一用几十年。
usb驱动怎么写
1. 怎么做usb的驱动
你用的是笔记本吗?从本人的维修经验来看无法识别,一是电脑无法识别USB设备。
二是USB设备不能被电脑识别。我们先要判断是电脑的问题还是USB设备的问题。我们可以用其他的USB设备来测试电脑有没有问题。
如果是电脑的问题。你的电脑是不是被病毒破坏。USB2.0的驱动是不是安装完好或版本不兼容。有没有软件冲突(先解决软件问题)一般情况出来一个安装驱动程序的提示。
如果是电脑硬件问题。我们先用万用表测量USB的四条线(红+5V 白DATA-数据- 绿DATA-数据- 黑 地线)万用表红表笔对地黑表笔测量(白线和渌线。的阻值不相差50欧,这两条线都是从南桥出来的,如果阻值变化过大则可以判断是南桥问题。说明USB在南桥内部的模块烧毁。
在来看看外面的USB设备现在很多都要驱动程序。即使没有驱动程序也不会出来无法识别的情况。出现无法识别的情况有几种。一USB数据线不通或接触不良一般都接触那个地方因为时间长可能里面生锈有胀东西还可能有东西在里面挡住了。二 USB线不通。红线不通什么反应也不会有,白线不通无法识别。绿线不通也是无法识别。白线和绿线不可以接反。也是无法识别。黑线不通也没有反应,这个测量的方法上面已经讲到。
注意.红线5V电压低也可导致无法识别.
三 USB机板内部问题。1晶振不良,不起振。2晶振电容不良(20P)有两个
3复位电容电阻不良。复位电压偏底偏高 4三端IC不良为IC提供电压不够5.
主IC不良
祝你好运!
2. 电脑自带的USB驱动上面写的什么
是不想用还是其它问题,如果涉及安全问题建议屏蔽usb端口
釜底抽薪:屏蔽USB控制器
通过修改BIOS设置,可以直接屏蔽主板上的USB控制器,这个方法几乎适用于所有计算机。这里笔者以目前使用最为广泛的Award BIOS为例进行说明。启动计算机时按键盘的Del键进入BIOS设置界面,用方向键定位到“Integrated Peripherals”项,按回车打开,把其中“USB Controller”设置为“Disabled”。
另外为了防止非法用户更改该设置,请务必加上BIOS密码,然后保存退出,计算机会自动重启,以后计算机上所有的USB接口即告失效。
这个方法虽然简单有效,但副作用也非常明显,因为在屏蔽USB接口之后,不但闪存盘之类的移动存储设备不能用,而且连USB接口的外设,例如USB鼠标、键盘、打印机等都将无法使用,很不方便。
温柔一刀:修改注册表停用USB驱动
在“开始”/“运行”中输入“Regedit”,按回车即可打开注册表编辑器,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor”主键,双击名为“Start”的DWORD值,将“数值数据”改为4。
注意右边的“基数”默认为“十六进制”,该设置切勿更改,单击“确定”即可修改完成。
现在试试看,插上闪盘,闪盘的工作指示灯不亮,而系统也没有任何反应,这证明我们的修改成功了。为了防止非法用户用同样的方法解锁,最好把Regedit.exe程序改名或者直接删除。
小提示:“Start”值是一个控制USB存储设备驱动程序工作状态的开关,可设为以下三种值,设为2时表示自动,设为3时表示手动(这是默认设置),设为4则为停用
3. 如何写一个Android USB接口驱动
说到 android 驱动是离不开 Linux 驱动的。
Android 内核采用的是 Linux2.6 内核 (最近Linux 3.3 已经包含了一些 Android 代码)。但 Android 并没有完全照搬 Linux 系统内核,除了对Linux 进行部分修正,还增加了不少内容。
android 驱动 主要分两种类型:Android 专用驱动 和 Android 使用的设备驱动(linux)。 Android 专有驱动程序: 1)Android Ashmem 匿名共享内存; 为用户空间程序提供分配内存的机制,为进程间提供大块共享内存,同时为内核提供回收和管理这个内存。
2)Android Logger 轻量级的LOG(日志) 驱动; 3)Android Binder 基于 OpenBinder 框架的一个驱动; 4)Android Power Management 电源管理模块; 5)Low Memory Killer 低内存管理器; 6)Android PMEM 物理内存驱动; 7)USB Gadget USB 驱动(基于 gaeget 框架); 8)Ram Console 用于调试写入日志信息的设备; 9)Time Device 定时控制设备; 10)Android Alarm 硬件时钟; Android 上的设备驱动: 1)Framebuff 显示驱动; 2)Event 输入设备驱动; 3)ALSA 音频驱动; 4)OSS 音频驱动; 5)v412摄像头:视频驱动; 6)MTD 驱动; 7)蓝牙驱动; 8)WLAN 设备驱动; Android 专有驱动程序 1.Android Ashmem 为用户空间程序提供分配内存的机制,为进程间提供大块共享内存,同时为内核提供回收和管理这个内存。 设备节点:/dev/ashmen .主设备号 10. 源码位置: include/linux/ashmen.h Kernel /mm/ashmen.c 相比于 malloc 和 anonymous/named mmap 等传统的内存分配机制,其优势是通过内核驱动提供了辅助内核的内存回收算法机制(pin/unoin) 2.Android Logger 无论是底层的源代码还上层的应用,我们都可以使用 logger 这个日志设备看、来进行调试。
设备节点: /dev/log/main /dev/log/event /dev/log/radio 源码位置:include/linux/logger.h include/linux/logger.c 3.Android Binder IPC Binder 一种进程间通信机制。他的进程能够为其它进程提供服务 ----- 通过标准的 Linux 系统调用 API。
设备节点 :/dev/binder 源码位置:Kernel/include/linux/binder.h Kernel/drivers/misc/binder.c 4.Android Power Management 一个基于标准 linux 电源管理的轻量级 Android 电源管理系统,在 drivers/android/power.c kernel/power/ 5.Low Memory Killer 它在用户空间中指定了一组内存临界值,当其中某个值与进程描述中的 oom_adj 值在同一范围时,该进程将被Kill掉(在parameters/adj中指定oome_adj 的最小值)。它与标准的Linux OOM机制类似,只是实现方法不同 源码位置:drivers/misc/lowmemorykiller.c 6.Android PMEM PMEM 主要作用就是向用户空间提供连续的物理内存区域。
1.让 GPU 或 VPU 缓冲区共享 CPU 核心。 2.用于 Android service 堆。
源码位置:include/linux/android_pmem.h drivers/android/pmem.c 7.USB Gadget 基于标准 Linux USB gaeget 驱动框架的设备驱动。 源码位置:drivers/usb/gadet/ 8.Ram Console 为了提供调试功能,android 允许将调试日志信息写入这个设备,它是基于 RAM 的 buffer. 源码位置: drivers/staging/android/ram_console.c 9.Time Device 定时控制,提供了对设备进行定时控制的功能。
源码位置:drivers/staging/android/timed_output.c(timed_gpio.c) 10.Android Alarm 提供一个定时器,用于把设备从睡眠状态唤醒,同时它还提供了一个即使在设备睡眠时也会运行的时钟基准。 设备节点:/dev/alarm 源码位置:drivers/trc/alarm.c Android 设备驱动 1. Framebuffer 帧缓存设备 Framebuffer 驱动在 Linux 中是标准的显示设备的驱动。
对于 PC 系统,它是显卡的驱动 ; 对于嵌入式 SOC 处理器系统,它是 LCD 控制器或者其他显示控制器的驱动。它是一个字符设备,在文件系统中设备节点通常是 /dev/fbx 。
每个系统可以有多个显示设备 , 依次用 /dev/fbO 、/dev/fb l 等来表示。在 Android 系统中主设备号为 29 ,次设备号递增生成。
Android 对 Framebuffer 驱动的使用方式是标准的 , 在 / dev / graphie / 中的 Framebuffer 设备节点由 init 进程自动创建 , 被 libui 库调用 。 Android 的 GUI 系统中 , 通过调用 Framebuffer 驱动的标准接口,实现显示设备的抽象。
Framebuff的结构框架和实现 : linux LCD驱动(二)--FrameBuffer Linux LCD驱动(四)--驱动的实现 2.Event输入设备驱动 Input 驱动程序是 Linux 输入设备的驱动程序 , 分为游戏杆 (joystick) 、鼠标 (mouse 和 mice)和事件设备 (Event queue)3 种驱动程序。其中事件驱动程序是目前通用的程序,可支持键盘 、鼠标、触摸屏等多种输入设备。
Input 驱动程序的主设备号是 l3 ,每一种 Input 设备从设备号占 用5 位 , 3 种从设备号分配是 : 游戏杆 0 ~ 61 ; Mouse 鼠标 33 ~ 62 ; Mice 鼠标 63 ; 事件设备 64 ~ 95 ,各个具体的设备在 misc 、touchscreen 、keyboard 等目录中。 Event 设备在用户空问使用 read 、ioctl 、poll 等文件系统的接口操作, read 用于读取输入信息, ioctl 用于获取和设置信息, poll 用于用户空间的阻塞,当内核有按键等中断时,通过在中断中唤醒内核的 poll 实现。
。
4. 怎样写Linux下的USB设备驱动程序
写一个USB的驱动程序最 基本的要做四件事:驱动程序要支持的设备、注册USB驱动程序、探测和断开、提交和控制urb(USB请求块) 驱动程序支持的设备:有一个结构体struct usb_device_id,这个结构体提供了一列不同类型的该驱动程序支持的USB设备,对于一个只控制一个特定的USB设备的驱动程序来说,struct usb_device_id表被定义为:/* 驱动程序支持的设备列表 */ static struct usb_device_id skel_table [] = { { USB_DEVICE(USB_SKEL_VENDOR_ID, USB_SKEL_PRODUCT_ID) }, { } /* 终止入口 */ }; MODULE_DEVICE_TABLE (usb, skel_table); 对 于PC驱动程序,MODULE_DEVICE_TABLE是必需的,而且usb必需为该宏的第一个值,而USB_SKEL_VENDOR_ID和 USB_SKEL_PRODUCT_ID就是这个特殊设备的制造商和产品的ID了,我们在程序中把定义的值改为我们这款USB的,如:/* 定义制造商和产品的ID号 */#define USB_SKEL_VENDOR_ID 0x1234#define USB_SKEL_PRODUCT_ID 0x2345 这两个值可以通过命令lsusb,当然你得先把USB设备先插到主机上了。
或者查看厂商的USB设备的手册也能得到,在我机器上运行lsusb是这样的结果:Bus 004 Device 001: ID 0000:0000 Bus 003 Device 002: ID 1234:2345 Abc Corp. Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 得到这两个值后把它定义到程序里就可以了。注册USB驱动程序:所 有的USB驱动程序都必须创建的结构体是struct usb_driver。
这个结构体必须由USB驱动程序来填写,包括许多回调函数和变量,它们向USB核心代码描述USB驱动程序。创建一个有效的 struct usb_driver结构体,只须要初始化五个字段就可以了,在框架程序中是这样的:static struct usb_driver skel_driver = { .owner = THIS_MODULE, .name = "skeleton", .probe = skel_probe, .disconnect = skel_disconnect, .id_table = skel_table,}; 探测和断开:当 一个设备被安装而USB核心认为该驱动程序应该处理时,探测函数被调用,探测函数检查传递给它的设备信息,确定驱动程序是否真的适合该设备。
当驱动程序因 为某种原因不应该控制设备时,断开函数被调用,它可以做一些清理工作。探测回调函数中,USB驱动程序初始化任何可能用于控制USB设备的局部结构体,它 还把所需的任何设备相关信息保存到一个局部结构体中,提交和控制urb:当驱动程序有数据要发送到USB设备时(大多数情况是在驱动程序的写函数中),要分配一个urb来把数据传输给设备: /* 创建一个urb,并且给它分配一个缓存*/ urb = usb_alloc_urb(0, GFP_KERNEL); if (!urb) { retval = -ENOMEM; goto error; } 当urb被成功分配后,还要创建一个DMA缓冲区来以高效的方式发送数据到设备,传递给驱动程序的数据要复制到这块缓冲中去: buf = usb_buffer_alloc(dev->udev, count, GFP_KERNEL, &urb->transfer_dma); if (!buf) { retval = -ENOMEM; goto error; } if (copy_from_user(buf, user_buffer, count)) { retval = -EFAULT; goto error; } 当数据从用户空间正确复制到局部缓冲区后,urb必须在可以被提交给USB核心之前被正确初始化: /* 初始化urb */ usb_fill_bulk_urb(urb, dev->udev, usb_sndbulkpipe(dev->udev, dev->bulk_out_endpointAddr), buf, count, skel_write_bulk_callback, dev); urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; 然后urb就可以被提交给USB核心以传输到设备了: /* 把数据从批量OUT端口发出 */ retval = usb_submit_urb(urb, GFP_KERNEL); if (retval) { err("%s - failed submitting write urb, error %d", __FUNCTION__, retval); goto error; } 当urb被成功传输到USB设备之后,urb回调函数将被USB核心调用,在我们的例子中,我们初始化urb,使它指向skel_write_bulk_callback函数,以下就是该函数:static void skel_write_bulk_callback(struct urb *urb, struct pt_regs *regs) { struct usb_skel *dev; dev = (struct usb_skel *)urb->context; if (urb->status && !(urb->status == -ENOENT || urb->status == -ECONNRESET || urb->status == -ESHUTDOWN)) { dbg("%s - nonzero write bulk status received: %d", __FUNCTION__, urb->status); } /* 释放已分配的缓冲区 */ usb_buffer_free(urb->dev, urb->transfer_buffer_length, urb->transfer_buffer, urb->transfer_dma); } 有时候USB驱动程序只是要发送或者接收一些简单的数据,驱动程序也可以不用urb来进行数据的传输,这是里涉及到两个简单的接口函数:usb_bulk_msg和usb_control_msg ,在这个USB框架程序里读操作就是这样的一个应用:/* 进行阻塞的批量读以从设备获取数据 */ retval = usb_bulk_msg(dev->udev, usb_rcvbulkpipe(dev->udev, dev->bulk_in_endpointAddr), dev->bulk_in_buffer, min(dev->bulk_in_size, count), &count, HZ*10); /*如果读成功,复制到用户空间 */ if (!retval) { if (copy_to_user(buffer, dev->bulk_in_buffer, count)) retval = -EFAULT; else retval = count; } usb_bulk_msg接口函数的定义如下:int usb_bulk_msg(struct usb_device *usb_dev,unsigned int pipe,void *data,int len,。
驱动是怎么写的
1. 怎么写驱动
这个可是一个艰巨的工程,计算器的驱动都是用计算机语言写的,想学习写东西,那得从最简单的C C++ JAVA BASIC等等一套的配合,可只要精通一样就行,如果自学写驱动,那你就是天才了,基础WINDOS的系统内核是C语言所写,那么你学一圈了之后还是要用C语言来写,驱动也是一样,不过那手法得老高了,有些人学了很久的计算机语言,做出来的东西都不知道干嘛的,所以这个手法出手就得年薪十万左右。
所以这是一条漫长的艰辛道路,我曾经也弄过一阶段,但这东西收益周期太长了,半路出家况且没人带你的话,那几乎是没什么发展的。
2. 驱动是什么意思啊
一、概念
驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。有了此信息,计算机就可以与设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。
二、
驱动程序简介
驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备英特尔 极芯显卡驱动程式的信息。有了此信息,计算机就可以与设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。操作系统不同,硬件的驱动程序也不同,各个硬件厂商为了保证硬件的兼容性及增强硬件的功能会不断地升级驱动程序。如:Nvidia显卡芯片公司平均每个月会升级显卡驱动程序2-3次。驱动程序是硬件的一部分,当你安装新硬件时,驱动程序是一项不可或缺的重要元件。凡是安装一个原本不属于你电脑中的硬件设备时,系统就会要求你安装驱动程序,将新的硬件与电脑系统连接起来。驱动程序扮演沟通的角色,把硬件的功能告诉电脑系统,并且也将系统的指令传达给硬件,让它开始工作。SetPoint 6.30 安装 1格当你在安装新硬件时总会被要求放入"这种硬件的驱动程序",很多人这时就开始头痛。不是找不到驱动程序的盘片,就是找不到文件的位置,或是根SetPoint 6.30 安装 11格本不知道什么是驱动程序。比如安装打印机这类的硬件外设,并不是把连接线接上就算完成,如果你这时候开始使用,系统会告诉你,找不到驱动程序。怎么办呢?参照说明书也未必就能顺利安装。其实在安装方面还是有一定的惯例与通则可寻的,这些都可以帮你做到无障碍安装。
在Windows系统中,需要安装主板、光驱、显卡、声卡等一套完整的驱动程序。如果你需要外接别的硬件设备,则还要安装相应的英特尔管理引擎驱动程序,如:英特尔 管理引擎组件外接游戏硬件要安装手柄、方向盘、摇杆、跳舞毯等的驱动程序,外接打印机要安装打印机驱动程序,上网或接入局域网要安装网卡、Modem甚至ISDN、ADSL的驱动程序。
3. 驱动是什么东西啊
驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。
有了此信息,计算机就可以与设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。
操作系统不同,硬件的驱动程序也不同,各个硬件厂商为了保证硬件的兼容性及增强硬件的功能会不断地升级驱动程序。如:Nvidia 显卡芯片公司平均每个月会升级显卡驱动程序2-3次。
驱动程序是硬件的一部分,当你安装新硬件时,驱动程序是一项不可或缺的重要元件。凡是安装一个原本不属于你电脑中的硬件设备时,系统就会要求你安装驱动程序,将新的硬件与电脑系统连接起来。
驱动程序扮演沟通的角色,把硬件的功能告诉电脑系统,并且也将系统的指令传达给硬件,让它开始工作。 当你在安装新硬件时总会被要求放入“这种硬件的驱动程序”,很多人这时就开始头痛。
不是找不到驱动程序的盘片,就是找不到文件的位置,或是根本不知道什么是驱动程序。比如安装打印机这类的硬件外设,并不是把连接线接上就算完成,如果你这时候开始使用,系统会告诉你,找不到驱动程序。
怎么办呢?参照说明书也未必就能顺利安装。其实在安装方面还是有一定的惯例与通则可寻的,这些都可以帮你做到无障碍安装。
在Windows系统中,需要安装主板、光驱、显卡、声卡等一套完整的驱动程序。如果你需要外接别的硬件设备,则还要安装相应的驱动程序,如:外接游戏硬件要安装手柄、方向盘、摇杆、跳舞毯等的驱动程序,外接打印机要安装打印机驱动程序,上网或接入局域网要安装网卡、Modem甚至ISDN、ADSL的驱动程序。
说了这么多的驱动程序,你是否有一点头痛了。下面就介绍Windows系统中各种的不同硬件设备的驱动程序,希望能让你拨云见日。
驱动程序分类 在Windows 9x下,驱动程序按照其提供的硬件支持可以分为:声卡驱动程序、显卡驱动程序、鼠标驱动程序、主板驱动程序、网络设备驱动程序、打印机驱动程序、扫描仪驱动程序等等。为什么没有CPU、内存驱动程序呢?因为CPU和内存无需驱动程序便可使用,不仅如此,绝大多数键盘、鼠标、硬盘、软驱、显示器和主板上的标准设备都可以用Windows自带的标准驱动程序来驱动,当然其它特定功能除外。
如果你需要在Windows系统中的DOS模式下使用光驱,那么还需要在DOS模式下安装光驱驱动程序。多数显卡、声卡、网卡等内置扩展卡和打印机、扫描仪、外置Modem等外设都需要安装与设备型号相符的驱动程序,否则无法发挥其部分或全部功能。
驱动程序一般可通过三种途径得到,一是购买的硬件附带有驱动程序;二是Windows系统自带有大量驱动程序;三是从Internet下载驱动程序。最后一种途径往往能够得到最新的驱动程序。
供Windows 9x使用的驱动程序包通常由一些.vxd(或.386)、.drv、.sys、.dll或.exe等文件组成,在安装过程中,大部分文件都会被拷贝到“Windows\ System”目录下。 Windows怎样知道安装的是什么设备,以及要拷贝哪些文件呢?答案在于.inf文件。
.inf是从Windows 95时代开始引入的一种描述设备安装信息的文件,它用特定语法的文字来说明要安装的设备类型、生产厂商、型号、要拷贝的文件、拷贝到的目标路径,以及要添加到注册表中的信息。通过读取和解释这些文字,Windows便知道应该如何安装驱动程序。
目前几乎所有硬件厂商提供的用于Windows 9x下的驱动程序都带有安装信息文件。事实上,.inf文件不仅可用于安装驱动程序,还能用来安装与硬件并没有什么关系的软件,例如Windows 98支持“Windows更新”功能,更新时下载的系统部件就是利用.inf文件来说明如何安装该部件的。
屏驱动怎么写
1. 如何写入液晶显示器驱动程序
1。人的面部掉色什么意思?关机了还要亮点?还是说关机的瞬间会出现亮点?听你的描述我揣测应该是你的主板(也就是你说的驱动板了)出了问题。如果是显示器主板出了问题,还比较好解决,如果是液晶面部出了问题,那就建议你不要修了,因为面板的维修成本太高。
2。你给的驱动板号,这个仅仅是个产品的ID号码,对一般的用户没有什么意义,这个是给专业人士方便识别产品用的一个编码,因为工厂中很多驱动板都长一个样。就像我们读中小学的时候会在自己的课本上写好名字以便自己能认识自己的课本一个道理。
3。及时你能拿到AOC177S的驱动程序,你也不可能写进你的显示器中,因为这个程式是要通过专门的烧录工具才可以写的,你没有对应的烧录工具就没有办法写程式。而且这个AOC177S的显示器可能会用到几家scaler厂商的IC,不同的scaler的程式也不一样,对应的烧录工具也不一样,这个就有点像单片机一样,不知道你玩过单片机嘛,要是玩过,就一定可以理解。
4建议你再送到维修的地方重新选择一块和你液晶面板兼容的驱动板,注意这个驱动板只要能显示出画面就表示一定有驱动程序,没有驱动程序是点不起来的。如果画面显示不正常就不要买维修站的板子,不要听他们忽悠说回去换驱动程式。驱动程序和板子是一一对应的不存在换驱动程式的说话。
2. 液晶电视万能驱动板怎么写程序
需要准备一个U盘就可以更换所有的LVDS接口的液晶屏程序。
U盘升级方法:
把屏所对应的程序复制到U盘中
把U盘插到板上的USB口上
接上按键板,按住按键板上的任意一个按键再通电,直到看到按键板上的指示灯出现红绿交替闪烁后,再松开按键,直到指示灯闪烁结束后,拔掉电源,再拔掉U盘就OK了,重新通电即可.
看你选择用哪种方式刷程序,可以用USB接口,25针并口,U盘等,像你说的V29我们通常用U盘写(如果板上没USB接口就用自制的转接口(一端插U盘一端连接在板上,也就是4针的通常为兰色的接口。不要说找不到哦,板上4针的接口不多且还标明了的)写)按照你这屏的的型号先拷个M190A1程序到U盘,先插上U盘,再给板供电,当显示灯红绿交替闪烁时就说明正在写程序,当显示灯闪烁的频率加快了时就已经写好了,此时先断电,再拔U盘,之后就可以全部连上看图像对不对了(要连信号线,看有无干扰,非灯管原因引起的图像抖动,分辨率对不对等)。
至此,在写完程序后全部连接上时是要将驱动板、驱屏线、升压板、灯管线及按键上的显示灯(按键可以不要,但显示的状态灯一定要要)连接好(不要把屏线插错了),将板上电压跳到5V,要跳5V哦。
注意,刷好程序连接了全套的东西时在通电瞬间准备好拔电,防止因屏内的短路或因插屏线没插好引起的短路(甚至拿屏线时不小心的粗心大意拿成了反双八的屏线了)乐华板的好处就在这里,特别是PC板在通电很短的短时间内如果显示灯颜色不正常立即断电是绝大多数情况下可以避免烧板或烧屏的
3. stc51单片机彩屏驱动程序怎么写
武汉 谷鑫科技基于STC单片机彩屏驱动程序实例部分展示,篇幅有限 AUXR = 0x8e;//////////////////////////////////注意增加该语句。
#include
4. 怎样给驱动板写程序
首先看你选择用哪种方式刷程序,可以用USB接口,25针并口,U盘等,像你说的V29我们通常用U盘写(如果板上没USB接口就用自制的转接口(一端插U盘一端连接在板上,也就是4针的通常为兰色的接口。
不要说找不到哦,板上4针的接口不多且还标明了的)写)按照你这屏的的型号先拷个M190A1程序到U盘,先插上U盘,再给板供电,当显示灯红绿交替闪烁时就说明正在写程序,当显示灯闪烁的频率加快了时就已经写好了,此时先断电,再拔U盘,之后就可以全部连上看图像对不对了(要连信号线,看有无干扰,非灯管原因引起的图像抖动,分辨率对不对等)。至此,在写完程序后全部连接上时是要将驱动板、驱屏线、升压板、灯管线及按键上的显示灯(按键可以不要,但显示的状态灯一定要要)连接好(不要把屏线插错了),将板上电压跳到5V,要跳5V哦。
注意,刷好程序连接了全套的东西时在通电瞬间准备好拔电,防止因屏内的短路或因插屏线没插好引起的短路(甚至拿屏线时不小心的粗心大意拿成了反双八的屏线了)乐华板的好处就在这里,特别是PC板在通电很短的短时间内如果显示灯颜色不正常立即断电是绝大多数情况下可以避免烧板或烧屏的,这也是为什么一定要插指示灯的原因。至于其它写程序的方式不再累述,能用U盘用U盘,不能用U盘的就用25针并口,因为它便宜。
5. 液晶屏 驱动板
买驱动板之前首先要弄清楚屏的型号,根据屏的类型来配驱动板。
配板时将屏号告诉卖家,才能配上能够使用的驱动板和烧录正确的程序。拆下来的液晶屏是没有高压板的,原机的高压板一般安装在屏背板上,屏角有一根带插头的线插在一块小条板上的那个就是。
高压板的作用是点亮屏背光灯。这种屏改装的电视一般都使用单独的适配器。
改装成液晶电视后电源就不能再使用笔记本电脑使用的电源适配器了,而是使用液晶显示器使用的那一种。笔记本电脑使用的电源适配器一般为18v2A左右。
液晶电视或显示器使用的是12V功率选4A的。
6. 这LCD屏具体属于哪种类别的
这种厚边框的是于比较老的屏了,我有一片类似外观的屏,是三洋产的,属于STN屏,接口中主要包括电源电压,对比度电压,8位或16位数据线,像素时钟,行时钟,帧时钟。
8条数据线的扫描方式有8位单扫,4位双扫,16条数据线一般都是8位双扫;双扫就是把屏分成上下两半,一半数据线各管一半,时钟信号共用,单扫就是从第一行开始往最后一行扫描。STN屏是用抖动方式实现灰度的,一个位对应一个像素;如8位单扫彩色屏,一个时钟输入的这个8位数分别对应屏上一行中相邻的8个像素的状态,彩色的一个点由三个基色像素组成,那么一个8位就输出到屏上如RGBRGBRG排列的8个像素上。
黑白的也是如此,不过一个点就是一个像素,相对简单点。
转载请注明出处育才学习网 » 游戏辅助驱动怎么写
育才学习网