54 ok(!
memcmp(&Desc, &Saved,
sizeof(Desc)),
"Descriptor modified on failure\n");
59 ok(!
memcmp(&Desc, &Saved,
sizeof(Desc)),
"Descriptor modified on failure\n");
76 ok(!
memcmp(&Desc, &Saved,
sizeof(Desc)),
"Descriptor modified on failure\n");
179 Desc.
u.
Port.Start.QuadPart = 0x1122334455667788ULL;
180 Desc.
u.
Port.Length = 0x1234;
187 Length = pRtlCmDecodeMemIoResource(&Desc,
NULL);
192 Length = pRtlCmDecodeMemIoResource(&Desc,
NULL);
198 Desc.
u.
Memory.Length = 0x01000000;
204 ok_eq_hex64(pRtlCmDecodeMemIoResource(&Desc,
NULL), 0x100000000000000ULL);
208 Desc.
u.
Memory.Start.QuadPart = 0xABCD;
217 Status = pRtlCmEncodeMemIoResource(&Desc,
222 ok(Desc.
Flags == RoundTrips[
i].ExpectedFlags,
223 "[%lu] Flags = 0x%x, expected 0x%x\n",
224 i, Desc.
Flags, RoundTrips[
i].ExpectedFlags);
228 "[%lu] Length = 0x%I64x, expected 0x%I64x\n",
231 "[%lu] Start = 0x%I64x\n",
i,
Start);
247 ok(!
memcmp(&Desc, &Saved,
sizeof(Desc)),
"Descriptor modified on failure\n");
266 ok(!
memcmp(&Desc, &Saved,
sizeof(Desc)),
"Descriptor modified on failure\n");
310 0x1000, 0x100000000ULL, 0, 0);
325 0x100000000ULL, 0x10000000000ULL, 0, 0);
330 0x1000000000000ULL, 0x8000000000000001ULL, 0, 0);
336 0x1000000000000ULL, 0x100000000ULL,
337 0x100000000ULL, 0xFFFFFFFFFFFFFFFFULL);
363 Desc.
u.
Memory.Alignment = 0x1000;
364 Desc.
u.
Memory.MinimumAddress.QuadPart = 0x100000;
365 Desc.
u.
Memory.MaximumAddress.QuadPart = 0xFFFFFFFFULL;
367 Length = pRtlIoDecodeMemIoResource(&Desc, &
Alignment, &Minimum, &Maximum);
380 Desc.
u.
Memory.Length = 0x01000000;
381 Desc.
u.
Memory.Alignment = 0x01000000;
399 Desc.
u.
Memory.MinimumAddress.QuadPart = 0x1234;
400 Desc.
u.
Memory.MaximumAddress.QuadPart = 0x5678;
402 Length = pRtlIoDecodeMemIoResource(&Desc, &
Alignment, &Minimum, &Maximum);
411 0x10000000000ULL, 0x1000,
412 0x10000, 0xFFFFFFFFFFFFULL);
415 Length = pRtlIoDecodeMemIoResource(&Desc, &
Alignment, &Minimum, &Maximum);
437 { 0x100000000ULL, 0x100000000ULL },
438 { 0x100000001ULL, 0x100000100ULL },
439 { 0xFFFFFFFF00ULL, 0xFFFFFFFF00ULL },
441 { 0xFFFFFFFF01ULL, 0x10000000000ULL },
442 { 0x10000000001ULL, 0x10000010000ULL },
443 { 0xFFFFFFFF0000ULL, 0xFFFFFFFF0000ULL },
445 { 0xFFFFFFFF0001ULL, 0x1000000000000ULL },
446 { 0x1000000000000ULL, 0x1000000000000ULL },
447 { 0x1000000000001ULL, 0x1000100000000ULL },
448 { 0xFFFFFFFF00000000ULL, 0xFFFFFFFF00000000ULL },
461 "[%lu] Target = 0x%I64x, expected 0x%I64x\n",
489 if (!pRtlCmDecodeMemIoResource || !pRtlCmEncodeMemIoResource ||
490 !pRtlFindClosestEncodableLength ||
491 !pRtlIoDecodeMemIoResource || !pRtlIoEncodeMemIoResource)
493 skip(
"Rtl*MemIoResource API not available (NT 6.0+ only)\n");
static void Test_IoEncode(void)
static void Test_FindClosest(void)
static void Test_CmDecode(void)
static _Out_opt_ PULONGLONG _Out_opt_ PULONGLONG MinimumAddress
static _Out_opt_ PULONGLONG Alignment
static _Out_opt_ PULONGLONG Start
static _In_ UCHAR _In_ ULONGLONG Length
static void Test_IoDecode(void)
static _Out_opt_ PULONGLONG _Out_opt_ PULONGLONG _Out_opt_ PULONGLONG MaximumAddress
static void Test_CmEncode(void)
static _Out_ PULONGLONG TargetLength
#define ok_eq_hex(value, expected)
#define ok_eq_ulong(value, expected)
#define ok_eq_hex64(value, expected)
#define ok_eq_uint(value, expected)
#define GetProcAddress(x, y)
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
#define CM_RESOURCE_MEMORY_LARGE_40
#define CM_RESOURCE_MEMORY_PREFETCHABLE
#define CM_RESOURCE_MEMORY_LARGE_64
#define CM_RESOURCE_MEMORY_LARGE_48
#define CM_RESOURCE_MEMORY_READ_ONLY
#define CM_RESOURCE_MEMORY_LARGE_40_MAXLEN
#define CM_RESOURCE_MEMORY_LARGE_64_MAXLEN
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define RtlFillMemory(Dest, Length, Fill)
#define CmResourceTypeNull
#define CmResourceTypeMemory
#define CmResourceTypeDma
#define CmResourceTypePort
#define CmResourceTypeInterrupt
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@389 u
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@389::@391 Port
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@389::@394 Memory
struct _IO_RESOURCE_DESCRIPTOR::@2271::@2272 Port
struct _IO_RESOURCE_DESCRIPTOR::@2271::@2273 Memory
union _IO_RESOURCE_DESCRIPTOR::@2271 u
#define RtlZeroMemory(Destination, Length)
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
#define CmResourceTypeMemoryLarge