7#define ACPI_EVAL_INPUT_BUFFER_SIGNATURE_V1 'BieA'
8#define ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_SIGNATURE_V1 'IieA'
9#define ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_SIGNATURE_V1 'SieA'
10#define ACPI_EVAL_INPUT_BUFFER_COMPLEX_SIGNATURE_V1 'CieA'
11#define ACPI_EVAL_OUTPUT_BUFFER_SIGNATURE_V1 'BoeA'
12#define ACPI_EVAL_INPUT_BUFFER_SIGNATURE ACPI_EVAL_INPUT_BUFFER_SIGNATURE_V1
13#define ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_SIGNATURE ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_SIGNATURE_V1
14#define ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_SIGNATURE ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_SIGNATURE_V1
15#define ACPI_EVAL_INPUT_BUFFER_COMPLEX_SIGNATURE ACPI_EVAL_INPUT_BUFFER_COMPLEX_SIGNATURE_V1
16#define ACPI_EVAL_OUTPUT_BUFFER_SIGNATURE ACPI_EVAL_OUTPUT_BUFFER_SIGNATURE_V1
17#if (NTDDI_VERSION >= NTDDI_VISTA)
18#define ACPI_EVAL_INPUT_BUFFER_SIGNATURE_V1_EX 'AieA'
19#define ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_SIGNATURE_V1_EX 'DieA'
20#define ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_SIGNATURE_V1_EX 'EieA'
21#define ACPI_EVAL_INPUT_BUFFER_COMPLEX_SIGNATURE_V1_EX 'FieA'
22#define ACPI_ENUM_CHILDREN_OUTPUT_BUFFER_SIGNATURE 'GieA'
23#define ACPI_ENUM_CHILDREN_INPUT_BUFFER_SIGNATURE 'HieA'
24#define ACPI_EVAL_INPUT_BUFFER_SIGNATURE_EX ACPI_EVAL_INPUT_BUFFER_SIGNATURE_V1_EX
25#define ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_SIGNATURE_EX ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_SIGNATURE_V1_EX
26#define ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_SIGNATURE_EX ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_SIGNATURE_V1_EX
27#define ACPI_EVAL_INPUT_BUFFER_COMPLEX_SIGNATURE_EX ACPI_EVAL_INPUT_BUFFER_COMPLEX_SIGNATURE_V1_EX
30#define ACPI_METHOD_ARGUMENT_INTEGER 0x0
31#define ACPI_METHOD_ARGUMENT_STRING 0x1
32#define ACPI_METHOD_ARGUMENT_BUFFER 0x2
33#define ACPI_METHOD_ARGUMENT_PACKAGE 0x3
34#define ACPI_METHOD_ARGUMENT_PACKAGE_EX 0x4
36#define ACPI_ACQUIRE_GLOBAL_LOCK_SIGNATURE 'LgaA'
37#define ACPI_RELEASE_GLOBAL_LOCK_SIGNATURE 'LgrA'
39#define ACPI_OBJECT_HAS_CHILDREN 0x1
41#define ENUM_CHILDREN_IMMEDIATE_ONLY 0x1
42#define ENUM_CHILDREN_MULTILEVEL 0x2
43#define ENUM_CHILDREN_NAME_IS_FILTER 0x4
153#define ACPI_METHOD_ARGUMENT_LENGTH( DataLength ) \
154 (FIELD_OFFSET(ACPI_METHOD_ARGUMENT, Data) + max(sizeof(ULONG), DataLength))
156#define ACPI_METHOD_ARGUMENT_LENGTH_FROM_ARGUMENT( Argument ) \
157 (ACPI_METHOD_ARGUMENT_LENGTH(((PACPI_METHOD_ARGUMENT)Argument)->DataLength))
159#define ACPI_METHOD_NEXT_ARGUMENT( Argument ) \
160 (PACPI_METHOD_ARGUMENT) ( (PUCHAR) Argument + \
161 ACPI_METHOD_ARGUMENT_LENGTH_FROM_ARGUMENT( Argument ) )
164#define ACPI_METHOD_SET_ARGUMENT_INTEGER( MethodArgument, IntData ) \
165 { MethodArgument->Type = ACPI_METHOD_ARGUMENT_INTEGER; \
166 MethodArgument->DataLength = sizeof(ULONG); \
167 MethodArgument->Argument = IntData; }
169#define ACPI_METHOD_SET_ARGUMENT_STRING( Argument, StrData ) \
170 { Argument->Type = ACPI_METHOD_ARGUMENT_STRING; \
171 Argument->DataLength = (USHORT)strlen((PCHAR)StrData) + sizeof(UCHAR); \
172 RtlCopyMemory(&Argument->Data[0],(PUCHAR)StrData,Argument->DataLength); }
174#define ACPI_METHOD_SET_ARGUMENT_BUFFER( Argument, BuffData, BuffLength ) \
175 { Argument->Type = ACPI_METHOD_ARGUMENT_BUFFER; \
176 Argument->DataLength = BuffLength; \
177 RtlCopyMemory(&Argument->Data[0],(PUCHAR)BuffData,Argument->DataLength); }
179#define ACPI_ENUM_CHILD_LENGTH_FROM_CHILD( Child ) \
180 ( (2* sizeof (ULONG)) + Child->NameLength )
182#define ACPI_ENUM_CHILD_NEXT( Child ) \
183 (PACPI_ENUM_CHILD) ( (PUCHAR) Child + \
184 ACPI_ENUM_CHILD_LENGTH_FROM_CHILD( Child ) )
186#define FOR_EACH_ACPI_METHOD_ARGUMENT( MethodArgument, \
187 MethodArgumentsBegin, \
188 MethodArgumentsEnd ) \
189 for (PACPI_METHOD_ARGUMENT MethodArgument = (MethodArgumentsBegin); \
190 MethodArgument < (MethodArgumentsEnd); \
191 MethodArgument = ACPI_METHOD_NEXT_ARGUMENT(MethodArgument))
193#define IOCTL_ACPI_ASYNC_EVAL_METHOD CTL_CODE(FILE_DEVICE_ACPI, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
194#define IOCTL_ACPI_EVAL_METHOD CTL_CODE(FILE_DEVICE_ACPI, 1, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
195#define IOCTL_ACPI_ACQUIRE_GLOBAL_LOCK CTL_CODE(FILE_DEVICE_ACPI, 4, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
196#define IOCTL_ACPI_RELEASE_GLOBAL_LOCK CTL_CODE(FILE_DEVICE_ACPI, 5, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
198#if (NTDDI_VERSION >= NTDDI_VISTA)
199#define IOCTL_ACPI_EVAL_METHOD_EX CTL_CODE(FILE_DEVICE_ACPI, 6, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
200#define IOCTL_ACPI_ASYNC_EVAL_METHOD_EX CTL_CODE(FILE_DEVICE_ACPI, 7, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
201#define IOCTL_ACPI_ENUM_CHILDREN CTL_CODE(FILE_DEVICE_ACPI, 8, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_EX * PACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_EX
struct _ACPI_EVAL_INPUT_BUFFER_COMPLEX * PACPI_EVAL_INPUT_BUFFER_COMPLEX
struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING
struct _ACPI_MANIPULATE_GLOBAL_LOCK_BUFFER ACPI_MANIPULATE_GLOBAL_LOCK_BUFFER
struct _ACPI_EVAL_INPUT_BUFFER ACPI_EVAL_INPUT_BUFFER
struct _ACPI_ENUM_CHILDREN_OUTPUT_BUFFER ACPI_ENUM_CHILDREN_OUTPUT_BUFFER
struct _ACPI_EVAL_INPUT_BUFFER_COMPLEX_EX ACPI_EVAL_INPUT_BUFFER_COMPLEX_EX
ACPI_METHOD_ARGUMENT UNALIGNED * PACPI_METHOD_ARGUMENT
struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_EX ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_EX
struct _ACPI_EVAL_OUTPUT_BUFFER ACPI_EVAL_OUTPUT_BUFFER
struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_EX ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_EX
struct _ACPI_ENUM_CHILD ACPI_ENUM_CHILD
struct _ACPI_EVAL_INPUT_BUFFER_COMPLEX_EX * PACPI_EVAL_INPUT_BUFFER_COMPLEX_EX
struct _ACPI_EVAL_INPUT_BUFFER * PACPI_EVAL_INPUT_BUFFER
struct _ACPI_MANIPULATE_GLOBAL_LOCK_BUFFER * PACPI_MANIPULATE_GLOBAL_LOCK_BUFFER
struct _ACPI_EVAL_INPUT_BUFFER_EX * PACPI_EVAL_INPUT_BUFFER_EX
struct _ACPI_EVAL_INPUT_BUFFER_EX ACPI_EVAL_INPUT_BUFFER_EX
struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING * PACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING
struct _ACPI_ENUM_CHILDREN_INPUT_BUFFER ACPI_ENUM_CHILDREN_INPUT_BUFFER
struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_EX * PACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_EX
struct _ACPI_METHOD_ARGUMENT ACPI_METHOD_ARGUMENT
ACPI_ENUM_CHILDREN_OUTPUT_BUFFER UNALIGNED * PACPI_ENUM_CHILDREN_OUTPUT_BUFFER
struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER
ACPI_ENUM_CHILD UNALIGNED * PACPI_ENUM_CHILD
struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER * PACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER
struct _ACPI_EVAL_INPUT_BUFFER_COMPLEX ACPI_EVAL_INPUT_BUFFER_COMPLEX
struct _ACPI_ENUM_CHILDREN_INPUT_BUFFER * PACPI_ENUM_CHILDREN_INPUT_BUFFER
ACPI_EVAL_OUTPUT_BUFFER UNALIGNED * PACPI_EVAL_OUTPUT_BUFFER
#define _Field_size_bytes_(s)
#define _Null_terminated_
_In_ ULONG _In_ ULONG _In_ ULONG Length
ACPI_ENUM_CHILD Children[ANYSIZE_ARRAY]
_Field_size_bytes_(NameLength) _Null_terminated_ CHAR Name[ANYSIZE_ARRAY]
_Field_size_bytes_(Length) ACPI_METHOD_ARGUMENT Argument[ANYSIZE_ARRAY]
_ANONYMOUS_UNION union _ACPI_METHOD_ARGUMENT::@2006 DUMMYUNIONNAME
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String