inzage2003
驱动牛犊
驱动牛犊
  • 注册日期2007-08-28
  • 最后登录2007-12-12
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:1533回复:2

windriver开发的驱动程序怎么和应用程序通信?急

楼主#
更多 发布于:2007-11-30 12:33
用windriver把pci的驱动程序基本开发好了,但是怎么和win32的驱动程序通信啊?譬如说,win32调用函数readfile的时候,它会产生一个irp,同时,realfile自己还有一些关于地址,字节数的参数,怎么传递给windriver里对应的函数呢?都急死了,一般的书上都只有driverstudio这方面的介绍,哪位兄台帮帮忙啊。
heartofdra
驱动牛犊
驱动牛犊
  • 注册日期2003-03-11
  • 最后登录2016-09-21
  • 粉丝0
  • 关注0
  • 积分443分
  • 威望88点
  • 贡献值0点
  • 好评度43点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2007-12-01 02:16
windriver 生成的就是接口,直接调用就行了,

你根本不用去管驱动的事情
gdfyl
驱动牛犊
驱动牛犊
  • 注册日期2007-01-22
  • 最后登录2008-12-28
  • 粉丝0
  • 关注0
  • 积分39分
  • 威望24点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-12-06 10:24
用下面这个函数就可以了。.加QQ:118188577
HANDLE OpenByInterface(
        GUID* pClassGuid,    // points to the GUID that identifies the interface class
        DWORD instance,        // specifies which instance of the enumerated devices to open
        PDWORD pError        // address of variable to receive error status
        )
{
    HANDLE hDev;
    CDeviceInterfaceClass DevClass(pClassGuid, pError);

    if (*pError != ERROR_SUCCESS)
        return INVALID_HANDLE_VALUE;

    CDeviceInterface DevInterface(&DevClass, instance, pError);

    if (*pError != ERROR_SUCCESS)
        return INVALID_HANDLE_VALUE;

    hDev = CreateFile(
        DevInterface.DevicePath(),
        GENERIC_READ | GENERIC_WRITE,
        FILE_SHARE_READ | FILE_SHARE_WRITE,
        NULL,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,
        NULL
        );

    if (hDev == INVALID_HANDLE_VALUE)
        *pError = GetLastError();

    return hDev;
}
游客

返回顶部