当前位置:文档之家› MongoDB C# 驱动教程

MongoDB C# 驱动教程

MongoDB C# 驱动教程
MongoDB C# 驱动教程

MongoDB C# 驱动教程

阅读目录

连接字符串

工厂方法

安全模式属性

GetDatabase方法

工厂方法

服务器属性

Credentials属性

安全模式属性

GridFS property

GetCollection方法

GetCollection方法

DropCollection方法

RequestStart方法/ RequestDone方法

数据库属性

安全模式属性

插入方法

方法

FindAll方法

FindOne方法

保存方法

更新方法

计算方法

删除方法

RemoveAll方法

的CreateIndex方法

EnsureIndex方法

不同的方法

FindAndModify方法

Group method

MapReduce的方法

集合属性

修改光标之前执行的方法

Skip方法

限制方法

排序方法

其他光标修改方法

触发列举的方法,

计算方法

尺寸的方法

的GetEnumerator方法(或foreach语句)FirstOrDefault方法

ToArray方法

ToList方法

IEnumerable的扩展方法,触发枚举

安全消耗光标的

说明方法

数据库属性

设置属性

上传方法

下载方式

查找方法

FindOne方法

Exists方法

删除方法

ChunkSize property

GridFS property

Id property

Length属性

MD5 property

Name属性

UploadDate财产

即将实施的方法

创建BsonValues

BsonType财产

[类型]属性

[类型]属性

[类型]的方法

创建方法

。NET类型的隐式转换BsonValue

从BsonValue。NET类型的显式转换

Equals和GetHashCode方法(和运算符==和!=)BsonDocument构造函数

BsonDocument构造函数与集合初始化器的语法BsonDocument构造函数用流利的接口方法AllowDuplicateNames财产

Count属性

元素属性

名称属性

RawValues财产

Values属性

添加方法

添加(BsonElement)方法

添加方法(IEnumerable的)

添加(名称,值)的方法

添加方法(条件,名称,值)

添加方法(IEnumerable的)

