阅读:3196回复:14
驱动程序中如何得到目录中的文件列表
我想得到目录中的文件列表
是不是先用目录路径创建一个文件对象,然后用zwcreatfile()打开 可是如果这者样,然后怎么办那?? 大侠指点一下了,多谢 :P |
|
最新喜欢:baoyib... |
沙发#
发布于:2002-04-17 13:19
谢谢,原来在IFS中啊
|
|
板凳#
发布于:2002-04-19 16:53
这么用为什么不对,返回代码是0X103,是什么意思?
到那里去查这个代码的定义呢? file_names_information_buf = (PFILE_NAMES_INFORMATION)ExAllocatePool( NonPagedPool, sizeof(FILE_NAMES_INFORMATION) ); status1=ZwQueryDirectoryFile( dir_handle, NULL, NULL, NULL, &In_Irp->IoStatus, file_names_information_buf, sizeof(FILE_NAMES_INFORMATION), FileNamesInformation, TRUE, NULL, TRUE ); |
|
地板#
发布于:2002-04-21 16:53
这个问题我也想知道,为什么没有人回答。
|
|
地下室#
发布于:2002-04-21 20:58
这是我的代码,设置FILE_INFORMATION_CLASS和PUNICODE_STRING 得到你想要的文件和目录。可能还有更好的方法
NTSYSAPI NTSTATUS NTAPI ZwQueryDirectoryFile( IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FileInformation, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInformationClass, IN BOOLEAN ReturnSingleEntry, IN PUNICODE_STRING FileName OPTIONAL, IN BOOLEAN RestartScan ); ------------------------ #1 : status = ZwCreateFile( &fileHandle, GENERIC_READ, &objectAttributes, &IoStatus, 0, FILE_ATTRIBUTE_DIRECTORY, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, FILE_OPEN, FILE_DIRECTORY_FILE, NULL, 0 ); #2 : status = ZwCreateEvent(&eventHandle, GENERIC_ALL, 0, NotificationEvent, FALSE); #3 : status = ZwQueryDirectoryFile(fileHandle, eventHandle,0, 0, &Iosb, Buffer, sizeof(Buffer), FileBothDirectoryInformation, FALSE, NULL, FALSE ); if (status == STATUS_PENDING) { status = ZwWaitForSingleObject(eventHandle, TRUE, 0); } #4 : DirInformation = (PFILE_BOTH_DIR_INFORMATION)Buffer; for (;;) { UNICODE_STRING EntryName; EntryName.MaximumLength = EntryName.Length = (USHORT)DirInformation->FileNameLength; EntryName.Buffer = &DirInformation->FileName[0]; if (DirInformation->NextEntryOffset == 0) { break; } else { DirInformation = (PFILE_BOTH_DIR_INFORMATION)(((PUCHAR)DirInformation) + DirInformation->NextEntryOffset); } } ZwClose(eventHandle); ZwClose(fileHandle); |
|
5楼#
发布于:2002-04-22 10:09
在IFS中,你可以装一个,然后就可以调用了
|
|
6楼#
发布于:2002-04-23 18:34
是的,可以直接调用,声明结构和函数就可
在ISF的帮助中有说明 |
|