UMDF HLK Error analysis

HLK Test Error

HLK Test case

在这里插入图片描述
HLK相应的测试项,对应于driver对应的callback函数,通过traceview可以打印对应的测试项调用的函数。

    //// Register the PnP callbacks with the framework.//WDF_PNPPOWER_EVENT_CALLBACKS_INIT(&Callbacks);Callbacks.EvtDevicePrepareHardware = OnPrepareHardware;Callbacks.EvtDeviceReleaseHardware = OnReleaseHardware;Callbacks.EvtDeviceD0Entry = OnD0Entry;Callbacks.EvtDeviceD0Exit = OnD0Exit;//// Register CLX callback function pointers//SENSOR_CONTROLLER_CONFIG_INIT(&SensorConfig);SensorConfig.DriverIsPowerPolicyOwner = WdfUseDefault;SensorConfig.EvtSensorStart                     = OnStart;SensorConfig.EvtSensorStop                      = OnStop;SensorConfig.EvtSensorGetSupportedDataFields    = OnGetSupportedDataFields;SensorConfig.EvtSensorGetDataInterval           = OnGetDataInterval;SensorConfig.EvtSensorSetDataInterval           = OnSetDataInterval;SensorConfig.EvtSensorGetDataFieldProperties    = OnGetDataFieldProperties;SensorConfig.EvtSensorGetDataThresholds         = OnGetDataThresholds;SensorConfig.EvtSensorSetDataThresholds         = OnSetDataThresholds;SensorConfig.EvtSensorGetProperties             = OnGetProperties;SensorConfig.EvtSensorDeviceIoControl           = OnIoControl;

Some error and solution

*WDTF_SIMPLE_IO       : - Open(Accelerometer ACPI\XXXXXXXX\1) Try count 1
WDTF_SUPPORT         : - WaitForMinutes : 1
WDTF_SIMPLE_IO       : - PerformIO(Accelerometer ACPI\XXXXXXXX\1) count 1
WDTF_SIMPLEIO_STRESS : - Stop(Accelerometer ACPI\XXXXXXXX\1)
WDTF_SIMPLE_IO       : - Close(Accelerometer ACPI\XXXXXXXX\1) 
ERROR: TAEF: A crash with exception code 0XC0000421 occurred in module "verifier.dll" in process "WUDFHost.exe" (pid:2500)
ERROR: TAEF: A crash with exception code 0X80000003 occurred in module "vrfcore.dll" in process "WUDFHost.exe" (pid:2500)**
WDTF_PNP             : - DIFRemoveDevice()
WDTF_PNP             :    Target: Accelerometer ACPI\XXXXXXXX\1
WDTF_PNP             : - RescanDevice(): (get status count: 1)
WDTF_PNP             :    Target: Inter(R) Serial IO I2C Host Controller - 31B6 PCI\VEN_8086&DEV_31B6&SUBSYS
WDTF_PNP             : - WaitForSeconds: 15*
  1. I2CIoTarget should not be removed when calling OnReleaseHardware.
    if (pDevice->m_I2CIoTarget){WdfIoTargetClose(pDevice->m_I2CIoTarget);WdfObjectDelete(pDevice->m_I2CIoTarget);pDevice->m_I2CIoTarget = NULL;}
  1. Any resource (like instance) need be removed before close the sensor.
NTSTATUS
MultiDevice::OnD0Exit
...
Status = pDevice->CloseSensor();
if (!NT_SUCCESS(Status))
{TraceError("ACC %!FUNC! Close sensor failed %!STATUS!", Status);goto Exit;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部