VOID
IoBuildPartialMdl(
IN PMDL SourceMdl,
IN OUT PMDL TargetMdl,
IN PVOID VirtualAddress,
IN ULONG Length
);
IoBuildPartialMdl maps a portion of a buffer described by another MDL into an MDL.
IoBuildPartialMdl maps a subrange of a buffer currently mapped by SourceMdl. The VirtualAddress and Length parameters describe the subrange to be mapped from the SourceMdl into the TargetMdl.
Drivers that must split large transfer requests can use this routine. The caller must release the partial MDL it allocated when it has transferred all the requested data or completed the IRP with an error status.
Callers of IoBuildPartialMdl must be running at IRQL PASSIVE_LEVEL.
IoAllocateMdl, IoCallDriver, IoFreeMdl, IoSetCompletionRoutine