(IDictionary的

清除方法

Contains方法

ContainsV alue方法

GetElement方法

GetValue方法和索引

Merge方法

删除方法

RemoveAt方法

设置方法(指数值)

SET(名称,值)的方法

ToBson方法

toJSON方法

ToString方法

TryGetElement和TryGetValue方法

BsonArray构造函数

索引器属性

Count属性

添加方法

AddRange方法

清除方法

的indexOf方法

插入方法

删除方法

RemoveAt方法

1.概述

本教程是10gen支持C#驱动程序MongoDB的介绍。假定您熟悉使用MongoDB,因此主要集中在如何使用C#访问MongoDB的。它分为两个部分:C#驱动程序,BSON 图书馆。C#驱动程序是建立在顶部,其目的是单独使用的C#驱动程序的的BSON图书馆,。在第1部分中,我们将介绍C#驱动程序的主类:MongoServer,MongoDatabase,MongoCollection,MongoCursor,MongoGridFS,MongoGridFSFileInfo和SafeMode。

在第2部分,我们将讨论的主要类的BSON Library的:BsonType,BsonValue(及其子类),BsonElement,BsonDocument和BsonArray。

第1部分:C#驱动程序

本教程的第1部分组织自顶向下的方式,所以你有时可能提前偷看,如果事情是没有意义。您甚至可能想要读第2,如果你是完全陌生的的BSON概念,如文档和元素与前第1部分。参考文献和命名空间

为了从你的程序中使用C#的驱动程序,您必须添加以下两个DLL文件:?MongoDB.BsonLibrary.dll

?MongoDB.CSharpDriver.dll

您还应该添加以下语句到你的源文件:

using MongoDB.BsonLibrary;

using MongoDB.CSharpDriver;

除了极少数例外,你将要使用的类的名称前缀与任何“BSON”的,如果他们的BsonLibrary 或“Mongo”的一部分,如果他们的C#驱动程序的一部分。这样做是为了获得名称冲突的可能性降至最低,当您添加到你的程序的两个使用语句。预计将方法的参数(主要是枚举和标志)的一些类,具有较短的名称,不使用任何前缀。

我们喜欢使用C#的var语句声明的变量,因为它会导致更短,我们的感觉,更可读的代码。Visual Studio可以很容易地看到一个变量的类型,如果您需要通过将鼠标指针悬停在

变量或使用IntelliSense。然而,当阅读本文档,你没有这个能力,所以在这个文件中,而不是写:

var server = MongoServer.Create(connectionString);

var test = server[“test”];

var books = test[“books”];

按照我们的建议,我们会来写:

MongoServer server = MongoServer.Create(connectionString);

MongoDatabase test = server[“test”];

MongoCollection books = test[“books”];

所以,你可以看到什么类型正在使用。

线程安全

只有少数的C#驱动程序类是线程安全的。其中:MongoServer的,MongoDatabase,MongoCollection MongoGridFS。通用类,你会使用很多是不是线程安全包括MongoCursor的所有类的BsonLibrary(除BsonSymbolTable)的。A类不是线程安全的,除非特别记载是线程安全的。

所有的所有类的静态属性和方法是线程安全的。

MongoServer类

这个类服务s的工作与MongoDB的根对象。这个类的一个实例的客户端是一个MongoDB服务器,你想沟通。虽然这个类有公共的构造函数,推荐的方式来获得这个类的一个实例是使用工厂方法。

每个实例MongoServer保持与服务器的连接池。这些连接之间共享所有的呼叫到服务器。你可能要调用构造函数,而不是直接调用创建工厂方法MongoServer的几个原因之一是,如果你要保持一个单独的连接池的一些操作。

这个类的实例是线程安全的。

连接字符串

最简单的方法是使用一个连接字符串连接到MongoDB的。标准MongoDB的连接字符串的格式是一个以下列格式的URL:

mongodb://[username:password@]hostname[:port][/database]

如果您使用的是MongoDB服务器的身份验证的用户名和密码,只应。这些凭据将适用于一个单一的数据库,如果数据库名称是存在的,否则他们将所有的数据库的默认凭据。要进行身份验证对管理数据库追加“(管理)”的用户名的。

端口号是可选的,默认为27017。

如果数据库名是存在的,那么这个连接字符串,也可以与创建方法MongoDatabase的使用。创建方法MongoServer忽略的数据库名称(如果存在)(以外的凭据,以确定是否适用于一个单一的数据库或所有数据库的默认凭据)。

要连接到一个副本设置指定的种子提供多个以逗号分隔的主机名列表。例如:

mongodb://server1,server2:27017,server2:27018

该连接字符串指定的种子名单,由三个服务器(其中两个是在同一台机器上,但在不同的端口号)。

C#驱动程序能够连接到副本集,即使种子名单是不完整的。它会发现在主服务器即使主只要不是种子列表中的种子列表上的至少一个次级服务器响应(响应将包含完整副本集和当前的主的名称)。

工厂方法

最好的方式得到的一个实例MongoServer是,使用CREATE工厂方法。使用相同的连接字符串时,此方法将返回相同的实例MongoServer,所以你不必担心一大堆的情况下,如果你调用Create不止一次。此外,如果你只使用一个数据库时,你可能会发现它更容易跳过调用此方法,并呼吁建立工厂方法MongoDatabase。

要连接到MongoDB的本地,你会写这样的代码:

string connectionString = “mongodb://localhost”;

MongoServer server = MongoServer.Create(connectionString);

或许......

MongoServer server = MongoServer.Create();

因为连接到本地主机是默认的。

中的Create方法MongoServer忽略了数据库名称,如果存在的话。但是,如果省略数据库名称,但存在凭据,然后MongoServer 将承担这些凭据要使用的所有数据库,将它们存储在MongoServer的Credentials属性,并利用它们时GetDatabase被称为无凭据的默认凭据。这使得它真正易于使用相同的凭证与所有的数据库。

Create方法使用的种子列表中的服务器的身份时,如果已经有一个现有的实例MongoServer返回(而不是实际的副本集的成员,直到建立连接后,不知道是受改变)。

安全模式属性

此属性表示此服务器的默认安全模式。返回此服务器实例的MongoDatabase任何情况下,它会被继承,但可以改变indepently服务器的数据库的默认安全模式。安全模式类有进一步的描述。

GetDatabase方法

,从一个实例MongoServer你可以代表该服务器上的数据库使用GetDatabase方法的对象的实例。要得到一个数据库对象,你可以这样写:

MongoDatabase test = server.GetDatabase(“”);

MongoDatabase test = server[“test”];

这两种形式是完全等效的。如果您使用的认证,就必须写略有不同的代码,如:MongoCredentials credentials =

new MongoCredentials(“username”, “password”);

MongoDatabase test = server.GetDatabase(“test”, credentials);

MongoDatabase test = server[“test”, credentials];

MongoServer维护一个表的MongoDatabase实例的数据库/凭据组合,并每次你问相同的数据库/凭据组合,你得到相同的实例MongoDatabase,所以你无需担心不必要的重复的实例存在。

MongoDatabase类

这个类表示一个MongoDB服务器上的数据库。除非你正在使用的身份验证,你通常有您要为每个数据库这一类只有一个实例。如果您正在使用的身份验证,那么,你最终会为每个数据库/凭据的组合,你要使用这个类的一个实例。

这个类的实例是线程安全的。

但是,如果你正在编写一个多线程程序,并做了一系列的相关操作(这是很常见的!),你可能希望使用的RequestStart,/ RequestDone,以确保一个线程的相关操作都发生在同一连接上的服务器。

工厂方法

通常情况下你的服务器实例上调用GetDatabase获得的MongoDatabase的实例,但MongoDatabase也有创建工厂方法,这需要一个URL作为一个参数。但在这种情况下,数据库的名称是必需的,将抛出一个异常,如果它缺少的URL。如果你选择到使用的创建工厂方法在MongoDatabase你做不有来电的创建工厂方法在MongoServer(虽然它会被称为为您和的导致服务器对象是提供给您,如果需要的新的数据库实例的服务器属性)。使用创建工厂方法,你能写的MongoDatabase要创建一个实例:

string connectionString = “mongodb://localhost/test”;

MongoDatabase test = MongoDatabase.Create(connectionString);

MongoServer server = test.Server; // 如果需要的话

请注意,这是完全等价于下面的代码:

string connectionString = “mongodb://localhost/test”;

MongoServer server = MongoServer.Create(connectionString);

MongoDatabase test = server.GetDatabase(“”);

第一种形式是有利的,如果你不直接访问服务器对象,也因为来自URL的数据库名称(如果存在的凭据),并没有硬编码。

服务器属性

这个属性允许你导航回从MongoDatabase对象,的MongoServer对象,它属于。

Credentials属性

这个属性允许你检查这个的MongoDatabase实例关联的凭据。你不能改变的凭据。如果你想用不同的凭据,你必须回到服务器对象并得到一个新的数据库对象的新的凭证。这通常是由许多部分的代码共享因为MongoDatabase的一个实例,并更改凭证,可能会产生意想不到的副作用。

安全模式属性

此属性表示该数据库的默认安全模式。返回该数据库实例的MongoCollection任何情况下,它会被继承,但可以改变一个集合的默认安全模式indepently数据库的。安全模式类有进一步的描述。

GridFS property

此属性使您可以访问这个数据库关联的的GridFS对象的。请参阅下面的MongoGridFS类的描述。MongoGridFS类的方法,如上传,下载,查找,让您的GridFS文件系统进行交互。

GetCollection方法

,从一个实例MongoDatabase你可以得到代表在该数据库使用GetCollection方法的集合对象的实例。为了得到一个集合对象,你可以这样写:

MongoCollection books =

database.GetCollection(“books”);

MongoCollection books = database[“books”];

这两种形式是完全等效的。

MongoDatabase维护一个表,至今已经使用的集合,每一次你问的同一个集合中,你得到相同的实例,所以你就不需要担心不必要的重复的实例存在。

GetCollection 方法

在MongoDB中集合的特点之一是,他们是无架构。然而,它也是不寻常的一个集合主要持有一种类型的文件。我们称此为默认文档类型。通常情况下,默认的文件类型是BsonDocument,但你可以指定一个不同的默认文件类型的集合通过使用GetCollection 方法。例如:

MongoCollection employees =

Database.GetCollection(“employees”);

有没有索引等效的,因为C#不允许的类型参数索引。

即使一个集合有一个默认的文件类型,你可以随时查询任何其他类型的文件,使用查找

方法,而不是查找(查找的仅仅是一个方便的快捷键)。

C#驱动程序的最初版本只支持与文件类型BsonDocument的(因为BSON序列化/反序列化的支持尚未实现,对于其他类型)。

DropCollection方法

此方法可以用于从数据库中删除一个集合。MongoCollection也有一个方法叫做removeall过下降的数据,但在叶集(及任何索引)。要使用此方法写:

BsonDocument result = database.DropCollection(“books”);

DropCollection实际上是一个数据库命令的包装。所有的方法来包装一个命令返回命令的结果,这在某些情况下,可能有您感兴趣的信息。

RequestStart方法/ RequestDone方法

它经常发生,一个线程执行一系列数据库操作有关重新。更重要的是,线程有时确实是依赖于早期写的读入。如果读出的发生比写要完成的一个不同的连接有时结果将尚未提供。一个线程可以表明它已被使用RequestStart一个第二,它是一系列相关的操作由Cal 灵RequestDone 做了一系列的相关操作。例如:

database.RequestStart();

/ /数据库的操作做了一系列的

database.RequestDone();

这个例子其实是有一个小问题:如果抛出一个异常,而这样做对数据库的操作RequestDone永远不会被调用。要预防,你可以把到RequestDone在一个最后的块,或更容易的调用,利用,RequestStart返回一个帮手对象实现IDisposable的实例,并使用了C#使用陈述保证,RequestDone被称为自动。在这种情况下,你这样写:using (database.RequestStart()){

/ /数据库的操作做了一系列的

}

请注意,在这种情况下,你不叫RequestDone自己,这种情况发生时,会自动离开using 语句的范围。

