12#define WIN32_NO_STATUS
24#define ok_eq_str_ex(entry, value, expected) \
25 ok(!strcmp(value, expected), \
26 "Line %lu: " #value " = \"%s\", expected \"%s\"\n", (entry)->Line, value, expected)
28#define ok_eq_print_ex(entry, value, expected, spec) \
29 ok((value) == (expected), \
30 "Line %lu: " #value " = " spec ", expected " spec "\n", (entry)->Line, value, expected)
32#define ok_not_print_ex(entry, value, expected, spec) \
33 ok((value) != (expected), \
34 "Line %lu: " #value " = " spec ", expected " spec "\n", (entry)->Line, value, expected)
36#define ok_eq_hex_ex(entry, value, expected) ok_eq_print_ex(entry, value, expected, "0x%08lx")
37#define ok_eq_pointer_ex(entry, value, expected) ok_eq_print_ex(entry, value, expected, "%p")
38#define ok_eq_int_ex(entry, value, expected) ok_eq_print_ex(entry, value, expected, "%d")
39#define ok_eq_uint_ex(entry, value, expected) ok_eq_print_ex(entry, value, expected, "%u")
40#define ok_eq_ulong_ex(entry, value, expected) ok_eq_print_ex(entry, value, expected, "%lu")
41#define ok_eq_ulonglong_ex(entry, value, expected) ok_eq_print_ex(entry, value, expected, "%I64u")
43#define ok_not_pointer_ex(entry, value, expected) ok_not_print_ex(entry, value, expected, "%p")
50#define STM_TEST_FLAG_INVALID_ARG_3_1 (1 << 0 )
51#define STM_TEST_FLAG_INVALID_ARG_3_2 (1 << 1 )
52#define STM_TEST_FLAG_INVALID_ARG_3_4 (1 << 2 )
53#define STM_TEST_FLAG_INVALID_ARG_3_5 (1 << 3 )
54#define STM_TEST_FLAG_INVALID_SIZE_1 (1 << 4 )
55#define STM_TEST_FLAG_LARGE_ARG_BUFFER (1 << 5 )
56#define STM_TEST_FLAG_CHANGE_ARG_COUNT (1 << 6 )
57#define STM_TEST_FLAG_SUB_IN_BUFFER (1 << 7 )
58#define STM_TEST_FLAG_SUB_IRP_BUFFER (1 << 8 )
59#define STM_TEST_FLAG_SET_IN_BUFFER (1 << 9 )
60#define STM_TEST_FLAG_SET_IRP_BUFFER (1 << 10)
61#define STM_TEST_FLAG_BAD_ARG_TYPE (1 << 11)
63#define GTM_TEST_FLAG_BAD_SIGNARUTE (1 << 0)
64#define GTM_TEST_FLAG_BUFFER_HAS_SIGNARUTE (1 << 1)
65#define GTM_TEST_FLAG_BUFFER_HAS_COUNT (1 << 2)
66#define GTM_TEST_FLAG_BUFFER_HAS_LENGTH (1 << 3)
67#define GTM_TEST_FLAG_ARG_HAS_BUFFER_TYPE (1 << 4)
68#define GTM_TEST_FLAG_ARG_HAS_DATA_LENGTH (1 << 5)
69#define GTM_TEST_FLAG_INC_OUT_BUFFER (1 << 6)
70#define GTM_TEST_FLAG_DEC_OUT_BUFFER (1 << 7)
71#define GTM_TEST_FLAG_SET_OUT_BUFFER (1 << 8)
73#define GTM_TEST_FLAG_METHOD_SUCCESS \
74 (GTM_TEST_FLAG_BUFFER_HAS_SIGNARUTE | \
75 GTM_TEST_FLAG_BUFFER_HAS_COUNT | GTM_TEST_FLAG_BUFFER_HAS_LENGTH | \
76 GTM_TEST_FLAG_ARG_HAS_BUFFER_TYPE | GTM_TEST_FLAG_ARG_HAS_DATA_LENGTH)
78#define DSM_TEST_FLAG_EMPTY_PACKAGE (1 << 0)
79#define DSM_TEST_FLAG_LARGE_SUB_PACKAGE_BUFFER (1 << 1)
89#define DPRINT(...) do { if (0) DbgPrint(__VA_ARGS__); } while (0)
90#define DPRINT1(...) do { if (0) DbgPrint(__VA_ARGS__); } while (0)
118#define ExAllocatePoolUninitialized ExAllocatePoolWithTag
119#define NonPagedPool 1
132 return (
PVOID)(Mem + 2);
142 ok(Mem[1] ==
Tag,
"Tag is %lx, expected %lx\n",
Tag, Mem[1]);
152 return &
Irp->MyStack;
170#define STM_ID_BLOCK_SIZE 512
174#define FAKE_SB_NAMESPACE_ACPI_HANDLE 0xFF0F0001
175#define FAKE_INTB_ACPI_HANDLE 0xFF0F0002
176#define FAKE_INTC_ACPI_HANDLE 0xFF0F0003
213 0xB76E0B40, 0x3EC6, 0x4DBD, 0x8A, 0xCB, 0x8B, 0xCA, 0x65, 0xB8, 0xBC, 0x70);
217 0, 50000, 50000, 1, 10000, 100, 50, 1, 1
222 0xAAAAAAAA, 0xBBBBBBBB, 0xDDDDDDDD
251 if (
Buffer->Length < (4 + 1))
346 TimingMode->
Drive[0].PioSpeed = 900;
347 TimingMode->
Drive[0].DmaSpeed = 900;
348 TimingMode->
Drive[1].PioSpeed = 120;
349 TimingMode->
Drive[1].DmaSpeed = 120;
353 ReturnObject->
Obj.
Buffer.Length =
sizeof(*TimingMode);
356 ReturnObjectBuffer->
Pointer = ReturnObject;
357 ReturnObjectBuffer->
Length =
sizeof(*ReturnObject);
405 ReturnObjectBuffer->
Pointer = ReturnObject;
406 ReturnObjectBuffer->
Length =
sizeof(*ReturnObject);
426 ReturnObjectBuffer->
Pointer = ReturnObject;
427 ReturnObjectBuffer->
Length =
sizeof(*ReturnObject);
490 ReturnObjectBuffer->
Pointer = ReturnObject;
491 ReturnObjectBuffer->
Length =
sizeof(*ReturnObject);
553 PackageArg = Arg->
Package.Elements;
572 PackageArg2 = Arg->
Package.Elements;
578 PackageArg2->
String.Length,
579 (
sizeof(
"1_TESTDATATESTDATA_2") - 1));
582 "1_TESTDATATESTDATA_2",
583 sizeof(
"1_TESTDATATESTDATA_2") - 1),
605#include "../../../../drivers/bus/acpi/eval.c"
610#define STM_MAX_BUFFER_SIZE \
611 (FIELD_OFFSET(ACPI_EVAL_INPUT_BUFFER_COMPLEX, Argument) + \
612 2 * STM_ID_BLOCK_SIZE + sizeof(IDE_ACPI_TIMING_MODE_BLOCK) + 0x100)
614#define GTM_MAX_BUFFER_SIZE \
615 (FIELD_OFFSET(ACPI_EVAL_OUTPUT_BUFFER, Argument) + \
616 ACPI_METHOD_ARGUMENT_LENGTH(sizeof(IDE_ACPI_TIMING_MODE_BLOCK)) + 0x50)
760 ULONG InputBufferSize, IrpBufferSize;
811 Argument3->Type = 0xFFFF;
830 Argument3->DataLength += 5;
834 Argument3->DataLength -= 5;
839 IrpBufferSize = InputBufferSize -
TestEntry->Value;
847 IrpBufferSize = InputBufferSize;
869 TimingMode.
Drive[0].PioSpeed = 508;
870 TimingMode.
Drive[0].DmaSpeed = 120;
871 TimingMode.
Drive[1].PioSpeed = 240;
872 TimingMode.
Drive[1].DmaSpeed = 180;
888 ULONG OutputBufferSize;
993 ULONG i, OutputBufferSize;
1080 ULONG OutputBufferSize;
1128 ULONG PackageNum, ArgNum, OutputBufferSize;
1135#define PRT_PACKAGE_ENTRY_SIZE \
1136 (ACPI_METHOD_ARGUMENT_LENGTH(sizeof(ULONG)) * 3 + \
1137 ACPI_METHOD_ARGUMENT_LENGTH(sizeof("LNKB")))
1151 for (PackageNum = 0; PackageNum < 2; PackageNum++)
1157 for (ArgNum = 0; ArgNum < 4; ArgNum++)
1161 ULONG ExpectedValue;
1168 ExpectedValue = 0x0002FFFF;
1172 if ((PackageNum == 1) && (ArgNum == 1))
1173 ExpectedValue = 0x00000001;
1175 ExpectedValue = 0x00000000;
1184 (PackageNum == 0) ?
"LNKB" :
"LNKC");
1215#define MY_DSM_SUB_PACKAGE_ENTRY_SIZE \
1216 (ACPI_METHOD_ARGUMENT_LENGTH(sizeof("1_TESTDATATESTDATA_2")))
1218#define MY_DSM_PACKAGE_ENTRY_SIZE \
1219 (ACPI_METHOD_ARGUMENT_LENGTH(sizeof(ULONG)) * 3 + \
1220 ACPI_METHOD_ARGUMENT_LENGTH(MY_DSM_SUB_PACKAGE_ENTRY_SIZE))
1222#define MY_DSM_BUFFER_SIZE \
1223 (FIELD_OFFSET(ACPI_EVAL_INPUT_BUFFER_COMPLEX, Argument) + \
1224 ACPI_METHOD_ARGUMENT_LENGTH(sizeof(GUID)) + \
1225 ACPI_METHOD_ARGUMENT_LENGTH(sizeof(ULONG)) + \
1226 ACPI_METHOD_ARGUMENT_LENGTH(sizeof(ULONG)) + \
1227 ACPI_METHOD_ARGUMENT_LENGTH(MY_DSM_PACKAGE_ENTRY_SIZE))
1268 Argument->Argument = 0;
1293 PackageArgument2->DataLength = 32768;
#define DSM_TEST_FLAG_LARGE_SUB_PACKAGE_BUFFER
#define FAKE_INTB_ACPI_HANDLE
#define STM_TEST_FLAG_SET_IRP_BUFFER
#define GTM_TEST_FLAG_BUFFER_HAS_LENGTH
#define GTM_TEST_FLAG_BAD_SIGNARUTE
#define GTM_TEST_FLAG_BUFFER_HAS_SIGNARUTE
struct _GTM_OBJECT_BUFFER * PGTM_OBJECT_BUFFER
static VOID DrvEvaluatePrtObject(_In_ const EVAL_TEST_ENTRY *TestEntry, _In_ PACPI_EVAL_OUTPUT_BUFFER OutputBuffer)
#define GTM_TEST_FLAG_ARG_HAS_BUFFER_TYPE
#define ok_eq_uint_ex(entry, value, expected)
#define FAKE_INTC_ACPI_HANDLE
struct _IO_STACK_LOCATION * PIO_STACK_LOCATION
static VOID DrvEvaluateGtmObject(_In_ const EVAL_TEST_ENTRY *TestEntry, _In_ PACPI_EVAL_OUTPUT_BUFFER OutputBuffer)
#define STM_MAX_BUFFER_SIZE
#define STM_TEST_FLAG_CHANGE_ARG_COUNT
#define ok_eq_str_ex(entry, value, expected)
static VOID DrvTestPackageReturnValueAndStringData(VOID)
struct _PRT_OBJECT_BUFFER PRT_OBJECT_BUFFER
struct _PRT_OBJECT_BUFFER * PPRT_OBJECT_BUFFER
#define STM_TEST_FLAG_LARGE_ARG_BUFFER
struct _PCL_OBJECT_BUFFER PCL_OBJECT_BUFFER
static const EVAL_TEST_ENTRY DrvpPrtTests[]
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
struct _IDE_ACPI_TIMING_MODE_BLOCK * PIDE_ACPI_TIMING_MODE_BLOCK
#define ok_eq_ulong_ex(entry, value, expected)
#define GTM_TEST_FLAG_SET_OUT_BUFFER
void * AcpiOsAllocate(ACPI_SIZE Size)
#define ok_eq_int_ex(entry, value, expected)
static const EVAL_TEST_ENTRY DrvpPclTests[]
#define ok_eq_ulonglong_ex(entry, value, expected)
static VOID DrvTestNestedPackageReturnValue(VOID)
static const EVAL_TEST_ENTRY DrvpGtmTests[]
ACPI_STATUS AcpiEvaluateObject(ACPI_HANDLE Object, ACPI_STRING Pathname, ACPI_OBJECT_LIST *ParameterObjects, ACPI_BUFFER *ReturnObjectBuffer)
#define GTM_TEST_FLAG_ARG_HAS_DATA_LENGTH
#define DSM_TEST_FLAG_EMPTY_PACKAGE
static VOID DrvTestInputBuffer(VOID)
#define STM_TEST_FLAG_BAD_ARG_TYPE
#define MY_DSM_BUFFER_SIZE
struct _BIF_OBJECT_BUFFER * PBIF_OBJECT_BUFFER
static const ULONG DrvpMyDsmIntegerFields[3]
ACPI_STATUS AcpiGetName(ACPI_HANDLE Handle, UINT32 NameType, ACPI_BUFFER *Buffer)
#define STM_TEST_FLAG_SUB_IRP_BUFFER
#define STM_TEST_FLAG_SET_IN_BUFFER
#define STM_TEST_FLAG_SUB_IN_BUFFER
#define ok_eq_pointer_ex(entry, value, expected)
struct _IDE_ACPI_TIMING_MODE_BLOCK IDE_ACPI_TIMING_MODE_BLOCK
static const EVAL_TEST_ENTRY DrvpDsmTests[]
#define STM_TEST_FLAG_INVALID_ARG_3_5
#define MY_DSM_PACKAGE_ENTRY_SIZE
static const EVAL_TEST_ENTRY * DrvpEvalTestEntry
static VOID DrvEvaluateDsmObject(_In_ const EVAL_TEST_ENTRY *TestEntry)
struct _BIF_OBJECT_BUFFER BIF_OBJECT_BUFFER
static VOID DrvEvaluatePclObject(_In_ const EVAL_TEST_ENTRY *TestEntry, _In_ PACPI_EVAL_OUTPUT_BUFFER OutputBuffer)
static NTSTATUS DrvCallAcpiDriver(_In_ PVOID InputBuffer, _In_ ULONG InputBufferLength, _Out_opt_ PACPI_EVAL_OUTPUT_BUFFER OutputBuffer, _In_ ULONG OutputBufferLength)
struct _GTM_OBJECT_BUFFER GTM_OBJECT_BUFFER
struct _IO_STACK_LOCATION IO_STACK_LOCATION
void AcpiOsFree(void *Memory)
#define ok_eq_hex_ex(entry, value, expected)
struct _PCL_OBJECT_BUFFER * PPCL_OBJECT_BUFFER
#define STM_TEST_FLAG_INVALID_ARG_3_1
static VOID DrvEvaluateStmObject(_In_ const EVAL_TEST_ENTRY *TestEntry, _In_ PIDE_ACPI_TIMING_MODE_BLOCK TimingMode, _In_ PUCHAR IdBlock, _In_ PACPI_EVAL_INPUT_BUFFER_COMPLEX InputBuffer)
#define FAKE_SB_NAMESPACE_ACPI_HANDLE
#define PRT_PACKAGE_ENTRY_SIZE
static const EVAL_TEST_ENTRY DrvpSmtTests[]
static VOID DrvTestComplexBuffer(VOID)
struct _PDO_DEVICE_DATA PDO_DEVICE_DATA
static VOID DrvTestPackageInputValue(VOID)
#define STM_TEST_FLAG_INVALID_ARG_3_4
static VOID DrvTestUnknownMethod(VOID)
#define MY_DSM_SUB_PACKAGE_ENTRY_SIZE
static LONG DrvpBlocksAllocated
#define GTM_TEST_FLAG_BUFFER_HAS_COUNT
struct _EVAL_TEST_ENTRY EVAL_TEST_ENTRY
#define GTM_TEST_FLAG_METHOD_SUCCESS
#define GTM_MAX_BUFFER_SIZE
#define GTM_TEST_FLAG_DEC_OUT_BUFFER
#define STM_TEST_FLAG_INVALID_ARG_3_2
#define ok_not_pointer_ex(entry, value, expected)
#define GTM_TEST_FLAG_INC_OUT_BUFFER
#define STM_ID_BLOCK_SIZE
#define STM_TEST_FLAG_INVALID_SIZE_1
static const EVAL_TEST_ENTRY DrvpBifTests[]
static VOID DrvTestReferenceReturnValue(VOID)
static const ULONG DrvpBifIntegerFields[9]
struct _PDO_DEVICE_DATA * PPDO_DEVICE_DATA
static VOID DrvEvaluateBifObject(_In_ const EVAL_TEST_ENTRY *TestEntry, _In_ PACPI_EVAL_OUTPUT_BUFFER OutputBuffer)
static void TestEntry(const ENTRY *pEntry)
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define AE_BUFFER_OVERFLOW
#define AE_AML_UNINITIALIZED_ARG
struct _ACPI_EVAL_INPUT_BUFFER_COMPLEX * PACPI_EVAL_INPUT_BUFFER_COMPLEX
struct _ACPI_EVAL_INPUT_BUFFER ACPI_EVAL_INPUT_BUFFER
#define ACPI_EVAL_INPUT_BUFFER_COMPLEX_SIGNATURE
ACPI_METHOD_ARGUMENT UNALIGNED * PACPI_METHOD_ARGUMENT
struct _ACPI_EVAL_OUTPUT_BUFFER ACPI_EVAL_OUTPUT_BUFFER
#define ACPI_METHOD_NEXT_ARGUMENT(Argument)
#define ACPI_METHOD_ARGUMENT_STRING
#define ACPI_METHOD_ARGUMENT_INTEGER
#define ACPI_METHOD_ARGUMENT_LENGTH(DataLength)
#define ACPI_EVAL_INPUT_BUFFER_SIGNATURE
#define ACPI_METHOD_SET_ARGUMENT_INTEGER(MethodArgument, IntData)
#define ACPI_METHOD_SET_ARGUMENT_STRING(Argument, StrData)
#define ACPI_METHOD_ARGUMENT_BUFFER
#define ACPI_EVAL_OUTPUT_BUFFER_SIGNATURE
#define ACPI_METHOD_SET_ARGUMENT_BUFFER(Argument, BuffData, BuffLength)
#define ACPI_METHOD_ARGUMENT_PACKAGE
ACPI_EVAL_OUTPUT_BUFFER UNALIGNED * PACPI_EVAL_OUTPUT_BUFFER
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST * ParameterObjects
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 NameType
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING Pathname
#define ACPI_TYPE_LOCAL_REFERENCE
#define ACPI_ALLOCATE_BUFFER
#define ACPI_TYPE_INTEGER
#define ACPI_TYPE_PACKAGE
#define ok_eq_hex(value, expected)
#define ok_eq_uint(value, expected)
_In_ ULONG _In_opt_ WDFREQUEST _In_opt_ PVOID _In_ size_t _In_ PVOID _In_ size_t _Out_ size_t * DataLength
#define NT_SUCCESS(StatCode)
#define HeapFree(x, y, z)
static const WCHAR Signature[]
NTSTATUS NTAPI Bus_PDO_EvalMethod(_In_ PPDO_DEVICE_DATA DeviceData, _Inout_ PIRP Irp)
#define ExAllocatePoolWithTag(hernya, size, tag)
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
#define ExFreePoolWithTag(_P, _T)
#define RTL_SIZEOF_THROUGH_FIELD(type, field)
#define UNREFERENCED_PARAMETER(P)
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define STATUS_ACPI_INVALID_ARGTYPE
#define STATUS_ACPI_INCORRECT_ARGUMENT_COUNT
#define STATUS_INVALID_PARAMETER_1
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define IsEqualGUID(rguid1, rguid2)
#define STATUS_BUFFER_TOO_SMALL
#define STATUS_BUFFER_OVERFLOW
ACPI_OBJECT BatteryInformation[13]
IDE_ACPI_TIMING_MODE_BLOCK TimingMode
struct _IDE_ACPI_TIMING_MODE_BLOCK::@1583 Drive[2]
struct _IO_STACK_LOCATION::@1580::@1581 DeviceIoControl
union _IO_STACK_LOCATION::@1580 Parameters
union _IRP::@1582 AssociatedIrp
IO_STACK_LOCATION MyStack
ACPI_OBJECT PackageContainer[2]
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define STATUS_INFO_LENGTH_MISMATCH
#define STATUS_INSUFFICIENT_RESOURCES
#define STATUS_OBJECT_NAME_NOT_FOUND
struct acpi_object::@618 Integer
struct acpi_object::@620 Buffer
struct acpi_object::@622 Reference
struct acpi_object::@621 Package
struct acpi_object::@619 String
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
_In_ WDFREQUEST _In_ size_t OutputBufferLength
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes