DTM and virtual network Adapter

hi,

we have developed a virtual netwok adapter for our VPN client.
we want it to be WHQL approved. we have installed the latest Windows logo Kit.
but we are unable to find any test for it.

besides there is not such document for WHQL submission for virtual Netwok Adapter Drivers.

wil some one show light on this? Or should be ask from WinQual.

deep

If the device does not fit any existing category then the “Unclassified”
tests can be used. These are pretty weak for a network driver, but will
allow you to get a WHQL signature.

In any event, run the Unclassified tests as soon as you can. They will
probably identify some issues - but not a great deal of stress on actual
network functionality.

Thomas F. Divine

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:bounce-354379-
xxxxx@lists.osr.com] On Behalf Of xxxxx@yahoo.co.in
Sent: Wednesday, February 11, 2009 11:46 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] DTM and virtual network Adapter

hi,

we have developed a virtual netwok adapter for our VPN client.
we want it to be WHQL approved. we have installed the latest Windows
logo Kit.
but we are unable to find any test for it.

besides there is not such document for WHQL submission for virtual
Netwok Adapter Drivers.

wil some one show light on this? Or should be ask from WinQual.

deep


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

so you mean to say that based on those results we could send it to WHQL approval.
no other things are necessary?

ok , let me try this case. will update you.

thanks Thomas !!

While that seems to be true that only Unclassified can get you a signature
for a virtual network adapter your product quality would still benefit from
manually running “NDIS Test” - at least the 1c_xxxx tests (single card
tests. There is a good start of an explanation on how to run NDISTest
manually here:

http://blogs.msdn.com/ndis/archive/2007/02/23/how-to-run-ndistest-outside-th
e-dtm.aspx

VPN ‘datapath’ testing was at one point in the HCT based tests (I read about
it, did not actually run the tests).

If your VPN virtual miniport claims to be an Ethernet device (and almost all
of them do) then you probably spoof ARP from the host IP stack. One
seemingly minor detail that you should take into account is that
synchronously replying to an ARP request with an ARP response (packet or
legacy indication) is a really bad idea. You can end up with multiple
round-trips through the entire network stack + your driver on the calling
thread stack (receive IP from you, causes ACK from TCP/IP, needs ARP, sends
ARP, you reply to ARP synchronously, ARP reply back up into TCP/IP, TCP/IP
sends original packet).

When you consider that an IM driver or LWF might be involved here the kernel
stack can get eaten up pretty fast. Three times around and often you are
looking at a stack overflow. A decent way to avoid this problem is to
queue ARP sends to be spoofed and service them on either a Workitem, Timer,
or DPC. This will reduce the round-trip stack depth to two separate
invocations of IP-Receive(Rx)->ARP-Req(Tx), and then later
ARP-Reply(Rx)->IP-Send(Tx).

Good Luck,
Dave Cattley
Consulting Engineer
Systems Software Development

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@yahoo.co.in
Sent: Thursday, February 12, 2009 4:18 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] DTM and virtual network Adapter

so you mean to say that based on those results we could send it to WHQL
approval.
no other things are necessary?

ok , let me try this case. will update you.

thanks Thomas !!


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

David R. Cattley wrote:

One seemingly minor detail that you should take into account is
that synchronously replying to an ARP request with an ARP
response (packet or legacy indication) is a really bad idea. You
can end up with multiple round-trips through the entire network
stack + your driver on the calling thread stack (receive IP from
you, causes ACK from TCP/IP, needs ARP, sends ARP, you reply
to ARP synchronously, ARP reply back up into TCP/IP, TCP/IP
sends original packet).

I take it your advice applies to DHCP servers built into the driver also? Or perhaps not, because the DORA process is only UDP broadcasts?

Chris,

Yes, I would apply the advice to any response generated by the driver so if
a driver does pseudo-DHCP to configure the host stack, it could potentially
apply as well. Since DHCP client side interaction is in usermode via
sockets, the opportunity for Windows itself to turn around a reply to a
synthesized DHCP response on the same thread is rather limited. That is not
necessarily true, however, of other entities in the system which might be
operating in kernel mode and process a synthesized (spoofed) response.

Thanks for point that out. I tend to use point-to-point static
configuration on virtual adapters so the DHCP spoof was not front-and-center
as I wrote the tip.

Cheers,
-dave

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@gmail.com
Sent: Thursday, February 12, 2009 10:51 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] DTM and virtual network Adapter

David R. Cattley wrote:

One seemingly minor detail that you should take into account is
that synchronously replying to an ARP request with an ARP
response (packet or legacy indication) is a really bad idea. You
can end up with multiple round-trips through the entire network
stack + your driver on the calling thread stack (receive IP from
you, causes ACK from TCP/IP, needs ARP, sends ARP, you reply
to ARP synchronously, ARP reply back up into TCP/IP, TCP/IP
sends original packet).