RequestStart的增量一计数器和RequestDone的的减少,所以你可以嵌套调用到RequestStart和RequestDone的要求实际上是不开,直到再次达到零。这有助于当你执行方法,需要调用RequestStart / RequestDone的,但称为的代码本身RequestStart 的在转。这方面的一个例子是上载的方法在MongoGridFS,这要求RequestStart / RequestDone的。由于RequestStart筑巢产卵的行为是完全没有上传代码,已经本身称为RequestStart的调用。

MongoCollection

在MongoDB数据库中,这个类的实例参阅下文的集合。你会得到一个的MongoCollection实例通过调用GetCollection或GetCollection

的方法MongoDatabase。的类型参数TDefaultDocument的是这个集合中的默认文档类型(如果你不指定,否则这将是BsonDocument)。

这个类的实例是线程安全的。

数据库属性

这个属性允许你导航回从MongoCollection对象,的MongoDatabase对象,它属于。安全模式属性

此属性表示该集合中的默认安全模式。这将是对这个集合进行操作的默认安全模式,但已有许多方法提供了一种方法来覆盖安全模式只是一个操作。安全模式类有进一步的描述。

插入方法

之前,我们可以从集合中获取任何信息,我们需要把它放在那里。Insert方法的一种方式插入到一个集合中的文件(也可以查看保存的方法和UPSERT版本的Update方法)。例如: BsonDocument book = new BsonDocument {

{ “author”, “Ernest Hemingway”},

{ “title”, “For Whom the Bell Tolls”}

};

books.Insert(book);

INSERT语句也可以写成:

books.Insert(book);

但是这是没有必要的,因为编译器可以推断从参数类型TDocument的。需要注意的是TDocument 必须是一个类型,可以被序列化到一个BSON文档。C#驱动程序的最初版本只知道如何序列化的BsonDocument类的实例。

当你要插入一个以上的文件,使用InsertBatch方法。例如:

BsonDocument[] batch = {

new BsonDocument {

{ “author”, “Kurt Vonnegut”},

{ “title”, “Cat’s Cradle”}

}

new BsonDocument {

{ “author”, “Kurt Vonnegut”},

{ “title”, “Slaughterhouse-Five”}

}

};

books.InsertBatch(batch);

在一次插入多个文件的优点是,它最大限度地减少了网络传输。被插入的所有文件被发送到服务器在一个消息中(除非序列化的文件的总大小超过16MB,在这种情况下,它们将被在多个消息发送各保持为尽可能多的文件)。

方法

最常见的操作,您将执行对集合进行查询。这样做的find方法的几个变化。在本教程中,我们只显示简单的表格S,但也有其他形式,让您使用JavaScript where子句而不是一个查询对象和/或指定要返回的字段。

下面是一些示例代码来读取的文件,我们刚刚插入的藏书:

BsonDocument query = new BsonDocument {

{ “author”, “Kurt Vonnegut”}

};

MongoCursor cursor = books.Find(query);

foreach (BsonDocument book in cursor) {

ConsoleWriteLine。

“{0} {1}”,

book[“title”].AsString,

book[“author”].AsString

);

}

如果该文件被退回是不是默认的文件类型,然后使用一个版本的查找,可以让你指定的文件类型:

MongoCursor cursor =

employees.Find(query);

有很多形式的查询对象的支持,但他们不是具体到C#驱动程序,我们没有足够的空间来形容他们。一个空的查询对象检索的所有文件,相当于一个空的查询对象的C#驱动程序允许空。

还有很多说关于MongoCursor,但有一整节以下使用游标在那里寻找更多详细信息。

FindAll方法

这种方法仅仅是一个快捷方式FindAll扩展 和检索的所有文件的集合。例如:

MongoCursor cursor = books.FindAll();

foreach (BsonDocument book in cursor) {

Console.WriteLine(

“{0} {1}”,

book[“title”].AsString,

book[“author”].AsString

);

}

要查询一个文件,是不是默认的文件类型使用FindAll扩展

FindOne 方法

如果你知道有只有一个匹配的文件或如果你只是想第一个匹配的文件,你可以使用FindOne方法。例如:

BsonDocument query = new BsonDocument {

{ “author”, “Kurt Vonnegut”}

};

BsonDocument book = books.FindOne(query);

FindOne返回它找到第一个匹配的文件或C#NULL,如果是没有的。如果进一步e是一个以上的匹配文档,它没有指定哪一个将被退回。

FindOne 实际上是一个快捷方式:

FindOne(query);

这又是一个快捷方式:

Find(query).Limit(1).FirstOrDefault();

彻底解决NVIDIA最新显卡驱动无法找到兼容的图形硬件

彻底解决NVIDIA最新显卡驱动无法找到兼容的图形硬件(最新驱动) 一、现状:有两台Dell T7500工作站,一台正常安装的windows xp系统,并安装完了NVIDIA Quadro 5000 驱动程序,另一台为这台系统镜像。(用ghost分区到分区进行的系统复制)进系统后没有显卡驱动,正常卸载显卡驱动后再安装时报错,报错如下:

1、右键"计算机"点“属性”打开设备管理器,然后在显示适配器里面。右键显卡。点“属性” 如下图:(带!号的vga设备,此时驱动应显示不正常。而非下图中所示报错。) 2、如下图操作吧。详细信息里面的属性选择“硬件ID”,先复制红色框框的硬件ID代码。。。

这个硬件ID是修改的重要角色。 3、把下载好的显卡驱动先安装解压出来(虽然下载下来为.EXE格式,但右键可直接解压),虽然现在还安装不成功,但会解压一个文件夹出来。 4、双击打开这个文件夹到Display.Driver文件夹,找到这几个安装信息,不同显卡型号在这几个安装信息里面修改。 这些配置文件中有不同的显卡型号 之前总有人询问自己的显卡在哪个文件中,现提供对应的配置文件所包含的显卡型号:(蓝色字体为显卡类型,粉红色字体为所要用到的显卡代码。) nv_disp.inf不用管 nvae.inf包含: NVIDIA_DEV.0DC0.01 = "NVIDIA GeForce GT 440" NVIDIA_DEV.0DF2.01 = "NVIDIA GeForce GT 435M" NVIDIA_DEV.1050.01 = "NVIDIA GeForce GT 520M" nvak.inf包含: NVIDIA_DEV.0A70.01 = "NVIDIA GeForce 310M" NVIDIA_DEV.0DD1.01 = "NVIDIA GeForce GTX 460M" NVIDIA_DEV.0DF4.01 = "NVIDIA GeForce GT 540M" NVIDIA_DEV.1251.01 = "NVIDIA GeForce GTX 560M" NVDD.inf包含: NVIDIA_DEV.0649.01 = "NVIDIA GeForce 9600M GT" NVIDIA_DEV.0DF5.01 = "NVIDIA GeForce GT 525M" NVIDIA_DEV.0DF5.02 = "NVIDIA GeForce GT 525M " NVIDIA_DEV.1054.01 = "NVIDIA GeForce 410M"

XMOS驱动安装说明

