☰
ACPI断点源代码版--server03调试指南
2026/10/14 13:59:39 网站建设 项目流程

ACPI断点源代码版


NTSTATUS LOCAL RunContext(PCTXT pctxt)
{

while (!IsStackEmpty(pctxt))
{
CHKDEBUGGERREQ();
pfh = (PFRAMEHDR)pctxt->LocalHeap.pbHeapEnd;
ASSERT(pfh->pfnParse != NULL);

rc = pfh->pfnParse(pctxt, pfh, rc); 断点1:ACPI!RunContext+0x11f
if ((rc == AMLISTA_PENDING) || (rc == AMLISTA_DONE))
{
break;
}
}

else
{
ReleaseMutex(&gReadyQueue.mutCtxtQ);
if ((rc == STATUS_SUCCESS) && (pctxt->pdataCallBack != NULL))
{
rc = DupObjData(gpheapGlobal, pctxt->pdataCallBack, &pctxt->Result);
}

if (pctxt->dwfCtxt & CTXTF_NEED_CALLBACK)
{
AsyncCallBack(pctxt, rc); 断点2:ACPI!RunContext+0x197

VOID
EXPORT
ACPIGetWorkerForInteger(
IN PNSOBJ AcpiObject,
IN NTSTATUS Status,
IN POBJDATA Result,
IN PVOID Context
)
{

status = ACPIGetConvertToDevicePresence(
request->DeviceExtension,
Status,
Result,
request->Flags,
request->Buffer,
request->BufferSize
); ACPI!ACPIGetWorkerForInteger+0x70


NTSTATUS
ACPIBuildProcessGenericList(
IN PLIST_ENTRY ListEntry,
IN PACPI_BUILD_FUNCTION *DispatchTable
)
{


//
// Call the function
//
status = (buildFunction)( buildRequest );ACPI!ACPIBuildProcessGenericList+0x4d

....

//
// If we have completed the request, then we should look at the
// at the next request, otherwise, we need to look at the current
// request again
if ( workDone == WORK_DONE_COMPLETE || workDone == WORK_DONE_FAILURE) {

currentEntry = tempEntry;

} ACPI!ACPIBuildProcessGenericList+0x50


VOID LOCAL DispatchCtxtQueue(PCTXTQ pctxtq)
{

while ((plist = ListRemoveHead(&pctxtq->plistCtxtQ)) != NULL)
{
pctxt = CONTAINING_RECORD(plist, CTXT, listQueue);

ASSERT(pctxt->pplistCtxtQueue == &pctxtq->plistCtxtQ);

pctxt->pplistCtxtQueue = NULL;
pctxt->dwfCtxt &= ~CTXTF_IN_READYQ;
RunContext(pctxt); ACPI!DispatchCtxtQueue+0xaf
}

VOID
ACPIWorker(
IN PVOID StartContext
)
{

(WorkItem->WorkerRoutine)(WorkItem->Parameter); ACPI!ACPIWorker+0xbd


NTSTATUS
ACPIBuildProcessRunMethodPhaseRecurse(
IN PACPI_BUILD_REQUEST BuildRequest
)
{

//
// Make a request to run the control method on this child
//
status = ACPIBuildRunMethodRequest(
childExtension,
NULL,
NULL,
BuildRequest->RunRequest.ControlMethodName,
BuildRequest->RunRequest.Flags,
FALSE
); ACPI!ACPIBuildProcessRunMethodPhaseRecurse+0x58

bp ACPI!ACPIBuildProcessRunMethodPhaseCheckSta
bp ACPI!RunContext
bp ACPI!ACPIGetConvertToDevicePresence
bp ACPI!Return
bp ACPI!ParseCall
bp ACPI!ACPIBuildRunMethodRequest

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询