ZwQueryDirectoryFile恢复

ZwQueryDirectoryFile恢复,c,windows,winapi,filesystems,C,Windows,Winapi,Filesystems,如果我必须扫描包含大量实体的文件夹,那么我将调用ZwQueryDirectoryFile api(我需要从Nt级别使用它)。。。文件逐阶段分配大小为4096的缓冲区。 这是一种常见用法。除了第一次,每次我都必须将restartscan参数保持为NULL,才能完成工作。 我需要知道它的内部结构。第二个ZwQueryDirectoryFile调用如何从正确的位置恢复抓取。如何提供或存储eindex以正确恢复。来自: 当为特定句柄调用ZwQueryDirectoryFile例程时,RestartSca

如果我必须扫描包含大量实体的文件夹,那么我将调用ZwQueryDirectoryFile api(我需要从Nt级别使用它)。。。文件逐阶段分配大小为4096的缓冲区。 这是一种常见用法。除了第一次,每次我都必须将restartscan参数保持为NULL,才能完成工作。 我需要知道它的内部结构。第二个ZwQueryDirectoryFile调用如何从正确的位置恢复抓取。如何提供或存储eindex以正确恢复。

来自:

当为特定句柄调用ZwQueryDirectoryFile例程时,RestartScan参数被视为已设置为TRUE,而不管其值如何。在随后的ZwQueryDirectoryFile调用中,将使用RestartScan参数的值


您可以由此推断枚举的状态以某种方式与文件句柄相关联。

RestartScan是一个布尔值。第一次调用为True,继续调用为false。没有索引参数。你找到文档了吗?@David Heffernan,是的,你是正确的,没有索引参数,但是它如何保存最后的数据偏移量以便在下一次调用中继续…这是我的问题..你从zwopen获得的句柄是管理恢复的;它是指向内部结构的抽象指针,允许后续调用获取下一个文件。你不必担心它的实现,windows会处理它,你只需要不断地传递它。