MmInitializeMdl

来源:互联网 发布:养出通透的皮肤知乎 编辑:程序博客网 时间:2024/05/18 13:41
//++//// VOID// MmInitializeMdl (//     IN PMDL MemoryDescriptorList,//     IN PVOID BaseVa,//     IN SIZE_T Length//     )//// Routine Description:////     这个例程初始化一个MDL的头部。//// Arguments:////     MemoryDescriptorList - 指向需要初始化的例程。////     BaseVa - MDL需要映射的虚拟地址基址。////     Length - MDL需要映射的缓冲区长度。//// Return Value:////     None.////--#define MmInitializeMdl(MemoryDescriptorList, BaseVa, Length) { \    (MemoryDescriptorList)->Next = (PMDL) NULL; \    (MemoryDescriptorList)->Size = (CSHORT)(sizeof(MDL) +  \            (sizeof(PFN_NUMBER) * ADDRESS_AND_SIZE_TO_SPAN_PAGES((BaseVa), (Length)))); \    (MemoryDescriptorList)->MdlFlags = 0; \    (MemoryDescriptorList)->StartVa = (PVOID) PAGE_ALIGN((BaseVa)); \    (MemoryDescriptorList)->ByteOffset = BYTE_OFFSET((BaseVa)); \    (MemoryDescriptorList)->ByteCount = (ULONG)(Length); \    }

0 0
原创粉丝点击