diff --git a/reactos/regtests/kmregtests/tests/mdl-1.c b/reactos/regtests/kmregtests/tests/mdl-1.c index 94f6d65547c..7db8986a77a 100644 --- a/reactos/regtests/kmregtests/tests/mdl-1.c +++ b/reactos/regtests/kmregtests/tests/mdl-1.c @@ -5,45 +5,65 @@ static int RunTest(char *Buffer) { - VOID *pmem1; - PHYSICAL_ADDRESS LowestAcceptableAddress, HighestAcceptableAddress, SkipBytes; - SIZE_T TotalBytes; + VOID *pmem1, *MdlPfnArray, *MdlVirtAddr; + ULONG MdlSize, MdlOffset, AllocSize; PMDL Mdl; /* Allocate memory for use in testing */ + AllocSize = 512; pmem1 = ExAllocatePool(NonPagedPool, - 512); + AllocSize); - /* MDL Testing */ + /* MmSizeOfMdl test */ + MdlSize = 0; + MdlSize = MmSizeOfMdl(pmem1, + AllocSize); + if (MdlSize <= sizeof(MDL)) + { + strcpy(Buffer, "MmSizeOfMdl() failed\n"); + return TS_FAILED; + } + + /* MmCreateMdl test */ Mdl = NULL; Mdl = MmCreateMdl(NULL, pmem1, - 512); + AllocSize); if (Mdl == NULL) { strcpy(Buffer, "MmCreateMdl() failed for Mdl\n"); return TS_FAILED; } - MmBuildMdlForNonPagedPool(Mdl); - MmProbeAndLockPages(Mdl, - KernelMode, - IoReadAccess); - MmUnlockPages(Mdl); - ExFreePool(Mdl); - SkipBytes.QuadPart = PAGE_SIZE * 4; - TotalBytes = 4096; - Mdl = NULL; - Mdl = MmAllocatePagesForMdl(LowestAcceptableAddress, - HighestAcceptableAddress, - SkipBytes, - TotalBytes); - if (Mdl == NULL) + /* MmGetMdlByteCount test */ + MdlSize = 0; + MdlSize = MmGetMdlByteCount(Mdl); + if (MdlSize != AllocSize) { - strcpy(Buffer, "MmAllocatePagesForMdl() failed for Mdl\n"); + strcpy(Buffer, "MmGetMdlByteCount() failed for Mdl\n"); + return TS_FAILED; + } + + /* MmGetMdlByteOffset test */ + MdlOffset = MmGetMdlByteOffset(Mdl); + + /* MmGetMdlPfnArray test */ + MdlPfnArray = NULL; + MdlPfnArray = MmGetMdlPfnArray(Mdl); + if (MdlPfnArray == NULL) + { + strcpy(Buffer, "MmGetMdlPfnArray() failed for Mdl\n"); + return TS_FAILED; + } + + /* MmGetMdlVirtualAddress test */ + MdlVirtAddr = NULL; + MdlVirtAddr = MmGetMdlVirtualAddress(Mdl); + if (MdlVirtAddr == NULL) + { + strcpy(Buffer, "MmGetMdlVirtualAddress() failed for Mdl\n"); return TS_FAILED; } - MmFreePagesFromMdl(Mdl); /* Free memory used in test */ ExFreePool(pmem1); @@ -59,7 +79,7 @@ Mdl_1Test(int Command, char *Buffer) case TESTCMD_RUN: return RunTest(Buffer); case TESTCMD_TESTNAME: - strcpy(Buffer, "Kernel Memory MDL API"); + strcpy(Buffer, "Kernel Memory MDL API (1)"); return TS_OK; default: break;