TDI event handlers question RRS feed

  • Question

  • Hello!

    I'm developing a TDI filter driver for pre-WFP operation systems.

    I wonder which TDI requests a TDI client is allowed to issue in the process of handling a TDI event. For example, AFD (or whatever) occasionally requests TDI_DISCONNECT from inside its ClientEventReceive handler. What other cases are possible, or maybe event handler's functionality is not limited in this respect ?



    Wednesday, May 19, 2010 3:13 PM

All replies

  • Not limited.

    Re-read the TDI documentation as if you were writing TDI clients instead of a filter. Better yet, write some TDI clients yourself. You will see that the TDI client developer has a tremendous amount of freedom in choosing methods to be used. And... Your filter must account for all possible choices.

    Good luck,

    Thomas F. Divine


    Thomas F. Divine http://www.pcausa.com
    Thursday, May 20, 2010 12:45 PM
  • Does it mean that even TDI_RECEIVE during ClientEvent(Chained)Receive is allowed? I think not...

    On the other hand, may the filter (or protocol) invoke two or more client handlers simultaneously, for example, call ClientEventDisconnect while the client is processing ClientEvent(Chained)Received?


    Friday, May 21, 2010 7:44 PM
  • Why not a receive call from a receive event handler? I think so!

    And vairations as well. Accept some (but not all) data in receive handler (perhaps size of a header...), then post read for more data.

    Read could be initiated by 1.) using the IRP that can be returned from the event handler or 2.) much later in some thread.

    Lots of flexibility in TDI.

    Good luck,


    Thomas F. Divine http://www.pcausa.com
    Friday, May 21, 2010 8:05 PM