36 lines
1,021 B
C++
36 lines
1,021 B
C++
// Gemplus (C) 1999
|
|
// Version 1.0
|
|
// Author: Sergey Ivanov
|
|
// Date of creation - 18.05.1999
|
|
// Change log:
|
|
|
|
#ifndef WDM_MEM_INT
|
|
#define WDM_MEM_INT
|
|
#include "generic.h"
|
|
#include "memory.h"
|
|
|
|
#pragma PAGEDCODE
|
|
class CWDMMemory : public CMemory
|
|
{
|
|
public:
|
|
NTSTATUS m_Status;
|
|
SAFE_DESTRUCTORS();
|
|
virtual VOID dispose(VOID){self_delete();};
|
|
protected:
|
|
CWDMMemory(){m_Status = STATUS_SUCCESS;};
|
|
virtual ~CWDMMemory(){};
|
|
public:
|
|
static CMemory* create(VOID);
|
|
virtual PVOID allocate(IN POOL_TYPE PoolType,IN SIZE_T NumberOfBytes);
|
|
virtual VOID zero(IN PVOID pMem,IN SIZE_T size);
|
|
virtual VOID free(IN PVOID pMem);
|
|
virtual VOID copy(IN VOID UNALIGNED *Destination,IN CONST VOID UNALIGNED *Source, IN SIZE_T Length);
|
|
|
|
virtual PVOID mapIoSpace(IN PHYSICAL_ADDRESS PhysicalAddress,IN SIZE_T NumberOfBytes,IN MEMORY_CACHING_TYPE CacheType);
|
|
virtual VOID unmapIoSpace(IN PVOID BaseAddress,IN SIZE_T NumberOfBytes);
|
|
virtual VOID set(IN VOID UNALIGNED *Destination,IN SIZE_T Length,LONG Fill);
|
|
|
|
};
|
|
|
|
#endif//MEMORY
|