mirror of
https://github.com/reactos/reactos.git
synced 2025-05-29 05:58:13 +00:00
[KMTESTS:MM]
- In the MmMapLockedPagesSpecifyCache test, try to allocate & free memory or unmap a section view in the mapped buffer space CORE-13444 svn path=/trunk/; revision=75057
This commit is contained in:
parent
57206b450b
commit
8c8f34f7fd
1 changed files with 43 additions and 0 deletions
|
@ -38,6 +38,39 @@
|
|||
} \
|
||||
}
|
||||
|
||||
#define CHECK_ALLOC(MappedBuffer, BufferLength) \
|
||||
{ \
|
||||
NTSTATUS Status; \
|
||||
PVOID BaseAddress; \
|
||||
SIZE_T Size; \
|
||||
BaseAddress = MappedBuffer; \
|
||||
Size = BufferLength; \
|
||||
Status = NtAllocateVirtualMemory(NtCurrentProcess(), \
|
||||
&BaseAddress, \
|
||||
0, \
|
||||
&Size, \
|
||||
MEM_RESERVE, \
|
||||
PAGE_READWRITE); \
|
||||
ok_eq_hex(Status, STATUS_CONFLICTING_ADDRESSES); \
|
||||
BaseAddress = MappedBuffer; \
|
||||
Size = 0; \
|
||||
Status = NtFreeVirtualMemory(NtCurrentProcess(), \
|
||||
&BaseAddress, \
|
||||
&Size, \
|
||||
MEM_DECOMMIT); \
|
||||
ok_eq_hex(Status, STATUS_UNABLE_TO_DELETE_SECTION); \
|
||||
BaseAddress = MappedBuffer; \
|
||||
Size = 0; \
|
||||
Status = NtFreeVirtualMemory(NtCurrentProcess(), \
|
||||
&BaseAddress, \
|
||||
&Size, \
|
||||
MEM_RELEASE); \
|
||||
ok_eq_hex(Status, STATUS_UNABLE_TO_DELETE_SECTION); \
|
||||
Status = NtUnmapViewOfSection(NtCurrentProcess(), \
|
||||
MappedBuffer); \
|
||||
ok_eq_hex(Status, STATUS_NOT_MAPPED_VIEW); \
|
||||
}
|
||||
|
||||
START_TEST(MmMapLockedPagesSpecifyCache)
|
||||
{
|
||||
QUERY_BUFFER QueryBuffer;
|
||||
|
@ -56,6 +89,7 @@ START_TEST(MmMapLockedPagesSpecifyCache)
|
|||
ok(KmtSendBufferToDriver(IOCTL_QUERY_BUFFER, &QueryBuffer, sizeof(QUERY_BUFFER), &Length) == ERROR_SUCCESS, "\n");
|
||||
ok_eq_int(QueryBuffer.Length, BufferLength);
|
||||
ok(QueryBuffer.Buffer != NULL, "Buffer is NULL\n");
|
||||
CHECK_ALLOC(QueryBuffer.Buffer, BufferLength);
|
||||
|
||||
Length = 0;
|
||||
FILL_READ_BUFFER(QueryBuffer, ReadBuffer);
|
||||
|
@ -66,6 +100,7 @@ START_TEST(MmMapLockedPagesSpecifyCache)
|
|||
ok(KmtSendBufferToDriver(IOCTL_QUERY_BUFFER, &QueryBuffer, sizeof(QUERY_BUFFER), &Length) == ERROR_SUCCESS, "\n");
|
||||
ok_eq_int(QueryBuffer.Length, BufferLength);
|
||||
ok(QueryBuffer.Buffer != NULL, "Buffer is NULL\n");
|
||||
CHECK_ALLOC(QueryBuffer.Buffer, BufferLength);
|
||||
|
||||
Length = 0;
|
||||
FILL_READ_BUFFER(QueryBuffer, ReadBuffer);
|
||||
|
@ -78,6 +113,7 @@ START_TEST(MmMapLockedPagesSpecifyCache)
|
|||
ok(KmtSendBufferToDriver(IOCTL_QUERY_BUFFER, &QueryBuffer, sizeof(QUERY_BUFFER), &Length) == ERROR_SUCCESS, "\n");
|
||||
ok_eq_int(QueryBuffer.Length, BufferLength);
|
||||
ok(QueryBuffer.Buffer != NULL, "Buffer is NULL\n");
|
||||
CHECK_ALLOC(QueryBuffer.Buffer, BufferLength);
|
||||
|
||||
Length = 0;
|
||||
FILL_READ_BUFFER(QueryBuffer, ReadBuffer);
|
||||
|
@ -88,6 +124,7 @@ START_TEST(MmMapLockedPagesSpecifyCache)
|
|||
ok(KmtSendBufferToDriver(IOCTL_QUERY_BUFFER, &QueryBuffer, sizeof(QUERY_BUFFER), &Length) == ERROR_SUCCESS, "\n");
|
||||
ok_eq_int(QueryBuffer.Length, BufferLength);
|
||||
ok(QueryBuffer.Buffer != NULL, "Buffer is NULL\n");
|
||||
CHECK_ALLOC(QueryBuffer.Buffer, BufferLength);
|
||||
|
||||
Length = 0;
|
||||
FILL_READ_BUFFER(QueryBuffer, ReadBuffer);
|
||||
|
@ -100,6 +137,7 @@ START_TEST(MmMapLockedPagesSpecifyCache)
|
|||
ok(KmtSendBufferToDriver(IOCTL_QUERY_BUFFER, &QueryBuffer, sizeof(QUERY_BUFFER), &Length) == ERROR_SUCCESS, "\n");
|
||||
ok_eq_int(QueryBuffer.Length, BufferLength);
|
||||
ok(QueryBuffer.Buffer != NULL, "Buffer is NULL\n");
|
||||
CHECK_ALLOC(QueryBuffer.Buffer, BufferLength);
|
||||
|
||||
Length = 0;
|
||||
FILL_READ_BUFFER(QueryBuffer, ReadBuffer);
|
||||
|
@ -110,6 +148,7 @@ START_TEST(MmMapLockedPagesSpecifyCache)
|
|||
ok(KmtSendBufferToDriver(IOCTL_QUERY_BUFFER, &QueryBuffer, sizeof(QUERY_BUFFER), &Length) == ERROR_SUCCESS, "\n");
|
||||
ok_eq_int(QueryBuffer.Length, BufferLength);
|
||||
ok(QueryBuffer.Buffer != NULL, "Buffer is NULL\n");
|
||||
CHECK_ALLOC(QueryBuffer.Buffer, BufferLength);
|
||||
|
||||
Length = 0;
|
||||
FILL_READ_BUFFER(QueryBuffer, ReadBuffer);
|
||||
|
@ -122,6 +161,7 @@ START_TEST(MmMapLockedPagesSpecifyCache)
|
|||
ok(KmtSendBufferToDriver(IOCTL_QUERY_BUFFER, &QueryBuffer, sizeof(QUERY_BUFFER), &Length) == ERROR_SUCCESS, "\n");
|
||||
ok_eq_int(QueryBuffer.Length, BufferLength);
|
||||
ok(QueryBuffer.Buffer != NULL, "Buffer is NULL\n");
|
||||
CHECK_ALLOC(QueryBuffer.Buffer, BufferLength);
|
||||
|
||||
Length = 0;
|
||||
FILL_READ_BUFFER(QueryBuffer, ReadBuffer);
|
||||
|
@ -132,6 +172,7 @@ START_TEST(MmMapLockedPagesSpecifyCache)
|
|||
ok(KmtSendBufferToDriver(IOCTL_QUERY_BUFFER, &QueryBuffer, sizeof(QUERY_BUFFER), &Length) == ERROR_SUCCESS, "\n");
|
||||
ok_eq_int(QueryBuffer.Length, BufferLength);
|
||||
ok(QueryBuffer.Buffer != NULL, "Buffer is NULL\n");
|
||||
CHECK_ALLOC(QueryBuffer.Buffer, BufferLength);
|
||||
|
||||
Length = 0;
|
||||
FILL_READ_BUFFER(QueryBuffer, ReadBuffer);
|
||||
|
@ -146,6 +187,7 @@ START_TEST(MmMapLockedPagesSpecifyCache)
|
|||
ok(KmtSendBufferToDriver(IOCTL_QUERY_BUFFER, &QueryBuffer, sizeof(QUERY_BUFFER), &Length) == ERROR_SUCCESS, "\n");
|
||||
ok_eq_int(QueryBuffer.Length, BufferLength);
|
||||
ok(QueryBuffer.Buffer != NULL, "Buffer is NULL\n");
|
||||
CHECK_ALLOC(QueryBuffer.Buffer, BufferLength);
|
||||
|
||||
Length = 0;
|
||||
FILL_READ_BUFFER(QueryBuffer, ReadBuffer);
|
||||
|
@ -158,6 +200,7 @@ START_TEST(MmMapLockedPagesSpecifyCache)
|
|||
ok(KmtSendBufferToDriver(IOCTL_QUERY_BUFFER, &QueryBuffer, sizeof(QUERY_BUFFER), &Length) == ERROR_SUCCESS, "\n");
|
||||
ok_eq_int(QueryBuffer.Length, BufferLength);
|
||||
ok(QueryBuffer.Buffer != NULL, "Buffer is NULL\n");
|
||||
CHECK_ALLOC(QueryBuffer.Buffer, BufferLength);
|
||||
|
||||
Length = 0;
|
||||
FILL_READ_BUFFER(QueryBuffer, ReadBuffer);
|
||||
|
|
Loading…
Reference in a new issue