文章列表
 
您正在查看 "驱动开发" 分类下的文章

2008-12-12 13:05
DDK示例中的代码。

NTSTATUS
FltReadSectors(
    IN PDEVICE_OBJECT DeviceObject,
    OUT PVOID Buffer,
    IN ULONG Length,
    IN LONGLONG ByteOffset,
    IN BOOLEAN Wait
    )
/*++

Routine Description:

    This routine tries to read the data from the disk.

Arguments:

    DeviceObject - the lo
 
2008-06-15 0:57

先后顺序

现在,让我们清楚地回顾下的这个步骤:

  • DrvEnableDriver:加载驱动
 
2008-06-15 0:50

DrvCompletePDEV

DrvCompletePDEV的调用,是用在DrvEnablePDEV调用之后,用来通知显示驱动,设备对象现在已经完成。仅有的参数是一个私有的在DrvEnablePDEV调用中创建的数据结构和一个指向GDI设备的完成句柄。除非

 
2008-06-15 0:48

DrvEnablePDEV

一旦选定了一种显示模式,这个api就会被调用,它会允许驱动使能”物理设备”。这个API的用途是允许显示驱动创建自己私有的上下文,这个上下文将会被传递给其他的显示入口点。创建私有上下文的原因是一个显示驱动可以管理多个显示设备,使用它可以区分开各个显示设备。这个api的返回值是一个上下文指针或者是显示设备的实例。

选中的显示设置通过DEVMODE参数传递给这个API
 
2008-06-15 0:46

DrvDisableDriver

当显示驱动卸载时调用这个函数。在这个函数中,你可以执行一些必要的清理工作,清理你在DrvEnableDriver调用中创建的东西。下面的代码来自于例子。

 
2008-06-14 16:37

显示驱动

显示驱动连接在WIN32K.SYS,仅仅允许调用Eng* APIs,这些api实际上可以在内核模式和用户模式下找到。Nt4之前,显示驱动是在用户模式。无论如何显示驱动和打印驱动都使用同样的api函数集。遵循这个API函数集,只需要

 
2008-06-14 0:16

理论:

本篇我们将介绍下如何写一个简单的显示驱动。显示驱动是一种特殊类型的驱动,必须要满足一个框架,它不像我们前面讲的那些驱动。

 
2008-06-07 12:03
处理和完成

在这里你简单的按步处理请求和完成它。如果你没有返回STATUS_PENDING,那是最好的。在前面多数的例子中,我们就是这样处理所有的驱动请求的。我们处理他们,当我们做完时,我们简单的调用IoCompleteRequest

 
2008-06-07 1:57

/**********************************************************************

*

* HandleIrp_RemoveNextIrp

*

 
2008-06-07 1:56

排队和悬而未决

你有权选择排队IRP, 在迟些的时间作处理或者在其他的线程处理。既然你拥有IRP, 当它在你的驱动栈层时,这是被允许的。你需要考虑IRP可以被取消的情况。问题是如果IRP被取消,既然结果将会被扔在一边,你真的不想执行任何处理?

 
   
 
 
文章存档
 
     
 
最新文章评论
  

回复QQ 405360001:是啊,能不能把注释写上来.
 

请问你的QQ号多少呀, 想请教些问题,或者你有论坛吗?
 

请教,在scsi信息中,能否获取到设备的分区类型。
 

文不对题呀! 另外,开始写Python代码前要先学一大堆IDE、装JRE,下载几百M的东西,
 

问题一解决,是版本的问题
   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu