[wdmaudiodev] Doubt about MDL

  • From: Surabhi Ghaisas <ghaisas.surabhi@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Tue, 20 Nov 2012 11:18:25 +0530

Hi,

For a miniport driver i will be allocating a buffer and create
corresponding MDL by using function *AllocatePagesForMdl*. This method
always allocates an integral number of pages from nonpaged pool. Does this
mean that if i call *MmGetMdlByteOffset*  with this MDL as i/p , the byte
offset returned by *MmGetMdlByteOffset*  will always be zero?

Is there any possibility of getting non zero offset indicating that even
though buffer is of say n pages the valid data starts at some non zero
offset of first page?  Also when i allocate buffer using *
AllocatePagesForMdl* is it guaranteed that all rest of the pages are fully
allocated for my buffer or do i need to traverse *PMDL**Next *element until
mdl ends and find byte offset within each page using *MmGetMdlByteOffset* ?

Regards,
Surabhi

Other related posts: