вызов функции SHGetKnownFolderPath приводит какой то ошибке

я в отладчике запускал. выполнение останавливается на обычной инструкции и дальше не выполняется. это в функции SHGetKnownFolderPath. Я сделал так.

struc GUID def
{
        match d1-d2-d3-d4-d5, def
        \{
                .Data1 dd 0x\#d1
                .Data2 dw 0x\#d2
                .Data3 dw 0x\#d3
                .Data4 db 0x\#d4 shr 8, 0x\#d4 and 0xff
                .Data5 db 0x\#d5 shr 40, 0x\#d5 shr 32 and 0xff, 0x\#d5 shr 24 and 0xff, 0x\#d5 shr 16 and 0xff, 0x\#d5 shr 8 and 0xff, 0x\#d5 and 0xff
        \}
}       

section '.text' code readable executable

proc check_config_file
     push ebx esi edi
     mov eax, profile_p
     mov ebx, profile_w
     mov [eax], ebx
     invoke SHGetKnownFolderPath, [FOLDERID_Profile], 0, NULL, eax
     mov eax, [profile_p]

;     invoke GetUserName, login_system, size_login_system
;     invoke snprintf, path_config_file, 512, string_param, login_system

     pop edi esi ebx
     ret
endp    

section '.bss' readable writable

profile_w rw 0
profile_p rd 1 

section '.data' data readable writable
;data4 db 0x9a, 0xfe, 0xea, 0x33, 0x17, 0xb6, 0x71, 0x73
;FOLDERID_Profile GUID 0x5e6c858f, 0x0e22, 0x4760, 0x9a, 0xfe, 0xea, 0x33, 0x17, 0xb6, 0x71, 0x73
FOLDERID_Profile GUID 5d6c858f-0e22-4760-9afe-ea3317b67173

я вроде правильно сделал указатель на указатель, ведь последний параметр в этой функции требует именно ссылки на указатель. но требуется ссылка без выделенной памяти. как правильно надо делать?


Ответы (0 шт):