luohua2007
驱动牛犊
驱动牛犊
  • 注册日期2007-04-30
  • 最后登录2008-10-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望50点
  • 贡献值0点
  • 好评度46点
  • 原创分0分
  • 专家分0分
阅读:1257回复:1

KDM建立设备接口的函数是哪个呢,是IoRegisterDeviceInterface吗

楼主#
更多 发布于:2008-09-02 00:17
下面的是WDM驱动,可以用IoRegisterDeviceInterface方便的注册一个设备接口让WIN32程序使用,

可是我的是KDM驱动  ,我也想注册一个设备接口 ,提供给WIN32程序使用, 但是我不知道用什么函数,用IoRegisterDeviceInterface这个函数把,第一个参数PDO,我不知道该填写什么好,NT式驱动设备都在DriverEntry建立安装好了,又没有PNP例程,

现在 请问大家  NT式驱动该如何建立设备接口呢 它的函数是哪个呢 ,如果也是IoRegisterDeviceInterface的话,该在什么地方建立设备接口呢  ,它的第一个参数该如何填写呢,

WDM设备建立设备接口我会,但是一直没有见过NT式的  ,网上书上 都没找见 ,请大家指点我一下把

谢谢了


NTSTATUS Wdm1AddDevice(    IN PDRIVER_OBJECT DriverObject,IN PDEVICE_OBJECT pdo)
{
    DebugPrint("AddDevice");
    NTSTATUS status;
    PDEVICE_OBJECT fdo;
status = IoCreateDevice (DriverObject,
        sizeof(WDM1_DEVICE_EXTENSION),
        NULL,    // No Name
        FILE_DEVICE_UNKNOWN,
        0,
        FALSE,    // Not exclusive
        &fdo);
    if( !NT_SUCCESS(status))
        return status;

    PWDM1_DEVICE_EXTENSION dx = (PWDM1_DEVICE_EXTENSION)fdo->DeviceExtension;
    dx->fdo = fdo;
    DebugPrint("FDO is %x",fdo);

    
    status = IoRegisterDeviceInterface(pdo, &WDM1_GUID, NULL, &dx->ifSymLinkName);
    IoSetDeviceInterfaceState(&dx->ifSymLinkName, TRUE);
dx->NextStackDevice = IoAttachDeviceToDeviceStack(fdo,pdo);


    fdo->Flags |= DO_BUFFERED_IO|DO_POWER_PAGABLE;
    fdo->Flags &= ~DO_DEVICE_INITIALIZING;

    return STATUS_SUCCESS;
}
luohua2007
驱动牛犊
驱动牛犊
  • 注册日期2007-04-30
  • 最后登录2008-10-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望50点
  • 贡献值0点
  • 好评度46点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-09-02 12:47
网上有人说KDM驱动只能用符号连接,不能用设备接口方式  是不是真的啊
游客

返回顶部