阅读:1171回复:9
驱动学习了2个月,这个问题还没有解决!
看下面的例子,
目的使currentIrpStack->FileObject->FileName等于C盘下的1.txt. WCHAR *newfile = NULL; ExFreePool(currentIrpStack->FileObject->FileName.Buffer); newfile = ExAllocatePoolWithTag(PagedPool,13 * sizeof(WCHAR),'XXXX'); wcscpy(newfile, L"\Device\c:\1.txt"); RtlInitUnicodeString(¤tIrpStack->FileObject->FileName, newfile); 请问我的wcscpy()函数中第二个参数定义的对吗? 还有Device 和DeviceDos有什么区别? [编辑 - 10/27/04 by aasa2] [编辑 - 10/28/04 by aasa2] |
|
|
沙发#
发布于:2004-10-27 18:24
应该带盘符吧
wcscpy(newfile, L"Devicec\\c:\\1.txt"); Device 和DosDevice都用于符号连接的名 |
|
|
板凳#
发布于:2004-10-28 11:59
是这样吗?
\\Device\\c:\\1.txt [编辑 - 10/28/04 by aasa2] [编辑 - 10/28/04 by aasa2] |
|
|
地板#
发布于:2004-10-28 12:22
是这样吗? 当然不行 |
|
|
地下室#
发布于:2004-10-28 12:48
请 AllenZh
指点一下 |
|
|
5楼#
发布于:2004-10-28 14:37
使用
L"\\DosDevices\\C:\\1.txt"表示C盘下的1.txt 使用的是symbol name,不在device命令空间中。 |
|
|
6楼#
发布于:2004-10-28 17:51
使用 \??\C:\1.txt is better |
|
|
7楼#
发布于:2004-10-29 08:56
因为“\\??\\C:\\1.txt”DDK编译提示警告。
所以我修改了如下: “\\\\??\\\\C:\\\\1.txt” “\\\\DosDevices\\\\C:\\\\1.txt” 但是我的程序还是有错,可能是其他代码有问题。 谢谢大家。 [编辑 - 10/29/04 by aasa2] [编辑 - 10/29/04 by aasa2] |
|
|
8楼#
发布于:2004-10-29 10:16
因为“\??\C:\1.txt”DDK编译提示警告。 在C中输入"\\"需要输入2个,因为"\\"是特殊字符(转义),编译器需要特别处理的 |
|
|
9楼#
发布于:2004-10-29 10:35
aasa2兄,顺便告诉一下,你的mail我有给你回复,请查收
|
|
|