From: Armageddon on
I'm developing a RNDIS firmware and I have a few questions.

1. I have my firmware running, but I'm finding that the process of
acquiring the network address and indentifying the network is a bit hard to
debug. Is it possible to configure something in either the INF file or the
registry so that Windows XP/Windows Vista will load and install the driver
but not attach any protocols to it? I would like to use the sample filter
driver from the WinDDK to write a program to send and receive test ethernet
packets on the network to test basic functionality with needing to debug all
the higher level functionality.

2. This is not clear from the RNDIS documentation. Does the entire RNDIS
packet header and ethernet frame need to be in the same USB transfer or can
it be split? I understand the max transfer concept in the device
initialization messages.
From: Armageddon on

"Armageddon" wrote:

> I'm developing a RNDIS firmware and I have a few questions.
>
> 1. I have my firmware running, but I'm finding that the process of
> acquiring the network address and indentifying the network is a bit hard to
> debug. Is it possible to configure something in either the INF file or the
> registry so that Windows XP/Windows Vista will load and install the driver
> but not attach any protocols to it? I would like to use the sample filter
> driver from the WinDDK to write a program to send and receive test ethernet
> packets on the network to test basic functionality with needing to debug all
> the higher level functionality.
>

I found the answer to this. Disable enough stuff in the firmware so that
the device just discards packets and get the device to load in network
connections. Once loaded, click properties and uncheck all the check boxes
to disable all the protocols.
This allowed me to install NDISPROT and let it be the only enabled protcol
so that I could send individual test ethernet frames.

> 2. This is not clear from the RNDIS documentation. Does the entire RNDIS
> packet header and ethernet frame need to be in the same USB transfer or can
> it be split? I understand the max transfer concept in the device
> initialization messages.

I figured this out on my own. An NDIS message packet/ethernet frame can't
cross USB transfer boundries.