阅读:2291回复:9
zwwritefile() 怎么用??
那位大侠用过 zwwritefile()?
我想用它把我的数据结构写到文件中,可是怎么也写不进去 急死我了?? PDEVICE_EXTENSION device_extension // ZwWriteFile( device_extension->sec_file_handle, NULL, NULL, NULL, &In_Irp->IoStatus, (PVOID)device_extension sizeof(*device_extension), offset, NULL) ZwWriteFile 是不是对buffer和length有什么要求, [编辑 - 4/12/02 作者: du_lin] |
|
沙发#
发布于:2002-04-12 10:08
检查一下ZwWriteFile的返回值,看看In_Irp->IoStatus.Information的数值是多少,这个地方返回实际写入的数据长度。OFFSET设置是否正确
:P :P :P |
|
|
板凳#
发布于:2002-04-12 14:07
OFFSET 是LARGE_INTEGER
到底那一项是文件偏移量, 指点一下,怎么用? 这么创建文件是不是可以任意读写??? ZwCreateFile( &device_extension->sec_file_handle, GENERIC_READ | GENERIC_WRITE, &object_attributes, &In_Irp->IoStatus, &open_file_information->FileSize, FILE_ATTRIBUTE_NORMAL, 0, FILE_OPEN_IF, FILE_NON_DIRECTORY_FILE | FILE_RANDOM_ACCESS | FILE_NO_INTERMEDIATE_BUFFERING | FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0 ); |
|
地板#
发布于:2002-04-12 14:09
你的File Handle是否正确?应该用ZwCreateFile打开。另外,你说的写不进去是什么意思?检查ZwWriteFile的返回值了吗?说什么?
|
|
|
地下室#
发布于:2002-04-12 14:21
用ConvertLongToLargeInteger将偏移量转换成LARGE_INTEGER
|
|
|
5楼#
发布于:2002-04-12 15:05
zwwritefile() 的返回值是0xC0000002
STATUS_NOT_IMPLEMENTED 是不是函数未执行的意思? 有没有你调通的原码,给一段,感激不尽, :o :o :o |
|
6楼#
发布于:2002-04-12 15:07
文件的handle 肯定有。
ConvertLongToLargeInteger 去那里找啊? [编辑 - 4/12/02 作者: du_lin] |
|
7楼#
发布于:2002-04-12 16:31
NTSTATUS ntStatus;
OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING UniFileName; PCWSTR FileName = L\"\\\\DosDevice\\\\c:\\\\readme.txt\" RtlInitUnicodeString(&UniFileName , FileName); InitializeObjectAttributes(&ObjectAttributes,&UniFileName, OBJ_CASE_INSENSITIVE,NULL,NULL); ntStatus=ZwCreateFile(FileHandle, GENERIC_WRITE|SYNCHRONIZE|GENERIC_READ, &ObjectAttributes, &IoStatusBlock, 0, FILE_ATTRIBUTE_NORMAL, FILE_SHARE_DELETE, FILE_OPEN_IF, FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0); // IO_STATUS_BLOCK IoStatusBlock; ntStatus=ZwWriteFile(FileHandle, 0, 0, 0, &IoStatusBlock, Buffer, Length, NULL, NULL); |
|
|
8楼#
发布于:2002-04-15 07:53
对不起,是我写错了。应该是RtlConvertLongToLargeInteger
|
|
|
9楼#
发布于:2002-04-15 11:46
谢谢二位
我在zwcreatefile 中改了几个参数,就行了。 |
|