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*
- I2CIoTarget should not be removed when calling OnReleaseHardware.
if (pDevice->m_I2CIoTarget){WdfIoTargetClose(pDevice->m_I2CIoTarget);WdfObjectDelete(pDevice->m_I2CIoTarget);pDevice->m_I2CIoTarget = NULL;}
- 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;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
