CreateFileMapping
CreateFileMapping
VB聲明
Declare Function CreateFileMapping Lib "kernel32" Alias "CreateFileMappingA" (ByVal hFile As Long, lpFileMappigAttributes As SECURITY_ATTRIBUTES, ByVal flProtect As Long, ByVal dwMaximumSizeHigh As Long, ByVal dwMaximumSizeLow As Long, ByVal lpName As String) As Long
說明
創建一個新的文件映射對象
返回值
Long,新建文件映射對象的句柄;零意味著出錯。會設置GetLastError。即使函數成功,但倘若返回的句柄屬于一個現成的文件映射對象,那么GetLastError也會設置成ERROR_ALREADY_EXISTS。在這種情況下,文件映射的長度就是現有對象的長度,而不是這個函數指定的尺寸
參數表
參數 類型及說明
hFile Long,指定欲在其中創建映射的一個文件句柄。&HFFFFFFFF&表示在內存中創建一個文件映射
lpFileMappigAttributes SECURITY_ATTRIBUTES,指定一個安全對象,在創建文件映射時使用。如果為NULL(用ByVal As Long傳遞零),表示使用默認安全對象
flProtect Long,下述常數之一:
PAGE_READONLY 以只讀方式打開映射
PAGE_READWRITE 以可讀、可寫方式打開映射
PAGE_WRITECOPY 為寫操作留下備份
可組合使用下述一個或多個常數
SEC_COMMIT 為文件映射一個小節中的所有頁分配內存
SEC_IMAGE 文件是個可執行文件
SEC_RESERVE 為沒有分配實際內存的一個小節保留虛擬內存空間
dwMaximumSizeHigh Long,文件映射的最大長度(高32位)
dwMaximumSizeLow Long,文件映射的最小長度(低32位)。如這個參數和dwMaximumSizeHigh都是零,就用磁盤文件的實際長度
lpName String,指定文件映射對象的名字。如存在這個名字的一個映射,函數就會打開它。用vbNullString創建一個無名的文件映射
調用CreateFileMapping的時候GetLastError的對應錯誤
ERROR_FILE_INVALID 如果企圖創建一個零長度的文件映射
ERROR_INVALID_HANDLE 內存空間的命名和現有的內存映射, 互斥量, 信號量, 臨界區有同名
ERROR_ALREADY_EXISTS 表示內存空間命名已經存在
轉載于:https://www.cnblogs.com/hackpig/archive/2010/02/18/1669084.html
總結
以上是生活随笔為你收集整理的CreateFileMapping的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        