mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 00:13:01 -05:00
A single line change in FspFsvolQueryDirectoryCopy fixes GitHub issue #475. This commit also includes a test for detecting duplicate directory entries. Credit for the investigation and reproduction of this issue goes to GitHub user @hach-que.
81 lines
2.2 KiB
C
81 lines
2.2 KiB
C
/**
|
|
* @file memfs.h
|
|
*
|
|
* @copyright 2015-2022 Bill Zissimopoulos
|
|
*/
|
|
/*
|
|
* This file is part of WinFsp.
|
|
*
|
|
* You can redistribute it and/or modify it under the terms of the GNU
|
|
* General Public License version 3 as published by the Free Software
|
|
* Foundation.
|
|
*
|
|
* Licensees holding a valid commercial license may use this software
|
|
* in accordance with the commercial license agreement provided in
|
|
* conjunction with the software. The terms and conditions of any such
|
|
* commercial license agreement shall govern, supersede, and render
|
|
* ineffective any application of the GPLv3 license to this software,
|
|
* notwithstanding of any reference thereto in the software or
|
|
* associated repository.
|
|
*/
|
|
|
|
#ifndef MEMFS_H_INCLUDED
|
|
#define MEMFS_H_INCLUDED
|
|
|
|
#include <winfsp/winfsp.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct _MEMFS MEMFS;
|
|
|
|
enum
|
|
{
|
|
MemfsDisk = 0x00000000,
|
|
MemfsNet = 0x00000001,
|
|
MemfsDeviceMask = 0x0000000f,
|
|
MemfsCaseInsensitive = 0x80000000,
|
|
MemfsFlushAndPurgeOnCleanup = 0x40000000,
|
|
MemfsLegacyUnlinkRename = 0x20000000,
|
|
MemfsNoSlowio = 0x10000000,
|
|
};
|
|
|
|
#define MemfsCreate(Flags, FileInfoTimeout, MaxFileNodes, MaxFileSize, VolumePrefix, RootSddl, PMemfs)\
|
|
MemfsCreateFunnel(\
|
|
Flags,\
|
|
FileInfoTimeout,\
|
|
MaxFileNodes,\
|
|
MaxFileSize,\
|
|
0/*SlowioMaxDelay*/,\
|
|
0/*SlowioPercentDelay*/,\
|
|
0/*SlowioRarefyDelay*/,\
|
|
0/*FileSystemName*/,\
|
|
VolumePrefix,\
|
|
RootSddl,\
|
|
PMemfs)
|
|
NTSTATUS MemfsCreateFunnel(
|
|
ULONG Flags,
|
|
ULONG FileInfoTimeout,
|
|
ULONG MaxFileNodes,
|
|
ULONG MaxFileSize,
|
|
ULONG SlowioMaxDelay,
|
|
ULONG SlowioPercentDelay,
|
|
ULONG SlowioRarefyDelay,
|
|
PWSTR FileSystemName,
|
|
PWSTR VolumePrefix,
|
|
PWSTR RootSddl,
|
|
MEMFS **PMemfs);
|
|
VOID MemfsDelete(MEMFS *Memfs);
|
|
NTSTATUS MemfsStart(MEMFS *Memfs);
|
|
VOID MemfsStop(MEMFS *Memfs);
|
|
FSP_FILE_SYSTEM *MemfsFileSystem(MEMFS *Memfs);
|
|
|
|
NTSTATUS MemfsHeapConfigure(SIZE_T InitialSize, SIZE_T MaximumSize, SIZE_T Alignment);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|