Problem with Verifier and an NDIS IM driver

G

Guest

I am having a problem when I attempt to run the driver verifier tests on an NDIS IM driver. During the NDIS tester portion of the driver verifier, I am getting a blue screen in the 1c-Reset.wsf test script. The blue screen is occurring during a SetInformation call and the OID is the OID_PNP_ADD_WAKE_UP_PATTERN. In our driver, we forward this OID to the underlying NIC miniport (as we are supposed to do according to the DDK documentation). The underlying NIC always returns a NDIS_STATUS_PENDING and then later finishes the call. Usually this call succeeds without any problems, but occasionally, we are getting a return value of NDIS_STATUS_RESOURCES (according to the documentation on this OID, this is normal) when our PtRequestComplete function is called by NDIS. Since we are doing nothing with this information, we just make sure that all the necessary information is set properly (BytesRead, BytesNeeded, OutstandingRequests, etc.) and then call NdisMSetInformationComplete(...) with the returned Status set to NDIS_STATUS_RESOURCES (the value that was indicated to us from the underlying NIC, and according to the DDK docs, what we are supposed to do). Unfortunately, when we pass up the status NDIS_STATUS_RESOURCES, we get a blue screen from the checked version of the ndis.sys file when an assertion fails -- the assertion we are seeing is Status == NDIS_STATUS_SUCCESS and according to SoftIce is coming from a file requestm.c at line 1058 (I think). Also, if in our PtRequestComplete function, we force the return status to be NDIS_STATUS_SUCCESS, the test completes with no problems. Finally, this problem only is occurring with this one particular OID

We are running the tests with HCT 11.2 on an XP Pro system and the underlying NICs are Intel gigabit cards that are signed. Does anyone have any suggestions as to what may be happening and/or how to fix the problem.
 
P

Pavel A.

What if you run verifier and ndistest on the NIC driver itself, without your IM? Will it bluescreen?

- PA

Jim said:
I am having a problem when I attempt to run the driver verifier tests on an NDIS IM driver. During the NDIS tester
portion of the driver verifier, I am getting a blue screen in the 1c-Reset.wsf test script. The blue screen is
occurring during a SetInformation call and the OID is the OID_PNP_ADD_WAKE_UP_PATTERN. In our driver, we forward this
OID to the underlying NIC miniport (as we are supposed to do according to the DDK documentation). The underlying NIC
always returns a NDIS_STATUS_PENDING and then later finishes the call. Usually this call succeeds without any problems,
but occasionally, we are getting a return value of NDIS_STATUS_RESOURCES (according to the documentation on this OID,
this is normal) when our PtRequestComplete function is called by NDIS. Since we are doing nothing with this
information, we just make sure that all the necessary information is set properly (BytesRead, BytesNeeded,
OutstandingRequests, etc.) and then call NdisMSetInformationComplete(...) with the returned Status set to
NDIS_STATUS_RESOURCES (the value that was indicated to us from the underlying NIC, and according to the DDK docs, what
we are supposed to do). Unfortunately, when we pass up the status NDIS_STATUS_RESOURCES, we get a blue screen from the
checked version of the ndis.sys file when an assertion fails -- the assertion we are seeing is Status ==
NDIS_STATUS_SUCCESS and according to SoftIce is coming from a file requestm.c at line 1058 (I think). Also, if in our
PtRequestComplete function, we force the return status to be NDIS_STATUS_SUCCESS, the test completes with no problems.
Finally, this problem only is occurring with this one particular OID.
We are running the tests with HCT 11.2 on an XP Pro system and the underlying NICs are Intel gigabit cards that are
signed. Does anyone have any suggestions as to what may be happening and/or how to fix the problem.
 
G

Guest

Nope -- it doesn't blue screen there and it does not blue screen all the time when run with my IM driver either -- only when the NIC returns NDIS_STATUS_RESOURCES, so I have had a number of successful tests with my IM driver, it just is not consistent. Also when this is run against the normal ndis.sys (i.e. not the checked version), there have been no problems at all either

Ji

----- Pavel A. wrote: ----

What if you run verifier and ndistest on the NIC driver itself, without your IM? Will it bluescreen

- P

