svn path=/trunk/; revision=14498
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/io/mdl.c
* PURPOSE: Io manager mdl functions
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/io/mdl.c
* PURPOSE: Io manager mdl functions
* PROGRAMMERS: David Welch (welch@mcmail.com)
*/
* PROGRAMMERS: David Welch (welch@mcmail.com)
*/
if (ChargeQuota)
{
// Mdl = ExAllocatePoolWithQuota(NonPagedPool,
if (ChargeQuota)
{
// Mdl = ExAllocatePoolWithQuota(NonPagedPool,
TAG_MDL);
}
MmInitializeMdl(Mdl, (char*)VirtualAddress, Length);
TAG_MDL);
}
MmInitializeMdl(Mdl, (char*)VirtualAddress, Length);
if (Irp)
{
if (SecondaryBuffer)
{
ASSERT(Irp->MdlAddress);
if (Irp)
{
if (SecondaryBuffer)
{
ASSERT(Irp->MdlAddress);
/* FIXME: add to end of list maybe?? */
Mdl->Next = Irp->MdlAddress->Next;
Irp->MdlAddress->Next = Mdl;
}
else
{
/* FIXME: add to end of list maybe?? */
Mdl->Next = Irp->MdlAddress->Next;
Irp->MdlAddress->Next = Mdl;
}
else
{
* What if there's allready an mdl at Irp->MdlAddress?
* Is that bad and should we do something about it?
*/
Irp->MdlAddress = Mdl;
}
}
* What if there's allready an mdl at Irp->MdlAddress?
* Is that bad and should we do something about it?
*/
Irp->MdlAddress = Mdl;
}
}
*/
VOID STDCALL
IoFreeMdl(PMDL Mdl)
*/
VOID STDCALL
IoFreeMdl(PMDL Mdl)
* This unmaps partial mdl's from kernel space but also asserts that non-partial
* mdl's isn't still mapped into kernel space.
*/
* This unmaps partial mdl's from kernel space but also asserts that non-partial
* mdl's isn't still mapped into kernel space.
*/
+ ASSERT(Mdl);
+ ASSERT_IRQL(DISPATCH_LEVEL);
+
MmPrepareMdlForReuse(Mdl);
MmPrepareMdlForReuse(Mdl);