MappName = 'FileMapp.dat';
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
HFileMapp: THandle;
begin
HFileMapp := OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, MappName);
if HFileMapp > 0 then
begin
Edit1.Text := PChar(MapViewOfFile(HFileMapp, FILE_MAP_ALL_ACCESS, 0, 0, 0));
end;
end;
当进程初次被初始化时,它的句柄表是空的。然后,当进程中的线程调用创建内核对象的函数时,比如C r e a t e F i l e M a p p i n g ,内核 就为该对象分配一个内存块,并对它初始化。这时,内核对进程的句柄表进行扫描,找出一个空项。内核便找空位置上的结构并对它进行初始化。该指针成员将被设置为内核对象的数据结构的内存地址,访问屏蔽设置为全部访问权,同时,各个标志也作了 设置
1 内核对象区别于其他的是创建函数里含有
_SECURITY_ATTRIBUTES = record
nLength: DWORD;
lpSecurityDescriptor: Pointer;
bInheritHandle: BOOL;
end;
2 d