Question about: Dynamic Hardware Partitioning

Hi,
My stor miniport driver failed in “hot add” and “hot replace” tests of WHQL.
Should my driver do anything additional to support “Dynamic Hardware Partitioning” feature?
And in fact I found nothing related with driver in WDK’s topic “Dynamic Hardware Partitioning”.

You might want to provide some additional detail about the failures. These
tests exercise removal and insertion and do not directly have anything to do
with dynamic hardware partitioning other than that also may exercise removal
and insertion.

On Wed, Mar 5, 2008 at 5:07 AM, wrote:

> Hi,
> My stor miniport driver failed in “hot add” and “hot replace” tests of
> WHQL.
> Should my driver do anything additional to support “Dynamic Hardware
> Partitioning” feature?
> And in fact I found nothing related with driver in WDK’s topic “Dynamic
> Hardware Partitioning”.
>
> —
> 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

In addition to what Mark said, hardware partitioning can require that
all DMA gets temporarily stopped. Since the most convenient WDM
primitive for temporarily stopping DMA is a suspend/resume cycle,
changing the hardware can often involve telling the drivers that the
system is going to sleep and then telling them that it is waking up,
even if that system is so physically large that it couldn’t possibly
actually go to sleep.

So the bottom line is that if your driver just needs to be a good WDM
citizen. It needs to sleep. It needs to rebalance (support
query-stop and stop.) It needs to support being removed.

  • Jake Oshins
    Windows Kernel Guy

“Mark Roddy” wrote in message
news:xxxxx@ntdev…
You might want to provide some additional detail about the failures.
These tests exercise removal and insertion and do not directly have
anything to do with dynamic hardware partitioning other than that also
may exercise removal and insertion.

On Wed, Mar 5, 2008 at 5:07 AM, wrote:

Hi,
My stor miniport driver failed in “hot add” and “hot replace” tests
of WHQL.
Should my driver do anything additional to support “Dynamic Hardware
Partitioning” feature?
And in fact I found nothing related with driver in WDK’s topic
“Dynamic Hardware Partitioning”.


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

Thank all, let me think.
BTW, the following is opied from WDK:

The following list shows the sequence of notifications that a device driver can receive when a new processor is added to a system:

1.Notification that a new processor has been started. This notification is sent synchronously before the operating system begins scheduling threads on the new processor. A device driver must register to receive this notification.
2.Plug and Play notification that a processor device has been added. This notification is sent asynchronously after the operating system begins scheduling threads on the new processor. A device driver must register to receive this notification.
3.Query stop device, stop device, and start device Plug and Play requests for resource rebalancing. A device driver always receives these Plug and Play requests unless the driver is not a Plug and Play driver.

Failure report has the following things:
Error Type: HRESULT
Error Code: 0x80004003
Error Text: Invalid pointer
End Test Device and/or driver parameter must match local device
Result: Fail

The WHQL failure report says:
Error Type: HRESULT
Error Code: 0x80004003
Error Text: Invalid pointer
End Test Device and/or driver parameter must match local device
Result: Fail

“Failed tests” of my *.cpk file shows:

DP WDK -Hot-replace -Device Test -Verify driver support for D3 power state
DP WDK -Hot-add -Device Test -Verify driver support for Hot-Add CPU

So maybe I should process “SRB_FUNCTION_PNP” and “SRB_FUNCTION_POWER” commands?
Or I should process “IRP_MJ_PNP” and “IRP_MJ_POWER” commands of the console device of my driver?