kj_stone
驱动牛犊
驱动牛犊
  • 注册日期2003-09-14
  • 最后登录2004-07-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1434回复:15

大家帮我找找我的inf文件

楼主#
更多 发布于:2004-06-30 19:05
我安装了driverstudio3.1 但怎么着也不能用SrcToDsp.exe生成source文件后来自己在别的地方抄了一个
TARGETNAME = DRIVERNAME
TARGETPATH = obJ
TARGETTYPE = DRIVER
DRIVERTYPE = WDM
TARGETEXT = SYS
编译后只生成了.sys文件,却没有生成.dll和.inf文件。

驱动的书、网上的心得和前人的源程序都看了不少,感觉有了一些理解,开始自己写程序了。刚写了一个只有AddDevice和DriverUnload的程序想试试,却。。。
我在驱动泡了一个星期,也郁闷了一个星期,希望斑竹和大家能帮帮我
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-06-30 21:49
ft
SrcToDsp从字面上看都是生成VC6用的dsp文件,怎么会来source?是根据source产生dsp
inf文件也不是build出来的,自己写,或者根据现成的改改也行
kj_stone
驱动牛犊
驱动牛犊
  • 注册日期2003-09-14
  • 最后登录2004-07-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-30 22:11
SrcToDsp支持先生成一个source文件,再根据source文件生成dsp。
inf怎么写,arthurtu 能不能帮我一把。我看别人的inf不知道里面的内容什么意思,看不懂,不知道要怎么改成我自己的。还有我的dll也没有生成 :mad:
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-01 07:50
直接看DS生成的INF文件,大部分内容是不需要修改的。DDK的帮助文档里有INF文件的详细内容。。。。
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2004-07-01 11:50
srctodsp还能生成source文件?3.1还支持这个呀?
也可以用source来build一个dll,但是你要再写个source文件
kj_stone
驱动牛犊
驱动牛犊
  • 注册日期2003-09-14
  • 最后登录2004-07-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-01 18:23
是不是把TARGETEXT的值设成dll就可以了?还是要怎么做指点一下。
还有,inf、sys和dll各起什么作用
kj_stone
驱动牛犊
驱动牛犊
  • 注册日期2003-09-14
  • 最后登录2004-07-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-07-01 18:30
arthurtu:
要build出dll来我的source要怎么写,谢谢。
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-07-02 12:53
inf文件是驱动程序索引文件,操作系统根据硬件的vid(厂商id)、pid(产品id)搜索相应的inf文件,再根据inf文件中指明的硬件类、驱动文件加载驱动程序。我也是初学者。不知说得对不对。
是不是把TARGETEXT的值设成dll就可以了?还是要怎么做指点一下。
还有,inf、sys和dll各起什么作用
 
新手上路,请多关照.
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2004-07-02 18:00
arthurtu:
要build出dll来我的source要怎么写,谢谢。


TARGETTYPE=DYNLINK

When you build a dynamic link, you might also need to set the TARGETEXT macro.
If this macro is not defined, the .dll extension will be used.


why not VC?
kj_stone
驱动牛犊
驱动牛犊
  • 注册日期2003-09-14
  • 最后登录2004-07-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-07-03 09:33
arthurtu:
    TARGETTYPE=LIBRARY|DYNLINK我都试过还是不行,不知道哪搞错了。我用ds3.1根据source生成的dsp做的。
请你看看我的东西,谢谢。

*.c
#include "WDMTest.h"

NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
{
    DriverObject->DriverExtension->AddDevice = ThisDriver_AddDevice;
    DriverObject->DriverUnload = ThisDriver_Unload;
    return STATUS_SUCCESS;
}

NTSTATUS
ThisDriver_AddDevice(
    IN PDRIVER_OBJECT DriverObject,
    IN PDEVICE_OBJECT PhysicalDeviceObject
    )
{
    NTSTATUS ntStatus;
    PDEVICE_OBJECT  pDevice;
    UNICODE_STRING uniDeviceName;
    
    RtlInitUnicodeString( &uniDeviceName, DEVICE_NAME );
    if( IoCreateDevice(
                 DriverObject,
                 sizeof(St_DEVICE_EXT),
                 &uniDeviceName,
                 FILE_DEVICE_UNKNOWN,
                 0,
                 FALSE,
                 &pDevice ) == STATUS_SUCCESS )
    {
        UNICODE_STRING uniLinkName;
        RtlInitUnicodeString( &uniLinkName, DOS_DEVICE_NAME );

ntStatus = IoCreateUnprotectedSymbolicLink(&uniLinkName,
  &uniDeviceName);

        pDevice->Flags |= DO_DIRECT_IO;
        pDevice->Flags &= ~DO_DEVICE_INITIALIZING;
    }

    return ntStatus;
}  

