87{
98
101
103
105 {
109
111 break;
112
114 SimpleInt =
Irp->AssociatedIrp.SystemBuffer;
115
118
120
123
126 break;
127
129 SimpleStr =
Irp->AssociatedIrp.SystemBuffer;
130
133
135
138
141 break;
142
143 default:
146 }
147
153 MethodName,
154 &ParamList,
155 &RetBuff);
156
157 if (ParamList.
Count != 0)
159
161 {
163 ULONG ExtraParamLength = 0;
165
166
169
171 {
174 break;
175
178 if (
Obj->String.Length + 1 >
sizeof(
ULONG))
179 ExtraParamLength +=
Obj->String.Length + 1 -
sizeof(
ULONG);
180 break;
181
184 if (
Obj->Buffer.Length >
sizeof(
ULONG))
185 ExtraParamLength +=
Obj->Buffer.Length + 1 -
sizeof(
ULONG);
186 break;
187
192 break;
193
194 default:
197 }
198
199 DPRINT(
"ExtraParamLength %lu\n", ExtraParamLength);
202 'BpcA');
203 if (!OutputBuf)
205
207 OutputBuf->Length = ExtraParamLength;
208 OutputBuf->Count =
Count;
209
211 {
214 break;
215
218 break;
219
222 break;
223
228 break;
229
230 default:
233 }
234
236 ExtraParamLength)
237 {
239 ExtraParamLength);
243 }
244 else
245 {
248 }
249 }
250 else
251 {
254 }
255}
struct _ACPI_EVAL_OUTPUT_BUFFER ACPI_EVAL_OUTPUT_BUFFER
#define ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER_SIGNATURE
#define ACPI_EVAL_INPUT_BUFFER_SIGNATURE
#define ACPI_METHOD_SET_ARGUMENT_INTEGER(MethodArgument, IntData)
#define ACPI_METHOD_SET_ARGUMENT_STRING(Argument, StrData)
#define ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING_SIGNATURE
#define ACPI_EVAL_OUTPUT_BUFFER_SIGNATURE
#define ACPI_METHOD_SET_ARGUMENT_BUFFER(Argument, BuffData, BuffLength)
struct _ACPI_METHOD_ARGUMENT ACPI_METHOD_ARGUMENT
ACPI_EVAL_OUTPUT_BUFFER UNALIGNED * PACPI_EVAL_OUTPUT_BUFFER
#define ACPI_ALLOCATE_BUFFER
#define ACPI_TYPE_INTEGER
#define ACPI_TYPE_PACKAGE
#define NT_SUCCESS(StatCode)
static const WCHAR Signature[]
static NTSTATUS ConvertPackageArguments(ACPI_METHOD_ARGUMENT *Argument, ACPI_OBJECT *Package)
static NTSTATUS GetPackageSize(ACPI_OBJECT *Package, PULONG Count, PULONG Size)
_In_ PIO_STACK_LOCATION IrpSp
#define ExAllocatePoolWithTag(hernya, size, tag)
#define ExFreePoolWithTag(_P, _T)
ACPI_STATUS AcpiEvaluateObject(ACPI_HANDLE Handle, ACPI_STRING Pathname, ACPI_OBJECT_LIST *ExternalParams, ACPI_BUFFER *ReturnBuffer)
#define STATUS_NOT_IMPLEMENTED
#define STATUS_BUFFER_TOO_SMALL
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
#define RtlCopyMemory(Destination, Source, Length)
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
#define STATUS_INSUFFICIENT_RESOURCES
struct acpi_object::@600 Integer
struct acpi_object::@601 String
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)