XMOS FOR windows驱动安装以及设置的简单教程,下面以WIN7 64BIT系统为例,其他windows系统类似第一步:解压下载到的压缩包文件,完全关闭电脑上的所有安全软件,如:360安全卫士,腾讯电脑管家等杀毒软件 第二步:将XMOS通过USB线插入电脑,注意一下,笔记本尽量选择靠近电源充电插口附近的USB口,台式机必须要连接在机箱背面的主板上的USB口,面板上的USB口也许不行,即使可以使用也是对音质很大影响,然后双击setup.exe文件运行安装程序,之后会看到如下几个对话框:

第三步:在电脑的控制面板里面找到默认音频管理,如下图设置:

这样XMOS就可以完全取代电脑内置的声卡,作为一款外置的USB 数字声卡,通过SPDIF连接到DAC, 建议使用FOOBAR 2000播放器播放无损音乐文件,劣质的音乐文件和播放器使用解码器后不会有什么提升的,甚至可能会更差 可选择DS或者ASIO输出,ASIO设置: 降压缩包内的三个文件COPY到FOOBAR 2000的下面这个文件夹,注意看我截图里面的文件夹路径和三个选择的文件名,注意:这三个文件缺一不可,有了这3个文件,FOOBAR在WINDOWS的系统的ASIO设置可以通杀,然后就可以在FOOBAR选项里面设置ASIO了,

第一步:点击ASIO,再点击界面右边的ADD NEW【新建】 第二步: 在弹出的对话框里面,下拉选择weiliangHIFI ASIO Driver,这个就是我们的XMOS设备,然后点击OK保存

接下来就点击左侧的“输出”按钮,选择默认输出设备了,可以DS:扬声器(XMOS USB Audio 2.0)也可以ASIO:WeiliangHIFI ASIO Driver

usb驱动程序教程

编写Windows https://www.doczj.com/doc/7710008090.html,的usb驱动程序教程 Windows https://www.doczj.com/doc/7710008090.html, 是微软推出的功能强大的嵌入式操作系统,国内采用此操作系统的厂商已经很多了,本文就以windows https://www.doczj.com/doc/7710008090.html,为例,简单介绍一下如何开发windows https://www.doczj.com/doc/7710008090.html, 下的USB驱动程序。 Windows https://www.doczj.com/doc/7710008090.html, 的USB系统软件分为两层: USB Client设备驱动程序和底层的Windows CE实现的函数层。USB设备驱动程序主要负责利用系统提供的底层接口配置设备,和设备进行通讯。底层的函数提本身又由两部分组成,通用串行总线驱动程序(USBD)模块和较低的主控制器驱动程序(HCD)模块。HCD负责最最底层的处理,USBD模块实现较高的USBD函数接口。USB设备驱动主要利用 USBD接口函数和他们的外围设备打交道。 USB设备驱动程序主要和USBD打交道,所以我们必须详细的了解USBD提供的函数。 主要的传输函数有: abourttransfer issuecontroltransfer closetransfer issuein te rruptransfer getisochresult issueisochtransfer gettransferstatus istransfercomplete issuebulktransfer issuevendortransfer 主要的用于打开和关闭usbd和usb设备之间的通信通道的函数有: abortpipetransfers closepipe isdefaultpipehalted ispipehalted openpipe resetdefaultpipe resetpipe 相应的打包函数接口有: getframelength getframenumber releaseframelengthcontrol setframelength takeframelengthcontrol 取得设置设备配置函数: clearfeature setdescriptor getdescriptor setfeature

完美解决NVIDIA最新显卡驱动无法找到兼容的图形硬件

完美解决NVIDIA最新显卡驱动无法找到兼容的图形硬件 下面文章依据NVIDIA 275.33-desktop-win7-winvista-32bit-international-whql驱动,分割线以下的文章依据266.58_notebook_winvista_win7_32bit_international_whql驱动

下载了275.33版本驱动,安装依然提示无法找到兼容的图形硬件。于是按照之前的方法进入Display.Driver文件夹,发现配置文件有些许变化,如下图: 1、右键"计算机"点“属性”打开你的设备管理器,然后在显示适配器里面。右键你的显卡。点“属性” 如下图:

2、如下图操作吧。详细信息里面的属性选择“硬件ID”,先复制红色框框的硬件ID代码。。。这个硬件ID是修改的重要角色。

3、把下载好的显卡驱动先安装解压出来(虽然下载下来为.EXE格式,但右键可直接解压),虽然现在还安装不成功,但会解压一个文件夹出来。 4、双击打开这个文件夹到Display.Driver文件夹,找到这几个安装信息,不同显卡型号在这几个安装信息里面修改。

这些配置文件中有不同的显卡型号 之前总有人询问自己的显卡在哪个文件中,现提供对应的配置文件所包含的显卡型号:(蓝色字体为显卡类型,粉红色字体为所要用到的显卡代码。) nv_disp.inf不用管 nvae.inf包含: NVIDIA_DEV.0DC0.01 = "NVIDIA GeForce GT 440" NVIDIA_DEV.0DF2.01 = "NVIDIA GeForce GT 435M" NVIDIA_DEV.1050.01 = "NVIDIA GeForce GT 520M" nvak.inf包含: NVIDIA_DEV.0A70.01 = "NVIDIA GeForce 310M" NVIDIA_DEV.0DD1.01 = "NVIDIA GeForce GTX 460M" NVIDIA_DEV.0DF4.01 = "NVIDIA GeForce GT 540M" NVIDIA_DEV.1251.01 = "NVIDIA GeForce GTX 560M" NVDD.inf包含: NVIDIA_DEV.0649.01 = "NVIDIA GeForce 9600M GT" NVIDIA_DEV.0DF5.01 = "NVIDIA GeForce GT 525M" NVIDIA_DEV.0DF5.02 = "NVIDIA GeForce GT 525M " NVIDIA_DEV.1054.01 = "NVIDIA GeForce 410M" nvgd.inf包含: NVIDIA_DEV.0628.01 = "NVIDIA GeForce 9800M GTS" NVIDIA_DEV.062A.01 = "NVIDIA GeForce 9700M GTS" NVIDIA_DEV.0630.01 = "NVIDIA GeForce 9700 S" NVHDC.inf包含: NVIDIA_DEV.0648.01 = "NVIDIA GeForce 9600M GS" NVIDIA_DEV.06E9.01 = "NVIDIA GeForce 9300M GS" NVIDIA_DEV.06E9.02 = "NVIDIA GeForce 9300M GS " NVIDIA_DEV.06E9.03 = "NVIDIA GeForce 9300M GS " NVIDIA_DEV.0A28.01 = "NVIDIA GeForce GT 230" NVIDIA_DEV.0A74.01 = "NVIDIA GeForce G210" NVIDIA_DEV.0DF0.01 = "NVIDIA GeForce GT 425M" NVIDIA_DEV.0DF0.02 = "NVIDIA GeForce GT 425M " nvla.inf包含:

驱动程序详解及安装方法

