Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenacpiioct.h
Go to the documentation of this file.
00001 #pragma once 00002 00003 #ifdef __cplusplus 00004 extern "C" { 00005 #endif 00006 00007 #define ACPI_EVAL_INPUT_BUFFER_SIGNATURE 'BieA' 00008 #define ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_SIGNATURE 'IieA' 00009 #define ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_SIGNATURE 'SieA' 00010 #define ACPI_EVAL_INPUT_BUFFER_COMPLEX_SIGNATURE 'CieA' 00011 #define ACPI_EVAL_OUTPUT_BUFFER_SIGNATURE 'BoeA' 00012 #if (NTDDI_VERSION >= NTDDI_VISTA) 00013 #define ACPI_EVAL_INPUT_BUFFER_SIGNATURE_EX 'AieA' 00014 #define ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_SIGNATURE_EX 'DieA' 00015 #define ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_SIGNATURE_EX 'EieA' 00016 #define ACPI_EVAL_INPUT_BUFFER_COMPLEX_SIGNATURE_EX 'FieA' 00017 #define ACPI_ENUM_CHILDREN_OUTPUT_BUFFER_SIGNATURE 'GieA' 00018 #define ACPI_ENUM_CHILDREN_INPUT_BUFFER_SIGNATURE 'HieA' 00019 #endif 00020 00021 #define ACPI_METHOD_ARGUMENT_INTEGER 0x0 00022 #define ACPI_METHOD_ARGUMENT_STRING 0x1 00023 #define ACPI_METHOD_ARGUMENT_BUFFER 0x2 00024 #define ACPI_METHOD_ARGUMENT_PACKAGE 0x3 00025 #define ACPI_METHOD_ARGUMENT_PACKAGE_EX 0x4 00026 00027 #define ACPI_ACQUIRE_GLOBAL_LOCK_SIGNATURE 'LgaA' 00028 #define ACPI_RELEASE_GLOBAL_LOCK_SIGNATURE 'LgrA' 00029 00030 #define ACPI_OBJECT_HAS_CHILDREN 0x1 00031 00032 #define ENUM_CHILDREN_IMMEDIATE_ONLY 0x1 00033 #define ENUM_CHILDREN_MULTILEVEL 0x2 00034 #define ENUM_CHILDREN_NAME_IS_FILTER 0x4 00035 00036 typedef struct _ACPI_EVAL_INPUT_BUFFER { 00037 ULONG Signature; 00038 _ANONYMOUS_UNION union { 00039 UCHAR MethodName[4]; 00040 ULONG MethodNameAsUlong; 00041 } DUMMYUNIONNAME; 00042 } ACPI_EVAL_INPUT_BUFFER, *PACPI_EVAL_INPUT_BUFFER; 00043 00044 typedef struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER { 00045 ULONG Signature; 00046 _ANONYMOUS_UNION union { 00047 UCHAR MethodName[4]; 00048 ULONG MethodNameAsUlong; 00049 } DUMMYUNIONNAME; 00050 ULONG IntegerArgument; 00051 } ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER, *PACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER; 00052 00053 typedef struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING { 00054 ULONG Signature; 00055 _ANONYMOUS_UNION union { 00056 UCHAR MethodName[4]; 00057 ULONG MethodNameAsUlong; 00058 } DUMMYUNIONNAME; 00059 ULONG StringLength; 00060 UCHAR String[ANYSIZE_ARRAY]; 00061 } ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING, *PACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING; 00062 00063 typedef struct _ACPI_METHOD_ARGUMENT { 00064 USHORT Type; 00065 USHORT DataLength; 00066 _ANONYMOUS_UNION union { 00067 ULONG Argument; 00068 UCHAR Data[ANYSIZE_ARRAY]; 00069 } DUMMYUNIONNAME; 00070 } ACPI_METHOD_ARGUMENT; 00071 typedef ACPI_METHOD_ARGUMENT UNALIGNED *PACPI_METHOD_ARGUMENT; 00072 00073 typedef struct _ACPI_EVAL_INPUT_BUFFER_COMPLEX { 00074 ULONG Signature; 00075 _ANONYMOUS_UNION union { 00076 UCHAR MethodName[4]; 00077 ULONG MethodNameAsUlong; 00078 } DUMMYUNIONNAME; 00079 ULONG Size; 00080 ULONG ArgumentCount; 00081 ACPI_METHOD_ARGUMENT Argument[ANYSIZE_ARRAY]; 00082 } ACPI_EVAL_INPUT_BUFFER_COMPLEX, *PACPI_EVAL_INPUT_BUFFER_COMPLEX; 00083 00084 typedef struct _ACPI_EVAL_OUTPUT_BUFFER { 00085 ULONG Signature; 00086 ULONG Length; 00087 ULONG Count; 00088 ACPI_METHOD_ARGUMENT Argument[ANYSIZE_ARRAY]; 00089 } ACPI_EVAL_OUTPUT_BUFFER; 00090 typedef ACPI_EVAL_OUTPUT_BUFFER UNALIGNED *PACPI_EVAL_OUTPUT_BUFFER; 00091 00092 typedef struct _ACPI_MANIPULATE_GLOBAL_LOCK_BUFFER { 00093 ULONG Signature; 00094 PVOID LockObject; 00095 } ACPI_MANIPULATE_GLOBAL_LOCK_BUFFER, *PACPI_MANIPULATE_GLOBAL_LOCK_BUFFER; 00096 00097 typedef struct _ACPI_EVAL_INPUT_BUFFER_EX { 00098 ULONG Signature; 00099 CHAR MethodName[256]; 00100 } ACPI_EVAL_INPUT_BUFFER_EX, *PACPI_EVAL_INPUT_BUFFER_EX; 00101 00102 typedef struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_EX { 00103 ULONG Signature; 00104 CHAR MethodName[256]; 00105 ULONG64 IntegerArgument; 00106 } ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_EX, *PACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_EX; 00107 00108 typedef struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_EX { 00109 ULONG Signature; 00110 CHAR MethodName[256]; 00111 ULONG StringLength; 00112 UCHAR String[ANYSIZE_ARRAY]; 00113 } ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_EX, *PACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_EX; 00114 00115 typedef struct _ACPI_EVAL_INPUT_BUFFER_COMPLEX_EX { 00116 ULONG Signature; 00117 CHAR MethodName[256]; 00118 ULONG Size; 00119 ULONG ArgumentCount; 00120 ACPI_METHOD_ARGUMENT Argument[ANYSIZE_ARRAY]; 00121 } ACPI_EVAL_INPUT_BUFFER_COMPLEX_EX, *PACPI_EVAL_INPUT_BUFFER_COMPLEX_EX; 00122 00123 typedef struct _ACPI_ENUM_CHILDREN_INPUT_BUFFER { 00124 ULONG Signature; 00125 ULONG Flags; 00126 ULONG NameLength; 00127 CHAR Name[ANYSIZE_ARRAY]; 00128 } ACPI_ENUM_CHILDREN_INPUT_BUFFER, *PACPI_ENUM_CHILDREN_INPUT_BUFFER; 00129 00130 typedef struct _ACPI_ENUM_CHILD { 00131 ULONG Flags; 00132 ULONG NameLength; 00133 CHAR Name[ANYSIZE_ARRAY]; 00134 } ACPI_ENUM_CHILD; 00135 typedef ACPI_ENUM_CHILD UNALIGNED *PACPI_ENUM_CHILD; 00136 00137 typedef struct _ACPI_ENUM_CHILDREN_OUTPUT_BUFFER { 00138 ULONG Signature; 00139 ULONG NumberOfChildren; 00140 ACPI_ENUM_CHILD Children[ANYSIZE_ARRAY]; 00141 } ACPI_ENUM_CHILDREN_OUTPUT_BUFFER; 00142 typedef ACPI_ENUM_CHILDREN_OUTPUT_BUFFER UNALIGNED *PACPI_ENUM_CHILDREN_OUTPUT_BUFFER; 00143 00144 #define ACPI_METHOD_ARGUMENT_LENGTH( DataLength ) \ 00145 (FIELD_OFFSET(ACPI_METHOD_ARGUMENT, Data) + max(sizeof(ULONG), DataLength)) 00146 00147 #define ACPI_METHOD_ARGUMENT_LENGTH_FROM_ARGUMENT( Argument ) \ 00148 (ACPI_METHOD_ARGUMENT_LENGTH(((PACPI_METHOD_ARGUMENT)Argument)->DataLength)) 00149 00150 #define ACPI_METHOD_NEXT_ARGUMENT( Argument ) \ 00151 (PACPI_METHOD_ARGUMENT) ( (PUCHAR) Argument + \ 00152 ACPI_METHOD_ARGUMENT_LENGTH_FROM_ARGUMENT( Argument ) ) 00153 00154 00155 #define ACPI_METHOD_SET_ARGUMENT_INTEGER( MethodArgument, IntData ) \ 00156 { MethodArgument->Type = ACPI_METHOD_ARGUMENT_INTEGER; \ 00157 MethodArgument->DataLength = sizeof(ULONG); \ 00158 MethodArgument->Argument = IntData; } 00159 00160 #define ACPI_METHOD_SET_ARGUMENT_STRING( Argument, StrData ) \ 00161 { Argument->Type = ACPI_METHOD_ARGUMENT_STRING; \ 00162 Argument->DataLength = strlen((PCHAR)StrData) + sizeof(UCHAR); \ 00163 RtlCopyMemory(&Argument->Data[0],(PUCHAR)StrData,Argument->DataLength); } 00164 00165 #define ACPI_METHOD_SET_ARGUMENT_BUFFER( Argument, BuffData, BuffLength ) \ 00166 { Argument->Type = ACPI_METHOD_ARGUMENT_BUFFER; \ 00167 Argument->DataLength = BuffLength; \ 00168 RtlCopyMemory(&Argument->Data[0],(PUCHAR)BuffData,Argument->DataLength); } 00169 00170 #define ACPI_ENUM_CHILD_LENGTH_FROM_CHILD( Child ) \ 00171 ( (2* sizeof (ULONG)) + Child->NameLength ) 00172 00173 #define ACPI_ENUM_CHILD_NEXT( Child ) \ 00174 (PACPI_ENUM_CHILD) ( (PUCHAR) Child + \ 00175 ACPI_ENUM_CHILD_LENGTH_FROM_CHILD( Child ) ) 00176 00177 #define IOCTL_ACPI_ASYNC_EVAL_METHOD CTL_CODE(FILE_DEVICE_ACPI, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00178 #define IOCTL_ACPI_EVAL_METHOD CTL_CODE(FILE_DEVICE_ACPI, 1, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00179 #define IOCTL_ACPI_ACQUIRE_GLOBAL_LOCK CTL_CODE(FILE_DEVICE_ACPI, 4, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00180 #define IOCTL_ACPI_RELEASE_GLOBAL_LOCK CTL_CODE(FILE_DEVICE_ACPI, 5, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00181 00182 #if (NTDDI_VERSION >= NTDDI_VISTA) 00183 #define IOCTL_ACPI_EVAL_METHOD_EX CTL_CODE(FILE_DEVICE_ACPI, 6, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00184 #define IOCTL_ACPI_ASYNC_EVAL_METHOD_EX CTL_CODE(FILE_DEVICE_ACPI, 7, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00185 #define IOCTL_ACPI_ENUM_CHILDREN CTL_CODE(FILE_DEVICE_ACPI, 8, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 00186 #endif 00187 00188 #ifdef __cplusplus 00189 } 00190 #endif Generated on Sun May 27 2012 04:29:55 for ReactOS by
1.7.6.1
|