I take it your advice applies to DHCP servers built into the driver also?
Or perhaps not, because the DORA process is only UDP broadcasts?


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

Passing the unclassified DTM tests can get you an UNCLASSIFIED SIGNATURE,
which will allow your device to install withough asking the user for
permission. This is NOT the same as WHQL Logo certification, which you need
to claim “WHQL certified” in marketing info and to be on Windows Update. To
get Logo certification you need to pass the appropriate device class logo
tests, which are much more stringent.

Jan

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@yahoo.co.in
Sent: Thursday, February 12, 2009 1:18 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] DTM and virtual network Adapter

so you mean to say that based on those results we could send
it to WHQL approval.
no other things are necessary?

ok , let me try this case. will update you.

thanks Thomas !!


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

hello,

Thomas Divine: i went by your advice, and configured the DTM for unclassified test. thanks.
Dave Cattley: thanks for your findings and nice explaination

there are couple of questions i want ask.
for testing driver on the xp and 2k3 i did like this.

(1) Went to the device console
(2) Create a new submission.
(2) Select Xp.
(3) Unclassified…


(4) provided my INF file. (Load)
(5) Finish
in the right side, in available jobs, i selected the “Driver relieability”
(6) Add Selected
(6) Schedule Jobs.

there is a test under the node “Driver relieability”" named
“Pnpdtest with concurrent IO in parallel with DevPathExer - Library Job”

when i run this test on XP this fails. i investigated and found this link

http://msdn.microsoft.com/en-us/library/dd450424.aspx

this link says that this is only meant for “Vista” NOT “XP”

should i only check this test for Vista?

the tests that failed are

(1) Run Pnpdtest
(2) Run pwrtest
(3) DevPathExer

(1) Pnpdtest with concurrent IO in parallel with DevPathExer - Library Job->>>Run Pnpdtest

The Execute Task with Commandline
cmd /c pnpdtest.exe /device All /concurrentio /timedstress 10 /driverpath C:\WTT\JobsWorkingDir\Tasks\WTTJobRun52738184-055D-4F7E-97F2-E8B65E89C563 /noenddialog
Failed with ExitCode c0000005 (STATUS_ACCESS_VIOLATION - The instruction at “0x%08lx” referenced memory at “0x%08lx”. The memory could not be “%s”.)

(2) Pnpdtest with concurrent IO in parallel with DevPathExer - Library Job->>>Run pwrtest
The Execute Task with Commandline
cmd /c pwrtest /sleep /c:4 /d:300 /s:all
Failed with ExitCode 259

(3) Pnpdtest with concurrent IO in parallel with DevPathExer - Library Job->>>Run DevPathExer

The Execute Task with Commandline
cmd /c devpathexer.exe /hct /a
Failed with ExitCode c000013a (STATUS_CONTROL_C_EXIT The application terminated as a result of a CTRL+C.)

there is one more Job that is faling

:Device path excersier:

(1)Device path excersier->Device Path Exerciser - Library Job->Copy Log Files on Fail->

Cannot Find Pattern “*.trace”
Error Code 2 (The system cannot find the file specified)

(2)Device Path Exerciser->Device Path Exerciser - Library Job->Run Device Path Exerciser

DevPathExer.exe /lwa /HCT /dr “VNIC”
Invalid driver service name ‘VNIC’? NtQueryVolumeInformationFile for FileFsDriverPathInformation failed
Possible causes of this error are: Driver is not currently loaded, Mistyped Driver Service Name, etc

I doubled check with autoruns and varified that my driver service is there, but it says it could not find the service.

(3) Pnpdtest with concurrent IO in parallel with DevPathExer - Library Job->Run DevPathExer

The Execute Task with Commandline
cmd /c devpathexer.exe /hct /a
Failed with ExitCode c000013a (STATUS_CONTROL_C_EXIT The application terminated as a result of a CTRL+C.)

could someone show light on this?
regards

hello,
a little update:
Device Path Exerciser is fixed now. somehow, Virtual NW adapter got disabled at restart.
i enabled it. it works now!!

now only the “Pnpdtest with concurrent IO in parallel with DevPathExer - Library Job” remains.

regards

hello,

just a information for others!!
the test was failing due to bug in the WLK 1.3.
to fix it please install this QFE

http://www.microsoft.com/whdc/whql/resources/news/WHQLNews_021009.htm

thanks to all members!!

Jan Botoroff wrote:

This is NOT the same as WHQL Logo certification, which you need to
claim “WHQL certified” in marketing info and to be on Windows Update.

I don’t think you need a logo to be on Windows Update. I was hounded by MSFT contractors for months to put our drivers on Windows Update, and we only ever submitted for Unclassified. I could be wrong, though.