From: Pierre Schweitzer Date: Thu, 2 May 2019 11:59:47 +0000 (+0200) Subject: [NTDLL_APITEST] Query sector size for NtWriteFile tests X-Git-Tag: 0.4.14-dev~1071 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=bdaa8e5ad1064e6bbb3a61c23248b8d2b22e117d;ds=sidebyside [NTDLL_APITEST] Query sector size for NtWriteFile tests --- diff --git a/modules/rostests/apitests/ntdll/NtWriteFile.c b/modules/rostests/apitests/ntdll/NtWriteFile.c index 1383e4e71c9..7080fa84ec3 100644 --- a/modules/rostests/apitests/ntdll/NtWriteFile.c +++ b/modules/rostests/apitests/ntdll/NtWriteFile.c @@ -38,6 +38,24 @@ SizeOfMdl(VOID) return Is64BitSystem() ? 48 : 28; } +static +ULONG +SizeOfSector(VOID) +{ + BOOL Ret; + ULONG SectorSize; + + /* FIXME: Would be better to actually open systemroot */ + Ret = GetDiskFreeSpaceW(NULL, NULL, &SectorSize, NULL, NULL); + ok(Ret != FALSE, "GetDiskFreeSpaceW failed: %lx\n", GetLastError()); + if (!Ret) + { + SectorSize = 4096; /* On failure, assume max size */ + } + + return SectorSize; +} + START_TEST(NtWriteFile) { NTSTATUS Status; @@ -213,7 +231,10 @@ START_TEST(NtWriteFile) ok_hex(Status, STATUS_SUCCESS); /* Now, testing aligned/non aligned writes */ - BufferSize = 4096; /* We assume max sector size */ + + BufferSize = SizeOfSector(); + trace("Sector is %ld bytes\n", BufferSize); + Status = NtAllocateVirtualMemory(NtCurrentProcess(), &Buffer, 0,