Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 1010 of file halacpi.c.
Referenced by HalpQueryResourceRequirements(), and HalpQueryResources().
{ PIO_RESOURCE_REQUIREMENTS_LIST RequirementsList; ULONG Count = 0, ListSize; NTSTATUS Status; PAGED_CODE(); /* Get ACPI resources */ HalpAcpiDetectResourceListSize(&Count); DPRINT("Resource count: %d\n", Count); /* Compute size of the list and allocate it */ ListSize = FIELD_OFFSET(IO_RESOURCE_REQUIREMENTS_LIST, List[0].Descriptors) + (Count * sizeof(IO_RESOURCE_DESCRIPTOR)); DPRINT("Resource list size: %d\n", ListSize); RequirementsList = ExAllocatePoolWithTag(PagedPool, ListSize, ' laH'); if (RequirementsList) { /* Initialize it */ RtlZeroMemory(RequirementsList, ListSize); RequirementsList->ListSize = ListSize; /* Build it */ Status = HalpBuildAcpiResourceList(RequirementsList); if (NT_SUCCESS(Status)) { /* It worked, return it */ *Requirements = RequirementsList; /* Validate the list */ ASSERT(RequirementsList->List[0].Count == Count); } else { /* Fail */ ExFreePoolWithTag(RequirementsList, ' laH'); Status = STATUS_NO_SUCH_DEVICE; } } else { /* Not enough memory */ Status = STATUS_INSUFFICIENT_RESOURCES; } /* Return the status */ return Status; }