WHQL and Failed Device Path Exerciser

Hi All,
I have a softare-only driver. Its a root enumerated function driver(WDM
Driver). It has been written on framework provided by driverworks. My aim is
to apply for WHQL for that I am doing DTM testing for this driver under
unclassified category. There are 2 cases for my problem:

Case A:

NTSTATUS Device::Create(KIrp I)
{
NTSTATUS status;

// I.ForceReuseOfCurrentStackLocationInCalldown();
// status = m_Lower.PnpCall(this, I);
status = I.PnpComplete(this, STATUS_SUCCESS, IO_NO_INCREMENT);

return status;
}

*Results:*

  • For Vista x64 this works preety well and all tests under DTM have
    been passed.
  • But for Vista 32 bit fails in “Device Path Exerciser” and its gives
    BSOD with BugCheck C9, {22f, 89510c10, 87d34f20, 0}.
  • My applications are working fine.

*Case B:*

So I made changes in Create routine to get it WHQL ceritifications:

NTSTATUS CryptOSDDevice::Create(KIrp I)
{
NTSTATUS status;

I.ForceReuseOfCurrentStackLocationInCalldown();
status = m_Lower.PnpCall(this, I);
// status = I.PnpComplete(this, STATUS_SUCCESS, IO_NO_INCREMENT);

return status;
}

*Results:*

  • Vista x64 bit passes all the tests.

  • Vista 32 passes all DTM tests.

  • Problems start here,But my appliactions are not able to register
    with driver. This causes initialization of driver to fail.
    Which we can’t afford

  • So whats reason, DTM is behaving in different ways ?

  • Can I get WHQL signing even if my driver fails (Case A) to pass one DTM
    tests in my case its “Device Path Exerciser” ?

Thanks for your time.

Thanks,
Nag

Case B should be read like:

NTSTATUS Device::Create(KIrp I)
{
NTSTATUS status;

I.ForceReuseOfCurrentStackLocationInCalldown();
status = m_Lower.PnpCall(this, I);
// status = I.PnpComplete(this, STATUS_SUCCESS, IO_NO_INCREMENT);

return status;
}

Thanks,
Nag

Start over. DriverWorks was a dead product long before Vista. Its power and PnP code has bugs. Use KMDF. In the create who or what is going to handle the IRP you pass down? Since it seems to have something to do with encryption, it must be a storage device of some form even if it is a ‘virtual’ device where the real storage is contained in a file or possibly an exclusive storage device being accessed at the sector level. I used DriverWorks in the past and it can be made to function by fixing bugs, but with a new OS version it may require a lot of work. KMDF is the way to go or possibly UMDF if it can expose storage in a form you can use.
“नागेश कुमार” wrote in message news:xxxxx@ntdev…
Hi All,
I have a softare-only driver. Its a root enumerated function driver(WDM Driver). It has been written on framework provided by driverworks. My aim is to apply for WHQL for that I am doing DTM testing for this driver under unclassified category. There are 2 cases for my problem:

Case A:
------------
NTSTATUS Device::Create(KIrp I)
{
NTSTATUS status;

// I.ForceReuseOfCurrentStackLocationInCalldown();
// status = m_Lower.PnpCall(this, I);

status = I.PnpComplete(this, STATUS_SUCCESS, IO_NO_INCREMENT);

return status;
}

Results:

a… For Vista x64 this works preety well and all tests under DTM have been passed.
b… But for Vista 32 bit fails in “Device Path Exerciser” and its gives BSOD with BugCheck C9, {22f, 89510c10, 87d34f20, 0}.
c… My applications are working fine.

Case B:

So I made changes in Create routine to get it WHQL ceritifications:

NTSTATUS CryptOSDDevice::Create(KIrp I)
{
NTSTATUS status;

I.ForceReuseOfCurrentStackLocationInCalldown();
status = m_Lower.PnpCall(this, I);

// status = I.PnpComplete(this, STATUS_SUCCESS, IO_NO_INCREMENT);

return status;
}

Results:
a… Vista x64 bit passes all the tests.
b… Vista 32 passes all DTM tests.
c… Problems start here,But my appliactions are not able to register with driver. This causes initialization of driver to fail.
Which we can’t afford

- So whats reason, DTM is behaving in different ways ?

- Can I get WHQL signing even if my driver fails (Case A) to pass one DTM tests in my case its “Device Path Exerciser” ?
-
Thanks for your time.

Thanks,
Nag

Thats true DriverWorks is a dead product.We are woking on KMDF module. But at this moment my requirements is on DriverWorks. As all the functionalities are working preety fine. Except “Device Path Exerciser” tests. It stores the key in physical storage device.

  • Can I get WHQL signing even if my driver fails (Case A) to pass one DTM tests in my case its “Device Path Exerciser” ?

Thanks for your time.

No. You are unlikely to get an exemption for something this fundamental. You
are going to have to do more analysis of the problem and patch whatever it
is that driver(not)works has done wrong. Verifier might help analyze the
problem.

On Feb 13, 2008 7:45 AM, wrote:

> Thats true DriverWorks is a dead product.We are woking on KMDF module. But
> at this moment my requirements is on DriverWorks. As all the functionalities
> are working preety fine. Except “Device Path Exerciser” tests. It stores the
> key in physical storage device.
> - Can I get WHQL signing even if my driver fails (Case A) to pass one DTM
> tests in my case its “Device Path Exerciser” ?
>
> Thanks for your time.
>
>
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>


Mark Roddy

The broad answer to your question is a big no.

