Hi
Can someone help me in finding a solution for acheiving common buffer dma
.The following is the source code. On allocation I used the following
code and it works fine.
VirtualBuffer =
HalAllocateCommonBuffer(DmaAdapter,0x1000,&PhysicalBuffer,FALSE);
MemMDL = IoAllocateMdl(VirtualBuffer,0x1000,FALSE,FALSE,NULL);
MmBuildMdlForNonPagedPool(MemMDL);
UserBuffer = MmMapLockedPages(MemMDL,UserMode);
On deallocation I used the following code and works fine.
MmUnlockPages(MemMDL); IoFreeMdl(MemMDL);
HalFreeCommonBuffer(DmaAdapter,0x1000,PhysicalBuffer,VirtualBuffer,FALSE);
BSOD appears when I close the application.
A fatal system error has occurred.
*******************************************************************************
*
*
* Bugcheck Analysis
*
*
*
*******************************************************************************
*** WARNING: Unable to verify Timestamp for ntoskrnl.exe
*** ERROR: Symbol file could not be found. Defaulted to export symbols
for ntoskrnl.exe -
Bugcheck code 0000000A
Arguments c0503000 00000002 00000000 8012d773
ChildEBP RetAddr Args to Child
f7497bfc 801415e0 0000000a c0503000 00000002
ntoskrnl!DbgBreakPointWithStatus+0x4
*** WARNING: Unable to verify Timestamp for halapic.dll
*** ERROR: Symbol file could not be found. Defaulted to export symbols
for halapic.dll -
f7497c18 80010880 f7497c60 8010a465 e1194d68
ntoskrnl!Kei386EoiHelper+0x2948
00000001 00000000 00000000 00000000 00000000 halapic+0xf880
ntoskrnl!DbgBreakPointWithStatus+4:
8012ff7c cc
Your responce is highly appreciated
Daliraju