驱动程序详解及安装方法 想要熟知驱动安装方法首先要了解电脑硬件大概信息,了解了硬件信息安装就比较简单了,下面笔者为大家详解,首先我们了解驱动为何物。 一、什么是驱动程序 根据百度百科:驱动程序,英文名为Device Driver,全称为设备驱动程序,是一种可以使计算机和设备通信的特殊程序,可以说相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。因此,驱动程序被誉为硬件的灵魂、硬件的主宰、和硬件和系统之间的桥梁等。 刚安装好的系统操作系统,很可能驱动程序安装得不完整。硬件越新,这种可能性越大。菜菜熊之前看到的图标很大且颜色难看就是没有安装好驱动的原因。 二、驱动程序的作用 随着电子技术的飞速发展,电脑硬件的性能越来越强大。驱动程序是直接工作在各种硬件设备上的软件,其驱动这个名称也十分形象的指明了它的功能。正是通过驱动程序,各种硬件设备才能正常运行,达到既定的工作效果。

硬件如果缺少了驱动程序的驱动,那么本来性能非常强大的硬件就无法根据软件发出的指令进行工作,硬件就是空有一身本领都无从发挥,毫无用武之地。这时候,电脑就正如古人所说的万事俱备,只欠东风,这东风的角色就落在了驱动程序身上。如此看来,驱动程序在电脑使用上还真起着举足轻重的作用。 从理论上讲,所有的硬件设备都需要安装相应的驱动程序才能正常工作。但像CPU、内存、主板、软驱、键盘、显示器等设备却并不需要安装驱动程序也可以正常工作,而显卡、声卡、网卡等却一定要安装驱动程序,否则便无法正常工作。这是为什么呢? 这主要是由于这些硬件对于一台个人电脑来说是必需的,所以早期的设计人员将这些硬件列为BIOS能直接支持的硬件。换句话说,上述硬件安装后就可以被BIOS和操作系统直接支持,不再需要安装驱动程序。从这个角度来说,BIOS也是一种驱动程序。但是对于其他的硬件,例如:网卡,声卡,显卡等等却必须要安装驱动程序,不然这些硬件就无法正常工作。 三、驱动程序的界定 驱动程序可以界定为官方正式版、微软WHQL认证版、第三方驱动、发烧友修改版、Beta测试版。初学者尽量安装官方正式版,当然如果你脱离了菜鸟就可以尝试下各种版本的驱动。 动手安装驱动程序之前,必须先搞清楚,哪些硬件是需要安装驱动程序的,哪些是不需要的。根据前面的介绍,CPU、内存、软驱、键盘、显示器等一般都

USB驱动程序源代码

项目报告7 USB驱动程序源代码作者:罗仕波 一.头文件go7007sb.h /* *go7007sb.h - this file includes all relative header files that *will be used in go7007sb vedio usb interface driver, and it *also defines all relative driver private data structures and *it's io control commands. */ #ifndef _GO7007SB_H #define _GO7007SB_H #include #include #include #include #include #include #include #include #include #include #include #include //#define DEBUG #define DRIVER_VERSION "1.0.0" #define DRIVER_DESC "USB GO7007SB Driver" #include MODULE_AUTHOR("Luo Shibo"); MODULE_DESCRIPTION(DRIVER_DESC" "DRIVER_VERSION); MODULE_LICENSE("GPL"); /* *io control commands definition,these commands will be *used to control the device in function iocntl_go7007sb */ #define GO7007SB_IOC_MAGIC 'U' //command magic number #define GO7007SB_IOC_RESET _IO(GO7007SB_IOC_MAGIC,0) //software reset the device

Ubuntu 14.04 Nvidia显卡驱动安装及设置

Ubuntu 14.04 Nvidia显卡驱动安装及设置 更换主板修复grub 引导后,无法从Nvidia进入系统(光标闪烁),可能是显卡驱动出了问题。 1. 进入BIOS设置,从集成显卡进入系统 将显示器连接到集显的VGI口,并在BIOS中设置用集显显示,一般来说可以成功进入系统。 2. 完全写在Nvidia驱动(参考) 执行下列命令干干净净卸载nvidia驱动, sudo apt-get remove --purge nvidia-* sudo apt-get install ubuntu-desktop sudo rm /etc/X11/xorg.conf echo'nouveau' | sudo tee -a /etc/modules 3. 重启电脑,进入系统,ctrl+alt+f1进入tty,关闭lightdm sudo service lightdm stop 重新安装驱动,这里安装的是340 输入下列命令添加驱动源 sudo add-apt-repository ppa:xorg-edgers/ppa sudo apt-get update 安装340版驱动 sudo apt-get install nvidia-340 4. (非必须步骤,如果已经能正常进入桌面则不用理会后面的步骤) 重启电脑,进入BIOS,禁用Intel核心显卡,选择Nvidia显卡启动 (参考1 ,参考2) 这时进入系统后,可能分辨率不对,执行下列命令查看现在采用的驱动 prime-select query 如果输出intel,则执行下列命令 sudo update-alternatives --config i386-linux-gnu_gl_conf 选择nvidia-340-uvm那一项 sudo update-alternatives --config x86_64-linux-gnu_gl_conf 同样选择nvidia-340-uvm那一项

Qualcomm USB驱动安装步骤

高通USB驱动安装步骤 1. 需要的文件 \\192.168.50.11\Common\Tools\7k_required\android_usb_windows.zip \\192.168.50.11\Common\Tools\7k_required\QPST_WINAND1000\HY11-VN949-1.zip 解压缩2个文件,其中,解压缩HY11-VN949-1.zip后出现3个子目录 2. 连接电源和手机,把USB线插入手机,手机上电,系统提示新设备 一共要装5个驱动,默认的顺序是: 1 (DIAG), 2 (Modem), 3 (ADB), 4 (GPS), 5 (Mass storage,自动安装驱动) 下面2步对所有设备都一样 选择“下一步”

选择“下一步” 2.1 DIAG/Modem/GPS设备的安装 对第1 (DIAG), 2 (Modem), 4 (GPS)个设备,选择如下:

选择“在这些位置上搜索最佳驱动程序”,然后浏览路径时,选择解压出来的所在的路径,“安装”; 然后系统提示找不到qcusbser.sys,指定目录到 2.2 对第3个设备(Android ADB device) 前2步过后 选择“不要搜索。我要自己选择要安装的驱动程序”,下一步

NVIDIA显卡驱动怎么安装-

