From: aminer on

Hello,


Description:


Why the the 2 Go limitation on the Win 32bits systems ?


My AWE object pascal module is here, it allows your application
to use up to 64GB of RAM.


And here is the public interface of TAWEStorage class,
i have implemented the follow methods:


TAWEStorage = class(TObject)
public


Size:longword;
position:longword;
PageSize:integer;


constructor Create();
destructor Destroy(); override;
function GetMem(ulBytes: ULONG): BOOL;
function FreeMem(): BOOL;
function HowManyPagesAllocated(): ULONG;
function CopyFrom(in_stream:TMemoryStream;count:longint):longint;
function CopyTo(out_stream:TMemoryStream;count:longint):longint;
function Read(var Buffer;count:longint):longint;
function Write(const Buffer;count:longint):longint;
function ToString:string;


end;


Note: To be able to use AWE you have to set the user rights
correctly,
so,go to: Control Panel -> Administrative tools -> Local Security
Policy
-> User Rights Assignment and give 'Lock pages in memory' right
to the user that wants to use AWE.


Every TAWStorage object can go up to 4GB , and you can go up to
64GB !


You can download my AWE module from:

http://pages.videotron.com/aminer/


TAWEStorage is very easy to use, here is an example:


-------------------------------------------------


program test;


uses AWE,classes;


var
awe1:TAWEStorage;
ptr:pointer;
fstream1:TFileStream;
stream1,stream2:TMemoryStream;


Function StringToStream(const AString: string): TMemoryStream;
begin
Result := TMemoryStream(TStringStream.Create(AString));
end;


begin


stream2:=TMemoryStream.create;


fstream1:=TFileStream.create('test.txt',fmCreate);


stream1:=StringToStream('Hello world !');
awe1:=TAWEStorage.create;


writeln;
if awe1.getmem(stream1.size)
then writeln('Memory was reserved...')
else writeln('Memory was not reserved...');


writeln('Number of pages allocatd is: ',awe1.HowManyPagesAllocated);


if awe1.CopyFrom(stream1,stream1.size) <> 0
then writeln('CopyFrom ok ...')
else writelN('CopyFrom not ok ..');


awe1.position:=0;
awe1.CopyTo(stream2,awe1.size);


stream2.position:=0;
fstream1.copyfrom(stream2,stream2.size);
stream2.position:=0;
fstream1.position:=0;


writeln(awe1.tostring);


awe1.freemem;
awe1.free;
end.


--------------------------------------------------------------




Sincerely,
Amine Moulay Ramdane.


From: aminer on

Hello,

A nice module, that you can use with ParallelHashList , right ?

:)


Welcome: http://pages.videotron.com/aminer/



Sincerely,
Amine Moulay Ramdane.

From: aminer on

Hello,


There is another module at:

http://www.winsoft.sk/awe.htm


But you have to pay for it.. and i think my module is *better*.


Welcome: http://pages.videotron.com/aminer/



Sincerely,
Amine Moulay Ramdane.