From: Pierre Schweitzer Date: Sat, 1 Sep 2018 10:29:09 +0000 (+0200) Subject: [KMTESTS:CC] Add tests for PIN_IF_BCB flag X-Git-Tag: 0.4.12-dev~886 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=a4dc3c49636ff97af166184544dbe081c465ff60 [KMTESTS:CC] Add tests for PIN_IF_BCB flag --- diff --git a/modules/rostests/kmtests/ntos_cc/CcPinRead_drv.c b/modules/rostests/kmtests/ntos_cc/CcPinRead_drv.c index b2aac2fdf7c..34ceb136963 100644 --- a/modules/rostests/kmtests/ntos_cc/CcPinRead_drv.c +++ b/modules/rostests/kmtests/ntos_cc/CcPinRead_drv.c @@ -178,6 +178,18 @@ PinInAnotherThread(IN PVOID Context) CcUnpinData(Bcb); } + KmtStartSeh(); + Ret = CcPinRead(TestFileObject, &Offset, TestContext->Length, PIN_WAIT | PIN_IF_BCB, &Bcb, (PVOID *)&Buffer); + KmtEndSeh(STATUS_SUCCESS); + + if (!skip(Ret == TRUE, "CcPinRead failed\n")) + { + ok_eq_pointer(Bcb, TestContext->Bcb); + ok_eq_pointer(Buffer, TestContext->Buffer); + + CcUnpinData(Bcb); + } + return; } @@ -242,6 +254,17 @@ PerformTest( { Ret = FALSE; Offset.QuadPart = 0x1000; + + /* Try enforce BCB first */ + KmtStartSeh(); + Ret = CcPinRead(TestFileObject, &Offset, FileSizes.FileSize.QuadPart - Offset.QuadPart, PIN_WAIT | PIN_IF_BCB, &Bcb, (PVOID *)&Buffer); + KmtEndSeh(STATUS_SUCCESS); + ok(Ret == FALSE, "CcPinRead succeed\n"); + if (Ret) + { + CcUnpinData(Bcb); + } + KmtStartSeh(); Ret = CcPinRead(TestFileObject, &Offset, FileSizes.FileSize.QuadPart - Offset.QuadPart, PIN_WAIT, &TestContext->Bcb, &TestContext->Buffer); KmtEndSeh(STATUS_SUCCESS);