mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-23 00:43:00 -05:00
sys: FspFsvolQueryStreamInformation* testing
This commit is contained in:
parent
ab2908a9ee
commit
e2d4b36057
@ -1004,7 +1004,7 @@ FSP_FSCTL_STATIC_ASSERT(
|
|||||||
sizeof(UINT16) == sizeof ((FSP_FSCTL_DIR_INFO *)0)->Size &&
|
sizeof(UINT16) == sizeof ((FSP_FSCTL_DIR_INFO *)0)->Size &&
|
||||||
sizeof(UINT16) == sizeof ((FSP_FSCTL_STREAM_INFO *)0)->Size,
|
sizeof(UINT16) == sizeof ((FSP_FSCTL_STREAM_INFO *)0)->Size,
|
||||||
"FSP_FSCTL_DIR_INFO::Size and FSP_FSCTL_STREAM_INFO::Size: sizeof must be 2.");
|
"FSP_FSCTL_DIR_INFO::Size and FSP_FSCTL_STREAM_INFO::Size: sizeof must be 2.");
|
||||||
static BOOLEAN FspFileSystemAddXxxInfo(PVOID Info, SIZE_T InfoSize,
|
static BOOLEAN FspFileSystemAddXxxInfo(PVOID Info,
|
||||||
PVOID Buffer, ULONG Length, PULONG PBytesTransferred)
|
PVOID Buffer, ULONG Length, PULONG PBytesTransferred)
|
||||||
{
|
{
|
||||||
static UINT8 Zero[sizeof(UINT16)] = { 0 };
|
static UINT8 Zero[sizeof(UINT16)] = { 0 };
|
||||||
@ -1038,7 +1038,7 @@ static BOOLEAN FspFileSystemAddXxxInfo(PVOID Info, SIZE_T InfoSize,
|
|||||||
FSP_API BOOLEAN FspFileSystemAddDirInfo(FSP_FSCTL_DIR_INFO *DirInfo,
|
FSP_API BOOLEAN FspFileSystemAddDirInfo(FSP_FSCTL_DIR_INFO *DirInfo,
|
||||||
PVOID Buffer, ULONG Length, PULONG PBytesTransferred)
|
PVOID Buffer, ULONG Length, PULONG PBytesTransferred)
|
||||||
{
|
{
|
||||||
return FspFileSystemAddXxxInfo(DirInfo, sizeof *DirInfo, Buffer, Length, PBytesTransferred);
|
return FspFileSystemAddXxxInfo(DirInfo, Buffer, Length, PBytesTransferred);
|
||||||
}
|
}
|
||||||
|
|
||||||
FSP_API BOOLEAN FspFileSystemFindReparsePoint(FSP_FILE_SYSTEM *FileSystem,
|
FSP_API BOOLEAN FspFileSystemFindReparsePoint(FSP_FILE_SYSTEM *FileSystem,
|
||||||
@ -1305,5 +1305,5 @@ FSP_API NTSTATUS FspFileSystemCanReplaceReparsePoint(
|
|||||||
FSP_API BOOLEAN FspFileSystemAddStreamInfo(FSP_FSCTL_STREAM_INFO *StreamInfo,
|
FSP_API BOOLEAN FspFileSystemAddStreamInfo(FSP_FSCTL_STREAM_INFO *StreamInfo,
|
||||||
PVOID Buffer, ULONG Length, PULONG PBytesTransferred)
|
PVOID Buffer, ULONG Length, PULONG PBytesTransferred)
|
||||||
{
|
{
|
||||||
return FspFileSystemAddXxxInfo(StreamInfo, sizeof *StreamInfo, Buffer, Length, PBytesTransferred);
|
return FspFileSystemAddXxxInfo(StreamInfo, Buffer, Length, PBytesTransferred);
|
||||||
}
|
}
|
||||||
|
@ -1052,6 +1052,8 @@ BOOLEAN FspFileNodeTrySetStreamInfo(FSP_FILE_NODE *FileNode, PCVOID Buffer, ULON
|
|||||||
static inline
|
static inline
|
||||||
ULONG FspFileNodeStreamInfoChangeNumber(FSP_FILE_NODE *FileNode)
|
ULONG FspFileNodeStreamInfoChangeNumber(FSP_FILE_NODE *FileNode)
|
||||||
{
|
{
|
||||||
|
if (0 != FileNode->MainFileNode)
|
||||||
|
FileNode = FileNode->MainFileNode;
|
||||||
return FileNode->StreamInfoChangeNumber;
|
return FileNode->StreamInfoChangeNumber;
|
||||||
}
|
}
|
||||||
VOID FspFileNodeNotifyChange(FSP_FILE_NODE *FileNode, ULONG Filter, ULONG Action);
|
VOID FspFileNodeNotifyChange(FSP_FILE_NODE *FileNode, ULONG Filter, ULONG Action);
|
||||||
|
@ -1073,6 +1073,9 @@ BOOLEAN FspFileNodeReferenceStreamInfo(FSP_FILE_NODE *FileNode, PCVOID *PBuffer,
|
|||||||
{
|
{
|
||||||
// !PAGED_CODE();
|
// !PAGED_CODE();
|
||||||
|
|
||||||
|
if (0 != FileNode->MainFileNode)
|
||||||
|
FileNode = FileNode->MainFileNode;
|
||||||
|
|
||||||
FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension =
|
FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension =
|
||||||
FspFsvolDeviceExtension(FileNode->FsvolDeviceObject);
|
FspFsvolDeviceExtension(FileNode->FsvolDeviceObject);
|
||||||
FSP_FILE_NODE_NONPAGED *NonPaged = FileNode->NonPaged;
|
FSP_FILE_NODE_NONPAGED *NonPaged = FileNode->NonPaged;
|
||||||
@ -1089,6 +1092,9 @@ VOID FspFileNodeSetStreamInfo(FSP_FILE_NODE *FileNode, PCVOID Buffer, ULONG Size
|
|||||||
{
|
{
|
||||||
// !PAGED_CODE();
|
// !PAGED_CODE();
|
||||||
|
|
||||||
|
if (0 != FileNode->MainFileNode)
|
||||||
|
FileNode = FileNode->MainFileNode;
|
||||||
|
|
||||||
FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension =
|
FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension =
|
||||||
FspFsvolDeviceExtension(FileNode->FsvolDeviceObject);
|
FspFsvolDeviceExtension(FileNode->FsvolDeviceObject);
|
||||||
FSP_FILE_NODE_NONPAGED *NonPaged = FileNode->NonPaged;
|
FSP_FILE_NODE_NONPAGED *NonPaged = FileNode->NonPaged;
|
||||||
@ -1114,7 +1120,7 @@ BOOLEAN FspFileNodeTrySetStreamInfo(FSP_FILE_NODE *FileNode, PCVOID Buffer, ULON
|
|||||||
{
|
{
|
||||||
// !PAGED_CODE();
|
// !PAGED_CODE();
|
||||||
|
|
||||||
if (FileNode->StreamInfoChangeNumber != StreamInfoChangeNumber)
|
if (FspFileNodeStreamInfoChangeNumber(FileNode) != StreamInfoChangeNumber)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
FspFileNodeSetStreamInfo(FileNode, Buffer, Size);
|
FspFileNodeSetStreamInfo(FileNode, Buffer, Size);
|
||||||
@ -1125,6 +1131,9 @@ static VOID FspFileNodeInvalidateStreamInfo(FSP_FILE_NODE *FileNode)
|
|||||||
{
|
{
|
||||||
// !PAGED_CODE();
|
// !PAGED_CODE();
|
||||||
|
|
||||||
|
if (0 != FileNode->MainFileNode)
|
||||||
|
FileNode = FileNode->MainFileNode;
|
||||||
|
|
||||||
PDEVICE_OBJECT FsvolDeviceObject = FileNode->FsvolDeviceObject;
|
PDEVICE_OBJECT FsvolDeviceObject = FileNode->FsvolDeviceObject;
|
||||||
FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension = FspFsvolDeviceExtension(FsvolDeviceObject);
|
FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension = FspFsvolDeviceExtension(FsvolDeviceObject);
|
||||||
FSP_FILE_NODE_NONPAGED *NonPaged = FileNode->NonPaged;
|
FSP_FILE_NODE_NONPAGED *NonPaged = FileNode->NonPaged;
|
||||||
|
@ -364,8 +364,8 @@ static NTSTATUS FspFsvolQueryStreamInformationCopy(
|
|||||||
PVOID DestBuf, PULONG PDestLen)
|
PVOID DestBuf, PULONG PDestLen)
|
||||||
{
|
{
|
||||||
#define STREAM_TYPE ":$DATA"
|
#define STREAM_TYPE ":$DATA"
|
||||||
#define STREAM_TYPE_LENGTH (sizeof L"" STREAM_TYPE - sizeof "")
|
#define STREAM_TYPE_LENGTH (sizeof L"" STREAM_TYPE - sizeof(WCHAR))
|
||||||
#define STREAM_EXTRA_LENGTH (sizeof L":" STREAM_TYPE - sizeof "")
|
#define STREAM_EXTRA_LENGTH (sizeof L":" STREAM_TYPE - sizeof(WCHAR))
|
||||||
#define FILL_INFO()\
|
#define FILL_INFO()\
|
||||||
do\
|
do\
|
||||||
{\
|
{\
|
||||||
|
Loading…
x
Reference in New Issue
Block a user