winhex|HLK测试中安装Application verifier 后遇到的问题

【winhex|HLK测试中安装Application verifier 后遇到的问题】最近在做HLK测试,之前同事搭建的测试环境,自己只是调代码,后来自己接手测,重建了一个环境,在测试Fingerprint reader logo test->run sequence tests时怎么也通不过,通过打印日志,就是停在第一次capturedata完成之后的complete函数时,同时用以前测试能通过的驱动进行测试,也有同样的问题,当时考虑的时搭建的环境有问题,问之前的同事如何搭建的,他说自己也忘了,当时是微软的人指导搭建的,没有仔细看明白,所以自己摸索一下搭建环境,测试端从服务端选择setupamd64,安装完后测试端多了四个程序,我优先把application verifier x64 external package卸载掉,再做测试就通过了,当时心里不知有多高兴,等把所有的测试项测试通过,告诉微软的人说,我把那个卸载了测试就通过了,可微软的不干了,他说还没有通过hlk的客户这么做,我这样相当于绕过了他设置的测试障碍,到时送到美国去review还是通不过,到时打回来,还是要重做,即浪费了钱也浪费了时间,他这样一说,全身不高兴了,但没有办法,只能重来,通过各种工具,反复查看log和各种尝试,折腾了几天,最后总算是把问题找到,还是要找log查看问题停在哪个地方,因为在complete之后报错,所有把之前的两句
captureData->PayloadSize = RequiredBufferSize;
captureData->WinBioHresult = WINBIO_E_NO_CAPTURE_DATA;
屏蔽掉,果然不再报错,但captureData->PayloadSize = RequiredBufferSize; 屏蔽会导致框架不知道分配内存的大小,显然是不行的,当时以为是分配的内存过大,导致框架分配不了这么多内存而当掉,但设置成0x04的倍数值不管多少或多大都不行,但是在此尝试的过程中却发现,同时屏蔽captureData->WinBioHresult = WINBIO_E_NO_CAPTURE_DATA; 时,RequiredBufferSize怎么改都没问题,但一打开,就有问题,最后直接只屏蔽captureData->WinBioHresult = WINBIO_E_NO_CAPTURE_DATA; ,不修改RequiredBufferSize,问题得到解决。
captureData->WinBioHresult = WINBIO_E_NO_CAPTURE_DATA; 这个还回的就是一个状态,为什么这个状态在平时没有报错,添加了application verifer时就报错昵,网上查application verifer的功能就是起堆栈,内存,寄存器等监控作用,这个问题现在还不明白,有兴趣的朋友一起沟通。

    推荐阅读