i11usi0n
驱动牛犊
驱动牛犊
  • 注册日期2002-04-18
  • 最后登录2006-05-22
  • 粉丝0
  • 关注0
  • 积分81分
  • 威望10点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:910回复:1

wdm驱动中怎么得到vxd的驱动对象

楼主#
更多 发布于:2002-05-28 09:18
如题:
我要在wdm驱动中对98下的Lpt.vxd发送alloc 和freeport消息,如何实现
i11usi0n
驱动牛犊
驱动牛犊
  • 注册日期2002-04-18
  • 最后登录2006-05-22
  • 粉丝0
  • 关注0
  • 积分81分
  • 威望10点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-05-29 17:58
我在driverwork文档里看到有一个KVxdinterface,我不知道打印端口的vxdname什么,试着填上\"LPT\",\"LPT1\"发现,不论是什么动作(比如打开硬盘....)他都跳进处理子程序里,但是它的控制信息不是W32_DEVICEIOCONTROL,但它能成功的初始化m_vxd


KVxdInterface m_vxd;
MEMBER_VXDCONTROLDISPATCHER(ParallelDevice, VxDControl )

//初始化
BOOLEAN Success;
    Success = m_vxd.Initialize(\"LPT1\",LinkTo(VxDControl),this);
if(Success)
{
t<<\"we can access lpt\"<<EOL;
}
else
{
t<<\"failed\"<<EOL;
return ;
}




ULONG ParallelDevice::VxDControl(ULONG ControlMessage, ULONG Edi, ULONG Esi, ULONG Ebx, ULONG Edx, ULONG Ecx, ULONG *pCarryBitReturn)
{
if (ControlMessage == W32_DEVICEIOCONTROL)
{
PIOCTLPARAMS p = PIOCTLPARAMS(Esi);
t<<\"---allocate222222---\"<<EOL;

switch (p->dioc_IOCtlCode)
{
case IOCTL_PARALLEL_OPEN:
t<<\"please tell me if receive the message\"<<EOL;
return STATUS_SUCCESS;
default:
return STATUS_NOT_IMPLEMENTED;
}
}
else
{
                     t<<\"left\"<<EOL;
*pCarryBitReturn = 0;
     return 0;
}
}



大虾们救救我!!!!!!!!!!!!!!


[编辑 -  5/29/02 by  i11usi0n]
游客

返回顶部