[英]Understanding ERROR_SHARING_VIOLATION in fasm x86
據我了解,如果共享模式設置為 0,我將無法再次打開該文件。
默認情況下,我將其設置為 3,但即使將其設置為 2 ( FILE_SHARE_WRITE
) 也會輸出相同的錯誤。
所以這讓我認為參數是正確的。
數據:
FileName:
db 'testWriteFile.txt',0
代碼:
//create file
push 0 // hTemplateFile null
push 80 //dwFlagsAndAttributes 'FILE_ATTRIBUTE_NORMAL'
push 4 // dwCreationDisposition OPEN_ALWAYS
push 0 // lpSecurityAttributes null
push 3 // dwShareMode FILE_SHARE_READ | FILE_SHARE_WRITE -> allow other programs to read and write
push C // dwDesiredAccess GENERIC_WRITE
push FileName //lpFileName
call CreateFileA
call GetLastError
可能是什么原因?
編輯:CreateFIleA 參考https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea
push 0 // hTemplateFile null push 80 //dwFlagsAndAttributes 'FILE_ATTRIBUTE_NORMAL' push 4 // dwCreationDisposition OPEN_ALWAYS push 0 // lpSecurityAttributes null push 3 // dwShareMode FILE_SHARE_READ | FILE_SHARE_WRITE -> allow other programs to read and write push C // dwDesiredAccess GENERIC_WRITE push FileName //lpFileName call CreateFileA
您推送的值是十六進制數。 您必須 append 一個合適的詞綴才能獲得這些。
push 0 // hTemplateFile null
push 80h // dwFlagsAndAttributes FILE_ATTRIBUTE_NORMAL
push 4 // dwCreationDisposition OPEN_ALWAYS
push 0 // lpSecurityAttributes null
push 3 // dwShareMode FILE_SHARE_READ | FILE_SHARE_WRITE
push 0C0000000h // dwDesiredAccess GENERIC_READ | GENERIC_WRITE
push FileName // lpFileName
call CreateFileA
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.