Jim said:
I am having a problem when I attempt to run the driver verifier tests on an NDIS IM driver. During the NDIS teste
portion of the driver verifier, I am getting a blue screen in the 1c-Reset.wsf test script. The blue screen i
occurring during a SetInformation call and the OID is the OID_PNP_ADD_WAKE_UP_PATTERN. In our driver, we forward thi
OID to the underlying NIC miniport (as we are supposed to do according to the DDK documentation). The underlying NI
always returns a NDIS_STATUS_PENDING and then later finishes the call. Usually this call succeeds without any problems
but occasionally, we are getting a return value of NDIS_STATUS_RESOURCES (according to the documentation on this OID
this is normal) when our PtRequestComplete function is called by NDIS. Since we are doing nothing with thi
information, we just make sure that all the necessary information is set properly (BytesRead, BytesNeeded
OutstandingRequests, etc.) and then call NdisMSetInformationComplete(...) with the returned Status set t
NDIS_STATUS_RESOURCES (the value that was indicated to us from the underlying NIC, and according to the DDK docs, wha
we are supposed to do). Unfortunately, when we pass up the status NDIS_STATUS_RESOURCES, we get a blue screen from th
checked version of the ndis.sys file when an assertion fails -- the assertion we are seeing is Status =
NDIS_STATUS_SUCCESS and according to SoftIce is coming from a file requestm.c at line 1058 (I think). Also, if in ou
PtRequestComplete function, we force the return status to be NDIS_STATUS_SUCCESS, the test completes with no problems
Finally, this problem only is occurring with this one particular OIDsigned. Does anyone have any suggestions as to what may be happening and/or how to fix the problem.
 
M

Mitesh Desai [MSFT]

Jim,

If you do not do anything special during reset, in the miniport portion of
your IM, you can set the ResetHandler to NULL. It is okay for an IM to not
have a reset handler. The passthru and muxim samples in the DDK do not use
these & the DDK documentation is being updated to make it optional for
Intermediate Drivers.

NDISTest may incorrectly fail you for not supporting reset in the IM driver,
but that is an issue in the NDISTest which would be fixed in the next HCT
release.

Mitesh

--
This posting is provided "AS IS" with no warranties, and confers no rights.


Jim said:
Nope -- it doesn't blue screen there and it does not blue screen all the
time when run with my IM driver either -- only when the NIC returns
NDIS_STATUS_RESOURCES, so I have had a number of successful tests with my IM
driver, it just is not consistent. Also when this is run against the normal
ndis.sys (i.e. not the checked version), there have been no problems at all
either.
Jim

----- Pavel A. wrote: -----

What if you run verifier and ndistest on the NIC driver itself,
without your IM? Will it bluescreen?
tests on an NDIS IM driver. During the NDIS tester
portion of the driver verifier, I am getting a blue screen in the
1c-Reset.wsf test script. The blue screen is
occurring during a SetInformation call and the OID is the
OID_PNP_ADD_WAKE_UP_PATTERN. In our driver, we forward this
OID to the underlying NIC miniport (as we are supposed to do
according to the DDK documentation). The underlying NIC
always returns a NDIS_STATUS_PENDING and then later finishes the
call. Usually this call succeeds without any problems,
but occasionally, we are getting a return value of
NDIS_STATUS_RESOURCES (according to the documentation on this OID,
this is normal) when our PtRequestComplete function is called by
NDIS. Since we are doing nothing with this
information, we just make sure that all the necessary information is
set properly (BytesRead, BytesNeeded,
OutstandingRequests, etc.) and then call
NdisMSetInformationComplete(...) with the returned Status set to
NDIS_STATUS_RESOURCES (the value that was indicated to us from the
underlying NIC, and according to the DDK docs, what
we are supposed to do). Unfortunately, when we pass up the status
NDIS_STATUS_RESOURCES, we get a blue screen from the
checked version of the ndis.sys file when an assertion fails -- the
assertion we are seeing is Status ==
NDIS_STATUS_SUCCESS and according to SoftIce is coming from a file
requestm.c at line 1058 (I think). Also, if in our
PtRequestComplete function, we force the return status to be
NDIS_STATUS_SUCCESS, the test completes with no problems.
Finally, this problem only is occurring with this one particular OID.
underlying NICs are Intel gigabit cards that are
signed. Does anyone have any suggestions as to what may be happening
and/or how to fix the problem.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top