TDI client/protocol interaction
Hi,
I am trying to write a TDI client driver and Protocol driver on Windows Server 2003. I want my protocol driver to report NIC binding ADD/DEL events to the TDI client.
I registered for TdiRegisterPnPHandlers in my client . When a NIC binding is added (or deleted) , I call TdiRegisterDeviceObject ( or DeRegister) in my protocol driver. But I dont see my clients ClientPnPBindingChange routine being called with TDI_PNP_OP_ADD (or TDI_PNP_OP_DEL).
Another problem is that I am able to receive ClientPnPAddNetAddress (or ClientPnPDelNetAddress) from the TCPIP module when network address changes occur, but I am not able to do the same from my protocol driver. I call TdiRegisterNetAddress (or TdiDeregisterNetAddress) from the protocol driver but my clients callback is never called.
Any help in this matter would be appreciated.
thanks
[943 byte] By [
LucaC] at [2008-2-7]
I am using this code and I can see ClientPnPBindingChange
NTSTATUS SetNotificationHandler(PUNICODE_STRING RegistryPath)
{
HANDLE BindingHandle =NULL;
ULONG InterfaceInfoSize=0;
TDI_CLIENT_INTERFACE_INFO ClientInterfaceInfo;
NTSTATUS status = STATUS_SUCCESS;
ClientInterfaceInfo.MajorTdiVersion =TDI_CURRENT_MAJOR_VERSION;
ClientInterfaceInfo.MinorTdiVersion =TDI_CURRENT_MINOR_VERSION;
ClientInterfaceInfo.ClientName = RegistryPath;
ClientInterfaceInfo.PnPPowerHandler = NeoClientPnPPowerChange;
ClientInterfaceInfo.BindingHandler = NeoClientPnPBindingChange;
ClientInterfaceInfo.AddAddressHandlerV2 = NeoClientPnPAddNetAddress;
ClientInterfaceInfo.DelAddressHandlerV2 = NeoClientPnPDelNetAddress;
InterfaceInfoSize =
sizeof(ClientInterfaceInfo);status = TdiRegisterPnPHandlers(
&ClientInterfaceInfo,
InterfaceInfoSize,
&BindingHandle
);
bb_DbgPrint(TRACE_NO,(
"\nAfter TdiRegisterPnPHandlers: status: 0x%x",status));return status;}