82{
96
109 {
113 }
116 return;
117
118
120 if (FsAttributeInfo ==
NULL)
121 {
122 ok(
FALSE,
"Failed to allocate memory to query the filesystem!\n");
124 return;
125 }
126
129 FsAttributeInfo,
130 FSAttributeBufferSize,
133 {
136 {
138 trace(
"Filesystem: NTFS\n");
139 }
142 {
144 trace(
"Filesystem: FAT32\n");
145 }
146 else
147 {
153 trace(
"Unknown filesystem: %wZ\n", &FsName);
154 }
155 }
156 else
157 {
159 }
160
162
163
165 {
166
171 if (FileAllInfo)
173
174
179 if (FileAllInfo)
181
182
183
184
185
190 if (FileAllInfo)
192 }
193
194
199 if (FileAllInfo)
201
202
207 {
208 goto NoInfo;
209 }
210
215 {
218 NameLength);
220 ok(
Name[0] ==
L'\\',
"Name is %ls, expected first char to be \\\n",
Name);
221 ok(NameLength >= Ntoskrnl.
Length +
sizeof(
WCHAR),
"NameLength %lu too short\n", NameLength);
222 if (NameLength >= Ntoskrnl.
Length)
223 {
228 "Name ends in '%wZ', expected %wZ\n", &NamePart, &Ntoskrnl);
229 }
231 }
233 "Char past FileName is %x\n",
235 if (FileAllInfo)
237
238
243 if (FileAllInfo)
245
246
254 if (FileAllInfo)
256
257
262 if (FileAllInfo)
264
265
270 if (FileAllInfo)
272
273
278 if (FileAllInfo)
280
282 Length =
sizeof(*FileEofInfo);
284
288 "Invalid length (0x%X)\n",
Length);
289 if (FileEofInfo)
291
292NoInfo:
295}
static NTSTATUS QueryFileInfo(_In_ HANDLE FileHandle, _Out_ PVOID *Info, _Inout_ PSIZE_T Length, _In_ FILE_INFORMATION_CLASS FileInformationClass)
static FSType g_Filesystem
#define ok_eq_size(value, expected)
#define FILE_NON_DIRECTORY_FILE
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define ExAllocatePoolWithTag(hernya, size, tag)
#define RtlCompareMemory(s1, s2, l)
@ FileEndOfFileInformation
struct _FILE_FS_ATTRIBUTE_INFORMATION FILE_FS_ATTRIBUTE_INFORMATION
@ FileFsAttributeInformation
#define OBJ_KERNEL_HANDLE
#define OBJ_CASE_INSENSITIVE
struct _FILE_ALL_INFORMATION FILE_ALL_INFORMATION
BOOLEAN KmtIsCheckedBuild
#define ExFreePoolWithTag(_P, _T)
#define InitializeObjectAttributes(p, n, a, r, s)
NTSYSAPI NTSTATUS NTAPI ZwOpenFile(_Out_ PHANDLE FileHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG ShareAccess, _In_ ULONG OpenOptions)
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
#define FILE_READ_ATTRIBUTES
NTSYSAPI BOOLEAN NTAPI RtlEqualUnicodeString(PUNICODE_STRING String1, PUNICODE_STRING String2, BOOLEAN CaseInSensitive)
#define FILE_SHARE_DELETE
NTSYSAPI NTSTATUS NTAPI ZwQueryVolumeInformationFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FsInformation, IN ULONG Length, IN FS_INFORMATION_CLASS FsInformationClass)
#define STATUS_INVALID_INFO_CLASS
NTSTATUS NTAPI ObCloseHandle(IN HANDLE Handle, IN KPROCESSOR_MODE AccessMode)
#define STATUS_BUFFER_OVERFLOW
#define FIELD_OFFSET(t, f)
#define STATUS_INVALID_PARAMETER
#define STATUS_INFO_LENGTH_MISMATCH