Fcb->Header.FileSize.QuadPart = VACB_MAPPING_GRANULARITY - PAGE_SIZE;
Fcb->Header.ValidDataLength.QuadPart = VACB_MAPPING_GRANULARITY - PAGE_SIZE;
+ if (TestId > 1 && TestId < 4)
+ {
+ Fcb->Header.AllocationSize.QuadPart = VACB_MAPPING_GRANULARITY - PAGE_SIZE;
+ }
+
KmtStartSeh();
CcInitializeCacheMap(TestFileObject, (PCC_FILE_SIZES)&Fcb->Header.AllocationSize, TRUE, &Callbacks, NULL);
KmtEndSeh(STATUS_SUCCESS);
if (!skip(CcIsFileCached(TestFileObject) == TRUE, "CcInitializeCacheMap failed\n"))
{
- if (TestId == 0)
+ if (TestId == 0 || TestId == 2)
{
Offset.QuadPart = 0;
KmtStartSeh();
CcSetFileSizes(TestFileObject, &NewFileSizes);
KmtEndSeh(STATUS_SUCCESS);
+ Fcb->Header.AllocationSize.QuadPart = VACB_MAPPING_GRANULARITY;
Fcb->Header.FileSize.QuadPart = VACB_MAPPING_GRANULARITY;
Offset.QuadPart = 0;
CcUnpinData(Bcb);
}
}
- else if (TestId == 1)
+ else if (TestId == 1 || TestId == 3)
{
Buffer = ExAllocatePool(NonPagedPool, PAGE_SIZE);
if (!skip(Buffer != NULL, "ExAllocatePool failed\n"))
CcSetFileSizes(TestFileObject, &NewFileSizes);
KmtEndSeh(STATUS_SUCCESS);
+ Fcb->Header.AllocationSize.QuadPart = VACB_MAPPING_GRANULARITY;
Fcb->Header.FileSize.QuadPart = VACB_MAPPING_GRANULARITY;
RtlZeroMemory(Buffer, PAGE_SIZE);
KmtLoadDriver(L"CcSetFileSizes", FALSE);
KmtOpenDriver();
- /* 0: mapped data
- * 1: copy read
+ /* 0: mapped data - only FS
+ * 1: copy read - only FS
+ * 2: mapped data - FS & AS
+ * 3: copy read - FS & AS
*/
- for (TestId = 0; TestId < 2; ++TestId)
+ for (TestId = 0; TestId < 4; ++TestId)
{
Ret = KmtSendUlongToDriver(IOCTL_START_TEST, TestId);
ok(Ret == ERROR_SUCCESS, "KmtSendUlongToDriver failed: %lx\n", Ret);