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;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值