The caveats being unless Microsoft recognise a generic problem with a
test on a particular class of driver and issue an errata for it.

Unless you can quote an errata number in your WHQL submission to
justify the test failure then WinQual will always deny your submission request.

You can open a support incident with Microsoft if you think there
should be an errata for your specific condition. If they agree with
you then the support incident becomes free.

From what you have said so far, I doubt that you’ll be covered by
the caveats. You’re failing a test that all devices must pass and
the reason you’re failing is because of an old/buggy 3rd party
development tool. I don’t think you’ll have much sympathy from the
WinQual people over this.

Mark.

At 12:45 PM 2/13/2008, xxxxx@gmail.com wrote:

Thats true DriverWorks is a dead product.We are woking on KMDF
module. But at this moment my requirements is on DriverWorks. As all
the functionalities are working preety fine. Except “Device Path
Exerciser” tests. It stores the key in physical storage device.

  • Can I get WHQL signing even if my driver fails (Case A) to pass
    one DTM tests in my case its “Device Path Exerciser” ?

Thanks for your time.

Is DriverWorks shipped with source? Then just plain debug the crash, as
usually.


Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

“??? ???” wrote in message news:xxxxx@ntdev…
> Hi All,
> I have a softare-only driver. Its a root enumerated function driver(WDM
> Driver). It has been written on framework provided by driverworks. My aim is
> to apply for WHQL for that I am doing DTM testing for this driver under
> unclassified category. There are 2 cases for my problem:
>
> Case A:
> ------------
> NTSTATUS Device::Create(KIrp I)
> {
> NTSTATUS status;
>
>
> // I.ForceReuseOfCurrentStackLocationInCalldown();
> // status = m_Lower.PnpCall(this, I);
> status = I.PnpComplete(this, STATUS_SUCCESS, IO_NO_INCREMENT);
>
> return status;
> }
>
> Results:
>
>
> - For Vista x64 this works preety well and all tests under DTM have
> been passed.
> - But for Vista 32 bit fails in “Device Path Exerciser” and its gives
> BSOD with BugCheck C9, {22f, 89510c10, 87d34f20, 0}.
> - My applications are working fine.
>
>
> Case B:
>
> So I made changes in Create routine to get it WHQL ceritifications:
>
> NTSTATUS CryptOSDDevice::Create(KIrp I)
> {
> NTSTATUS status;
>
>
> I.ForceReuseOfCurrentStackLocationInCalldown();
> status = m_Lower.PnpCall(this, I);
> // status = I.PnpComplete(this, STATUS_SUCCESS, IO_NO_INCREMENT);
>
> return status;
> }
>
> Results:
>
> - Vista x64 bit passes all the tests.
> - Vista 32 passes all DTM tests.
> - Problems start here,But my appliactions are not able to register
> with driver. This causes initialization of driver to fail.
> Which we can’t afford
>
>
>
> - So whats reason, DTM is behaving in different ways ?
> - Can I get WHQL signing even if my driver fails (Case A) to pass one DTM
> tests in my case its “Device Path Exerciser” ?
> -
> Thanks for your time.
>
> Thanks,
> Nag
>

Device Path Exerciser is one honkin’ BIG suite of tests. It tests a LOT of stuff.

Note that the tool that is used to perform these tests is part of the WDK (it’s DC2.exe). Perhaps you can use it to narrow down the cause of your problem.

Peter
OSR

I’ve had to certify just recently for Vista three old 3.2 DriverStudio based drivers, two DriverWorks based and one DriverNetworks based. I’ve been actually amazed how well the DTM tests for them have gone - very few library source code changes were in order.

This is just an encouragement for you to fix the issue at hand and keep using this driver until a modern enough replacement is available. There is nothing inherently wrong in DriverWorks that can’t be easily resolved - you have the source code.

Regards,
Ilya Faenson

Thanks a lot to all of you for your inputs. I got the fix for this problem.
After analyzing properly I figured out that problem was with the way I was
handling exceptions.

Thanks,
Nag

On 2/14/08, xxxxx@hotmail.com wrote:
>
> I’ve had to certify just recently for Vista three old 3.2 DriverStudio
> based drivers, two DriverWorks based and one DriverNetworks based. I’ve
> been actually amazed how well the DTM tests for them have gone - very few
> library source code changes were in order.
>
> This is just an encouragement for you to fix the issue at hand and keep
> using this driver until a modern enough replacement is available. There is
> nothing inherently wrong in DriverWorks that can’t be easily resolved - you
> have the source code.
>
> Regards,
> Ilya Faenson
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>


Regards,
Nagesh Kumar

Until a modern enough replacement of what is available? If you mean
DriverStudio, that won’t be happening. I’m neither disagreeing nor
agreeing with the advice to fix the existing driver, as to do either
would require knowing a lot more about your driver, the problems you’re
having, and where you are, but there are most definitely are things
inherently wrong with DriverWorks, and at least one of them can’t be
fixed - it isn’t supported. Indeed you do have the source code, and you
can make fixes, but that leaves out the first step which is figuring out
where the problem is in the first place, which isn’t a feature of library.

Good luck,

mm

xxxxx@hotmail.com wrote:

I’ve had to certify just recently for Vista three old 3.2 DriverStudio based drivers, two DriverWorks based and one DriverNetworks based.

I’ve been actually amazed how well the DTM tests for them have gone -
very few library source code changes were in order.

This is just an encouragement for you to fix the issue at hand and keep using this driver until a modern enough replacement is available.

There is nothing inherently wrong in DriverWorks that can’t be easily
resolved - you have the source code.

Regards,
Ilya Faenson