VOID
ThisDriver_Unload(
    IN PDRIVER_OBJECT DriverObject
    )
{
    UNICODE_STRING uniLinkName;
    RtlInitUnicodeString( &uniLinkName, DOS_DEVICE_NAME );

if( NT_SUCCESS( IoDeleteSymbolicLink(&uniLinkName) ) )
    {
        IoDeleteDevice( DriverObject->DeviceObject );
    }
}

*.h
#ifndef WDMTest_H
#define WDMTest_H

#include <wdm.h>
VOID
ThisDriver_Unload(
    IN PDRIVER_OBJECT DriverObject
    );


NTSTATUS
ThisDriver_AddDevice(
    IN PDRIVER_OBJECT DriverObject,
    IN PDEVICE_OBJECT PhysicalDeviceObject
    );

#define DEVICE_NAME         L"\\Device\\WDMTest"
#define DOS_DEVICE_NAME     L"\\DosDevices\\WDMTest"

typedef struct
{
    PDEVICE_OBJECT DeviceObject;    
}St_DEVICE_EXT;

#endif

source
TARGETNAME = first
TARGETPATH = obj
TARGETTYPE = LIBRARY
DRIVERTYPE = WDM
TARGETEXT = macro
INCLUDES=$(BASEDIR)inc

 
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2004-07-03 12:24
或许先知道一些dll和WDM驱动的概念好些
你的c文件是驱动(sys),并不是dll
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-07-03 17:04
还是先看看书或者MSDN吧,你的问题很基础,但你什么都不懂,要手把手教也需要一端时间呀?至少3月,看你提问的情况好象的C,C++这样的基础也不太够噢,还没有会走路就要跑,的确也难为你了。
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
kj_stone
驱动牛犊
驱动牛犊
  • 注册日期2003-09-14
  • 最后登录2004-07-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-07-05 09:51
arthurtu,llenZh:
    你们讲得很对,这都是boss逼得。
    之前我用c也用了4年了,主要是做算法的;dll也写过。
    为了完成这次任务我也看了一些资料(主要是《WIN2000驱动程序设计》--翟洪涛和《Windows Driver Model》--驱动开发网)。这两本书我反复看了很多次,也看了不少网友提供的源码。感觉对"驱动"的工作原理还不怎么了解(看书只是树上怎么写就怎么记着,并不理解、不知道为什么。看了个“知其然”,并不能做到“知其所以然”)。但对"驱动程序"的结构和实现的流程(每个例程规定性的进行一些“初始化处理”,然后实现自己的功能)有了一定的了解,所以准备由潜入深的一步步开始动手写(在参考网友写过的驱动程序的基础上)。一动手,发现自己ddk也不会用。后来又在驱动泡了几、问了几天,发现了ds,就到了现在这个地步。我在网上找了很多天,对于介绍怎么使用ddk、ABC怎么白手起家写出一个简单的驱动程序文章很少。这种对于工具最简单的使用本不应该成为ABC进入驱动领域的拦路虎,现在确成了我始终不能逾越的障碍。
    我个人觉得,驱动程序这一块主要是做计算机和其他数码设备的接口(包括各种接口的数
据采集、通信),所以它最主要的功能比较固定--读数据和写数据。这也导致相同总线或接口(如PCI、USB、fireware等)的驱动程序的基本构架比较固定,程序相似度很高。同时因为它运行在操作系统低层要和硬件部分打交道,而这部分又是ABC开发人员所不熟悉,所以这部分将成为驱动程序入门的难点。
    综上,只要有详细、适当的入门指导:包括开发工具的使用(ddk、driverstudio),简单驱动程序构成(这部分网上资源比较丰富),驱动程序开发流程(这个在《WIN2000驱动程序设计》一书中已有介绍,但各部分分开了,不系统)。ABC要想成为一个初级的驱动程序开发人员,完全是可以在比较短的时间内实现的。所谓“师父领进门,修行靠个人”。希望驱动开发网能做好这个引路人,让ABC能快速的跨入驱动开发这张大门。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
13楼#
发布于:2004-07-05 11:55
你可以这样认为:用DDK的build.exe,一个source文件就生成一个文件,可能是sys,也可以是dll,exe,看TARGETTYPE。但是你也不能硬把一个是sys结构的代码,去生成dll呀
也没有听说build还会帮你生成inf文件的,inf文件就是一文本文件,抄抄就可以的。inf,就是information,包含某个/类硬件的一些information,如驱动文件是哪个,在哪,厂商等。
sys就是运行在内核的驱动文件了。
dll是运行在用户层的dynamic link lib
kj_stone
驱动牛犊
驱动牛犊
  • 注册日期2003-09-14
  • 最后登录2004-07-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-07-05 12:16
谢谢arthurtu的热心回复,对于这个具体的问题我有所解了。
对我以后的路怎么走能否指点一二
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
15楼#
发布于:2004-07-05 13:10
在本版的精华区,有个blue的《对初学驱动开发者的书籍介绍》帖子,不错的。
指点不敢,以后的路更是不敢乱说了。
游客

返回顶部