ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

ACPIBuildProcessRunMethodPhaseCheckSta和ACPIBuildProcessDevicePhaseAdr都调用了ACPIGetDevicePresenceAsync

ACPIBuildProcessRunMethodPhaseCheckSta和ACPIBuildProcessDevicePhaseAdr都调用了ACPIGetDevicePresenceAsync


ACPIBuildProcessRunMethodPhaseCheckSta函数和ACPIBuildProcessDevicePhaseAdr函数都调用了ACPIGetDevicePresenceAsync

ACPIDetectPdoDevices函数调用了ACPIGetDevicePresenceSync只不过是同步的

NTSTATUS
ACPIBuildProcessDevicePhaseAdr(
IN PACPI_BUILD_REQUEST BuildRequest
)
{
//
// Get the device status
//
status = ACPIGetDevicePresenceAsync(

deviceExtension,
ACPIBuildCompleteMustSucceed,
BuildRequest,
(PVOID *) &(BuildRequest->Integer),
NULL
);

//
// What happened?
//
ACPIDevPrint( (
ACPI_PRINT_LOADING,
deviceExtension,
"ACPIBuildProcessDevicePhaseAdr: Status = %08lx\n",
status
) );


NTSTATUS
ACPIBuildProcessRunMethodPhaseCheckSta(
IN PACPI_BUILD_REQUEST BuildRequest
)
{
//
// Do we have to check the device status?
//
if (BuildRequest->RunRequest.Flags & RUN_REQUEST_CHECK_STATUS) {

//
// Get the device status
//
status = ACPIGetDevicePresenceAsync(

deviceExtension,
ACPIBuildCompleteMustSucceed,
BuildRequest,
(PVOID *) &(BuildRequest->Integer),
NULL
);

//
// What happened?
//
ACPIDevPrint( (
ACPI_PRINT_LOADING,
deviceExtension,
"ACPIBuildProcessRunMethodPhaseCheckSta: Status = %08lx\n",
status
) );
if (status == STATUS_PENDING) {

return status;

}

}


ACPI!ACPIDetectPdoDevices
NTSTATUS
ACPIDetectPdoDevices(
IN PDEVICE_OBJECT DeviceObject,
IN PDEVICE_RELATIONS *DeviceRelations
)
{


//
// Update the current device status
//
status =ACPIGetDevicePresenceSync(
deviceExtension,
(PVOID *) &deviceStatus,
NULL
);

//
// If the device exists
//
if ( NT_SUCCESS(status) &&
!(deviceExtension->Flags & DEV_MASK_NOT_PRESENT) ) {

返回列表