Hi, i need some explanations about how an intermediate driver works. I wonder if snybody can help me. Here’s what is unclear to me.
Okay, DDK doc says that an Intermediate driver MUST export a miniport interface and CAN export a protocol interface. So …a miniport if is used to receive packets from the upper layer and a protocol is used by ndis to indicate a packet has been received and protocol functions are used to pass the packet descriptors to the upper level, if I understood correctly.
Now, After DriverEntry has been called, NDIS calls ProtocolBindAdapter which should cointan a call to NdisIMInitializeDeviceInstanceEx, which causes the MiniportInitialize function to be called. But, if the driver can (and not must) register a protocol interface…if a protocol interface is not implemented, who calls MiniportInitialize, sice a call to ProcolBindAdapter will never happen to be called.
Thanks
Matt