Windows レジストリ関数を使用して、アセンブリ言語で「Software\Microsoft\Windows\CurrentVersion\Run」キーにレジストリ キーを作成しようとしています。プログラムがクラッシュし、Windows エラー メッセージが表示されます。コードは次のとおりです。
includelib \Masm64\Lib\Kernel32.lib
includelib \Masm64\Lib\Advapi32.lib
extrn ExitProcess : proc
extrn RegCreateKeyExA : proc
dseg segment para 'DATA'
rhdl dd 0
sbky db 'Software\Microsoft\Windows\CurrentVersion\Run\startupprogram.exe', 0
dseg ends
cseg segment para 'CODE'
start proc ;Use link.exe to define entry point
sub rsp, 28h
push 0
push qword ptr [rhdl]
push 0
push 0
push 0
xor r9d, r9d
xor r8d, r8d
lea rdx, [sbky]
mov rcx, 8000001h
call RegCreateKeyExA
xor ecx, ecx ; exit code = 0
call ExitProcess
start endp
cseg ends
end
よろしくお願いします。おそらく、Windows の呼び出し規約を無視したのでしょうか?