baohongyu1979
驱动牛犊
驱动牛犊
  • 注册日期2002-12-16
  • 最后登录2007-09-12
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:963回复:0

【求助】如何在驱动创建PIPE

楼主#
更多 发布于:2007-09-12 12:22
【求助】如何在驱动创建PIPE

我在驱动中创建PIPE 可是不成功

//#define NAMED_PIPE_NAME L"\\??\\.\\pipe\\abc2"
//#define NAMED_PIPE_NAME L"\\\\.\\pipe\\abc2"

//#define NAMED_PIPE_NAME L"\\Device\\NamedPipe\\some_pipe"
//#define NAMED_PIPE_NAME L"\\.\\Pipe\\some_pipe"

这四个名字我都试过,第一个和第二个就是直接返回失败,后两个一执行,驱动的里调用创建PIPE的线程就挂在那儿了。然后我的XP系统的声音驱动就不做事了。正在用千千静听,等一首音乐结束后,播放下一个MP3的时候,就没声音了。估计在播放下音乐的时候,创建声音驱动失败。可能是让我那个驱动给搞挂起了。

创建PIPE的代码:
IO_STATUS_BLOCK ioStatusBlock;
          NTSTATUS   ntStatus;
LARGE_INTEGER nTimeOut;
UNICODE_STRING     namedPipe;  
OBJECT_ATTRIBUTES     attr;

RtlInitUnicodeString ( &namedPipe, NAMED_PIPE_NAME );
InitializeObjectAttributes (
  &attr,
  &namedPipe,
  OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
    NULL,
  NULL
  );
  nTimeOut.QuadPart = -1000;
ntStatus = ZwCreateNamedPipeFile (
    &g_hNamedPipeHandle,
    FILE_ANY_ACCESS,
    &attr,
    &ioStatusBlock,
    FILE_SHARE_READ | FILE_SHARE_WRITE,
    FILE_CREATE,
    0,
    FILE_PIPE_BYTE_STREAM_TYPE,
    FILE_PIPE_BYTE_STREAM_MODE,
    FILE_PIPE_QUEUE_OPERATION,
    1,
    1000,
    1000,
    &nTimeOut
    );

这段代码是在劲动创建的线程里调用的。
游客

返回顶部