ReceiveLength in TdiBuildReceive

hi ,all
I want to receive some data from connection endpoint, and then receive the remainder of the pdu according to the first received Pdu header.this operation will be done recursively.
How can i do this?
I want to Allocate Mdl large enough to hold the header and partial data of the PDU,and then use TdiBuildReceive with the ReceiveLength less then the size of the whole buffer.Can it do ?If not ,thanks for any advices.