:const
  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

相关文章:

  • 2021-11-29
  • 2022-01-11
  • 2022-12-23
  • 2021-07-22
  • 2021-05-17
  • 2022-12-23
猜你喜欢
  • 2021-07-30
相关资源
相似解决方案