阅读:963回复:0
【求助】如何在驱动创建PIPE
【求助】如何在驱动创建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 ); 这段代码是在劲动创建的线程里调用的。 |
|