爲什麼當我嘗試寫入扇區33時,GetLastError
返回5?使用Windows API編寫扇區33
我的MASM32源代碼:
include \masm32\include\masm32rt.inc
.data?
hDrv HANDLE ?
buffer byte 512 dup(?)
tmp512 byte 512 dup(?)
.code
start:
STRING p,"\\.\PhysicalDrive0"
call main
inkey
exit
main proc
local i:dword
invoke CreateFile,addr p,GENERIC_READ or GENERIC_WRITE,NULL,NULL,OPEN_EXISTING,0,0
mov hDrv,eax
mov i,1
.while TRUE
invoke ReadFile,hDrv,addr buffer,512,addr tmp512,NULL
invoke WriteFile,hDrv,addr buffer,512,addr tmp512,NULL
.if eax==1
print str$(i),13,10,0
inc i
.else
invoke GetLastError
print str$(eax),13,10,0
.endif
.endw
invoke CloseHandle,hDrv
ret
main endp
end start
它可以與其他部門合作嗎? – Mehrdad 2015-01-21 02:41:54
您如何知道錯誤發生在ReadFile上?直到WriteFile調用之後才檢查返回值。您還需要檢查CreateFile的返回值。 – 2015-01-21 02:44:39
是的,它適用於其他行業! – 2015-01-21 02:46:30