ULONG m_MaxFrameSize;
ULONG m_Alignment;
ULONG m_TagSupportEnabled;
- ULONG m_NumDataAvailable;
+ volatile ULONG m_NumDataAvailable;
volatile ULONG m_CurrentOffset;
-
- PIRP m_Irp;
-
-
- LONG m_Ref;
-
+ volatile PIRP m_Irp;
+ volatile LONG m_Ref;
};
typedef struct
PKSSTREAM_DATA StreamData;
ULONG Size;
PIO_STACK_LOCATION IoStack;
+ ULONG Index;
+ PMDL Mdl;
// sanity check
ASSERT(m_Irp);
return;
}
+ Mdl = m_Irp->MdlAddress;
+ for(Index = 0; Index < StreamData->StreamHeaderCount; Index++)
+ {
+ MmUnmapLockedPages(StreamData->Data[Index], Mdl);
+ Mdl = Mdl->Next;
+ }
+
// free stream data array
FreeItem(StreamData->Data, TAG_PORTCLASS);