三一文库(https://www.doczj.com/doc/7710008090.html,) 〔NVIDIA显卡驱动怎么安装?〕 *篇一:如何手动安装XP系统下nVidia显卡驱动程序转自DELL官方论坛--如何手动安装XP系统下nVidia 显卡驱动程序 尊敬的用户: 您好,首先感谢您选购DELL电脑,您所配的电脑,选配了目前最新的nVidiaG84/86芯片的显卡,它在XP系统下的驱动下载链接是: :https://www.doczj.com/doc/7710008090.html,.dell/video/R158222.EXE =====================分割线 ====================== 注意:如果您下载下来不能自动安装或者打不开页面,则请参考下面的手动安装说明. 如何手动安装进行如下说明: 1.下载驱动程序. 您可以从以下地址下载显卡驱动程序: :us.download.nvidia/Wi...it_english_whql.exe 下载程序后,双击运行,选择“Iacceptthetermsinthelicenseagreement”,我同意后,

点Next。 系统会自动选择解压缩地址,不需要更改,继续点Next 即可。 4.解压缩过程中,等待即可。 5.继续等待安装。 在安装过程中,会提示程序安装错误,不用担心,先点确定,退出即可。 7.退回到桌面后,我们开始手动安装,右击我的电脑—属性—硬件—设备管理器,找到显示卡一项(也可能是在未知设备中的“视频控制器”),点右键,选择“更新驱动程序”。 8.安装向导会自动提示,选择“从列表或指定位置安装(高级)一项”。 9.然后选择“不要搜索,我要自己选择要安装的驱动程序”。 10.系统会自动列出部分显卡驱动,先不要选择,点击“从磁盘安装”。 11.打开后,选择“浏览”。 12.这时,找到我们刚才解压后的地址:本地磁盘C—NVIDIA—Win2KXP—158.22 13.找到驱动文件(后缀名为.inf)后,点“打开”。 14.继续点“确定”。

USB驱动程序编写

USB驱动程序编写 linux下usb驱动编写(内核2.4)——2.6与此接口有区别2006-09-15 14:57我们知道了在Linux 下如何去使用一些最常见的USB设备。但对于做系统设计的程序员来说,这是远远不够的,我们还需要具有驱动程序的阅读、修改和开发能力。在此下篇中,就是要通过简单的USB驱动的例子,随您一起进入USB驱动开发的世界。 USB骨架程序(usb-skeleton),是USB驱动程序的基础,通过对它源码的学习和理解,可以使我们迅速地了解USB驱动架构,迅速地开发我们自己的USB硬件的驱动。 USB驱动开发 在掌握了USB设备的配置后,对于程序员,我们就可以尝试进行一些简单的USB驱动的修改和开发了。这一段落,我们会讲解一个最基础USB框架的基础上,做两个小的USB驱动的例子。 USB骨架 在Linux kernel源码目录中driver/usb/usb-skeleton.c为我们提供了一个最基础的USB驱动程序。我们称为USB骨架。通过它我们仅需要修改极少的部分,就可以完成一个USB设备的驱动。我们的USB驱动开发也是从她开始的。 那些linux下不支持的USB设备几乎都是生产厂商特定的产品。如果生产厂商在他们的产品中使用自己定义的协议,他们就需要为此设备创建特定的驱动程序。当然我们知道,有些生产厂商公开他们的USB协议,并帮助Linux驱动程序的开发,然而有些生产厂商却根本不公开他们的USB协议。因为每一个不同的协议都会产生一个新的驱动程序,所以就有了这个通用的USB驱动骨架程序,它是以pci 骨架为模板的。 如果你准备写一个linux驱动程序,首先要熟悉USB协议规范。USB主页上有它的帮助。一些比较典型的驱动可以在上面发现,同时还介绍了USB urbs的概念,而这个是usb驱动程序中最基本的。 Linux USB 驱动程序需要做的第一件事情就是在Linux USB 子系统里注册,并提供一些相关信息,例如这个驱动程序支持那种设备,当被支持的设备从系统插入或拔出时,会有哪些动作。所有这些信息都传送到USB 子系统中,在usb骨架驱动程序中是这样来表示的: static struct usb_driver skel_driver = { name: skeleton, probe: skel_probe, disconnect: skel_disconnect, fops: &skel_fops, minor: USB_SKEL_MINOR_BASE, id_table: skel_table,

解决Nvidia显卡安装失败问题

解决Nvidia(英炜达)显卡安装失败的问题 以前我在安装系统的时候最苦恼的就是显卡问题,又特别是在换系统过后,很难安装显卡驱动。一般来说,驱动包都可以搞得定,但我不喜欢非官方驱动,所以一天就折腾,记得前几天我在win8里面安装显卡驱动就一直没有安装上,最后没办法就只能下个驱动人生来解决了。但这个驱动不是怎么很稳定,老是花屏、切换不能及时更新等。太恼火了。接下来就是我探索win8里显卡驱动安装问题了。 其实很简单,大家用心看下去相信一次搞定。 可能有很多朋友都和我有差不多的想法,想在官网下驱动来安装,但总是安装不上,其实这不是官网的驱动有问题,而是下载的显卡驱动里面不含有我们的自己的显卡驱动签名,所以我们在正常安装的时候总是失败,看到这里是不是明白点什么了?别急,到这点是不够的,还有下面的文章,首先的一点,还是要把驱动下载下来。 1、去Nvidia官网下载我们自己的显卡驱动,比如我的显卡是9600M GT。我就以它为 例来讲解。进入以下网站:https://www.doczj.com/doc/7710008090.html,/Download/index.aspx?lang=cn。在 以下这个区域内填写自己的驱动信息 我的9600M GT就是以下这种填法我现在用的是win8 64位系统,所以我的操作系 统填了的win8(X64) 如果你的显卡是笔记本系列的,那产品系列就选择下面种情况: 我的是台式机,所以我就选择的是上面种,下面的这种后面有个括号注明的是笔记 本。其实这也不是绝对的,因为这几种产品驱动包都差不多,但这好就用这本身的 配置来填。填好了就点搜索——下载——保存——打开——解压。 好了,第一部分就完了,现在就是安装驱动了。 2.解压完驱动驱动软件就会自动进行安装,很多在安装的过程中会出现检测系统这关

USB设备驱动程序设计

USB设备驱动程序设计 引言 USB 总线是1995 年微软、IBM 等公司推出的一种新型通信标准总线, 特点是速度快、价格低、独立供电、支持热插拔等,其版本从早期的1.0、1.1 已经发展到目前的2.0 版本,2.0 版本的最高数据传输速度达到480Mbit/s,能 满足包括视频在内的多种高速外部设备的数据传输要求,由于其众多的优点,USB 总线越来越多的被应用到计算机与外设的接口中,芯片厂家也提供了多种USB 接口芯片供设计者使用,为了开发出功能强大的USB 设备,设计者往往 需要自己开发USB 设备驱动程序,驱动程序开发一直是Windows 开发中较难 的一个方面,但是通过使用专门的驱动程序开发包能减小开发的难度,提高工 作效率,本文使用Compuware Numega 公司的DriverStudio3.2 开发包,开发了基于NXP 公司USB2.0 控制芯片ISP1581 的USB 设备驱动程序。 USB 设备驱动程序的模型 USB 设备驱动程序是一种典型的WDM(Windows Driver Model)驱动程序,其程序模型如图1 所示。用户应用程序工作在Windows 操作系统的用户模式层,它不能直接访问USB 设备,当需要访问时,通过调用操作系统的 API(Application programming interface)函数生成I/O 请求信息包(IRP),IRP 被传输到工作于内核模式层的设备驱动程序,并通过驱动程序完成与UBS 外设通 信。设备驱动程序包括两层:函数驱动程序层和总线驱动程序层,函数驱动程 序一方面通过IRP 及API 函数与应用程序通信,另一方面调用相应的总线驱动 程序,总线驱动程序完成和外设硬件通信。USB 总线驱动程序已经由操作系统 提供,驱动程序开发的重点是函数驱动程序。 USB 设备驱动程序的设计

英伟达此图形驱动程序无法找到兼容的图形硬件问题完美解决

这是由于显卡驱动的安装信息文件inf里面缺少相应的设备ID造成的,也就是安装信息文件inf里没有对应的显卡型号。 以NVIDIA GeForce GT130M显卡驱动为例 1.下载显卡驱动去官网下载最新的显卡驱动,下载完后双击安装,就会提示上 图信息。关闭对话框,到C盘找到NVIDIA文件夹,如图

打开文件夹,如图, 说明:这么多inf文件,每个厂商用的文件都是不同的

宏碁是nvac.inf,华硕是nvam.inf,联想是nvlt.inf,戴尔是nvdm.inf 特别说明:nvct.inf是仁宝,夹杂仁宝代工的DELL,联想和Gateway(联想Y450要修改的是nvlt.inf文件) 更多厂商对应的inf文件请百度 接下来就找到自己对应厂商的inf文件,用记事本打开 找到需要修改的inf文件后,我们就需要查找自己显卡的硬件ID了 2.查找自己显卡的硬件ID 右击我的电脑-管理-设备管理器-显示适配器-右键属性-详细信息-属性-硬件ID

找到我们所需要的硬件ID(第二行),就是: PCI\VEN_10DE&DEV_0652&SUBSYS_387A17AA 不同显卡的机器对应的ID是不一样的 这串ID我们要特别注意SUBSYS之前的"0652"这四个字符,它代表了你所对应的显卡 比如:0652代表GT130M,0A34代表GT240M,0DF4代表GT540M 接下来我们就需要修改inf文件了

3.将inf文件中的硬件ID修改为自己显卡的硬件ID 首先注意一点,打开inf文件后,我们可以看到硬件ID列表 找到[NVIDIA_SetA_Devices.NTx86.6.1]]那行 NT6.0是vista的代号,NT6.1是win7的代号,NT6.2是win8的代号 所以对于win7用户,我们要确保修改的ID在[NVIDIA_SetA_Devices.NTx86.6.1] 的下面,如图: 然后就需要用到前面那串硬件ID,我们在前面找到的ID是 PCI\VEN_10DE&DEV_0652&SUBSYS_387A17AA

Nvidia for linux驱动安装图解

Linux下Nvidia显卡驱动 的安装

前言: 上一章节我已经讲述了如何在自己的电脑上安装Debian Linux操作系统,这一章节将告诉大家如何安装显卡驱动程序。 目前绝大多数版本的Linux都可以很好的支持主流的硬件设备,这要感谢 分布在全球各地的Linux内核程序员,他们将很多主流的硬件驱动编写入Linux内核,使得Linux可以在众多不同硬件平台得以顺利运行,这些驱动被称为开源驱动,并且被集成在Linux内核当中,而且有时这些驱动很好用,2008年我在ibm x22笔记本上安装了Ubuntu 8.10,这是一台2001年的老 本本了,P3 733的cpu,显卡是ATI 7000的显卡,只有8M显存,但是使用开源驱动,适当的修改配置文件xorg.conf,使得这个老本本居然能够顺利的运行compiz,也就是那个美轮美奂的桌面特效,同时也可以玩CS游戏,平均FPS也在60左右。 但是现在众多的硬件厂商为了保护自己的知识产权,而将部分硬件参数保 护起来,不向外公布,所以造成开源驱动程序虽然可以使用,但是不能完全发挥硬件设备的全部功效,如Nvidia,AMD等显卡芯片制造厂商,使用开源驱动程序,虽然可以应付日常办公,却无法实现3D效果,幸好这些厂商开发了私 有驱动,如此以来Linuxer也可以玩3D游戏了。 现在我就将如何安装Nvidia的显卡驱动告诉大家。 1、安装准备 首先用浏览器登录到Nvidia的官方网站下载For Linux的驱动,这里需 要注意,For Linux的驱动有两种,一种是32位的,一种是64位的,这个 区别主要是看自己安装的Linux到底是32位的,还是64位,在前一章安装 篇里我已经做过介绍了,假设当前我使用freedmit用户登录到本机,那么下载的驱动程序就可以下载到/home/freedmit下,也就是当前用户的根目录,因为我使用的64位操作系统,所以下载64位的驱动程序,名为NVIDIA-Linux-x86_64-177.67-pkg2.run。 接下来的操作要比较复杂了,应为安装Nvidia驱动,需要编译相关内核模块,所以需要安装Linux内核头文件,gcc,make等工具,你可以点击屏幕 最上端的“应用程序”选项,再选择“附件”,该菜单栏下有一个“终端”,该工具相当于windows下的DOS,而在Linux下被称为Shell,我们点击打开,便出现如下窗口:

集成驱动安装器

驱动自动安装教程 1.将所需要的驱动拷贝到系统盘C:\下新建一个文件名字,名字尽量用英文例如Driver 或者install Driver,驱动可以是文件夹但是必须有可执行文件。 2.进入新建的驱动文件夹下新建记事本,改名字和后缀为setup.bat 3.编辑setup.bat文件,添加一下信息 C:\\install\start.vbs C:\\install\Intel_Graphics_Win7_VER917102884\AsusSetup.exe /S C:\\install\IRST_V10101008_XPVistaWin7\AsusSetup.exe /S C:\\install\MEI_XPVistaWin7_VER8001262\AsusSetup.exe /S C:\\install\Realtek_Audio_V51006767_V6016767_XPVistaWin7_8\AsusSetup.ex e /S C:\\install\Realtek_LAN_XPVistaWin7_VER5790_6251_765\AsusSetup.exe /S C:\\install\13-4_win7_win8_64_dd_ccc_whql.exe /S C:\\install\amd_catalyst_13.8_beta.exe /S C:\\install\end.vbs 解释下:install是你新建的文件夹名字,红色部分是驱动文件夹和.exe可执行文件,蓝色部分就是驱动文件夹里面的.exe可执行文件,蓝色后面加一个空格,后面的/S 表示默认安装路径 4.在新建一个start.bat内容为蓝色部分 WScript.Echo("即将开始安装驱动程序,请按确认键开始") 在新建一个end.bat文件 内容为蓝色部分 WScript.Echo("驱动安装已经完成") WScript.Echo("请在重启动电脑后正常使用") 5.将刚才新建的驱动文件夹添加到压缩文件

最新开发usb驱动程序的方法连载一

最新开发usb驱动程序的方法连载一 开发usb驱动程序的方法(连载二) NT还有更多其他的对象,例如中断对象、Controller对象、定时器对象等等,但在我们开发的驱动程序中并没有用到,因此在这里不做介绍。 I/O缓冲策略 很明显的,驱动程序和客户应用程序经常需要进行数据交换,但我们知道驱动程序和客户应用程序可能不在同一个地址空间,因此操作系统必须解决两者之间的数据交换。这就就设计到设备的I/O缓冲策略。 读写请求的I/O缓冲策略 前面说到通过设置Device对象的Flag可以选择控制处理读写请求的I/O缓冲策略。下面对这些缓冲策略分别做一介绍。 1、缓冲I/O(DO_BUFFERED_IO) 在读写请求的一开始,I/O管理器检查用户缓冲区的可访问性,然后分配与调用者的缓冲区一样大的非分页池,并把它的地址放在IRP的AssociatedIrp.SystemBuffer域中。驱动程序就利用这个域来进行实际数据的传输。 对于IRP_MJ_READ读请求,I/O管理器还把IRP的UserBuffer域设置成调用者缓冲区的用户空间地址。当请求完成时,I/O管理器利用这个地址将数据从驱动程序的系统空间拷贝回调用者的缓冲区。对于IRP_MJ_WRITE写请求,UserBuffer被设置为NULL,并把用户缓冲区的数据拷贝到系统缓冲区中。 2、直接I/O(DO_DIRECT_IO) I/O管理器首先检查用户缓冲区的可访问性,并在物理内存中锁定它。然后它为该缓冲区创建一个内存描述表(MDL),并把MDL的地址存放在IRP的MdlAddress域中。AssociatedIrp.SystemBuffer和 UserBuffer 都被设置为NULL。驱动程序可以调用函数 MmGetSystemAddressForMdl得到用户缓冲区的系统空间地址,从而进行数据操作。这个函数将调用者的缓冲区映射到非份页的地址空间。驱动程序完成I/O请求后,系统自动从系统空间解除缓冲区的映射。 3、这两种方法都不是 这种情况比较少用,因为这需要驱动程序自己来处理缓冲问题。 I/O管理器仅把调用者缓冲区的用户空间地址放到IRP的UserBuffer 域中。我们并不推荐这种方式。 IOCTL缓冲区的缓冲策略 IOCTL请求涉及来自调用者的输入缓冲区和返回到调用者的输出缓冲区。为了理解IOCTL请求,我们先来看看WIN32 API DeviceIoControl函数的原型。 BOOL DeviceIoControl ( HANDLE hDevice, // 设备句柄 DWORD dwIoControlCode, // IOCTL请求操作代码 LPVOID lpInBuffer, // 输入缓冲区地址 DWORD nInBufferSize, // 输入缓冲区大小 LPVOID lpOutBuffer, // 输出缓冲区地址 DWORD nOutBufferSize, // 输出缓冲区大小 LPDWORD lpBytesReturned, // 存放返回字节数的指针

NVIDIA驱动检测无法通过的解决办法

解决NVIDIA驱动无法安装问题 以显卡GT520M、Nvidia_358.50-notebook-win8-win7-64bit-international-whql驱动为例。 系统环境:Windows7 Ultimate Server Pack1 系统类型:64位操作系统 1、打开设备管理器 打开控制面板,进入系统和安全: 点击”设备管理器”:

2、复制显卡硬件ID 展开”显示适配器”,在显卡设备上双击鼠标: 在弹出的显卡属性窗口中点击”详细信息”, 然后在属性下拉框中选择”硬件Id”,(例:PCI\VEN_10DE&DEV_0DF7&SUBSYS_20021BAB)在”值”的列表中的第二项上点击鼠标右键,选择”复制”,要记住蓝色框中的四位序号(0DF7):

3、用记事本打开nvct.inf文件 进入NVIDIA官方驱动解压出来的Display.Driver文件夹中: 找到nvct.inf文件,用记事本打开:

4、查找本机硬件ID中的四位数序号,并修改文件 查找方才蓝色框中的四位序号(0DF7),点击查找下一个: 找到该序号所在的行,将红色框中的内容修改为之前复制好的硬件ID,(例:PCI\VEN_10DE&DEV_0DF7&SUBSYS_20021BAB) 然后继续查找下一个: 例:蓝色框中为修改后的内容

4、修改完毕,并保存nvct.inf文件 继续查找下一个,修改硬件ID,如此反复,直至出现我们的显卡型号,而不再是硬件ID时即可保存。如下图: 5、正常安装驱动程序 此时便可正常安装驱动了,大功告成:

另外,需要注意的是: Display.Driver文件夹中,有许多的nvxxx.inf文件,到底需要修改哪一个才生效? 关于这么多inf文件,每个厂商所用的文件都名称都是不同的,以下是几个常见的:宏碁是nvac.inf 华硕是nvam.inf 联想是nvlt.inf 戴尔是nvdm.inf 索尼是nvszc.inf 惠普是nvhm.inf LG是nvlo.inf 苹果是nvao.inf 请找到自己厂商对应的inf文件进行修改,其余的可自行在网上搜索。

在Win XP下安装 NVIDIA Geforce 610M 显卡驱程

在Win XP下安装NVIDIA Geforce 610M 显卡驱程 联想V370 IFI无论是安装Win 7 与Win XP双系统,还是改装Win XP,都会遇到不能安装驱动程序的问题,给用户留下一个深深的遗憾。在Win 7中查实,联想V370 IFI的独立显卡型号是NVIDIA Geforce 610M。NVIDIA Geforce 610M 英伟达公司目前只给WIN 7提供驱动程序,不提供WIN XP驱动程序。经过探索,终于找到了解决方案。 一、查找NVIDIA Geforce 610M的硬件ID 打开“设备管理器”,在有“?”的项目,鼠标双击,在“详细信息”菜单中,记下硬件ID:PCI\VEN_10DE&DEV_1058&SUBSYS_397D17AA&REV_A1\4&8F789FD&0&0008

二、制作设备兼容安装程序 比较发现,610M实质就是GT520M。因此,可以用GT520M来制作兼容的安装程序。方法步骤如下: (一)下载NVIDIA GeForce系列显卡驱程:285.58 WHQL版For WinXP/32bit。 (二)将下载的文件解压安装到硬盘\NVIDIA\DisplayDriver\285.58\WinXP\International文件夹 (三)点开Display.Driver文件夹,找到ListDevices文件,鼠标双击打开。 查找“NVIDIA GeForce GT 520M”,在其后增加一行: DEV_1058&SUBSYS_397D17AA "NVIDIA GeForce 610M"。

请留意:“DEV_1058&SUBSYS_397D17AA”实为硬件ID中段字符串。“NVIDIA GeForce 610M”为显卡名称。 保存退出。 (四)修改nvae.inf文件 在Display.Driver文件夹中,找到nvae.inf文件,鼠标双击打开。 1、在[NVIDIA_Devices.NTx86.5.1] 段,增加一行: %NVIDIA_DEV.1058.01% = Section005, PCI\VEN_10DE&DEV_1058&SUBSYS_397D17AA 2、在[Strings] 段,增加一行:NVIDIA_DEV.1058.01 = "NVIDIA GeForce 610M" 修改完毕,保存退出! 三、安装NVIDIA Geforce 610M 显卡驱程

USB键盘驱动程序

/* * $Id: usbkbd.c,v 1.27 2001/12/27 10:37:41 vojtech Exp $ * * Copyright (c) 1999-2001 Vojtech Pavlik * * USB HIDBP Keyboard support */ /* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Should you need to contact me, the author, you can do so either by * e-mail - mail your message to <>, or by paper mail: * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic */ #include #include #include #include #include #include #include /* * Version Information */ #define DRIVER_VERSION "" #define DRIVER_AUTHOR "Vojtech Pavlik <>" #define DRIVER_DESC "USB HID Boot Protocol keyboard driver" #define DRIVER_LICENSE "GPL"

相关主题
文本预览
相关文档 最新文档