ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

acpiioct.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.