movzx edi, word ptr [Pce.cbResource]
add edi, offset buf1
И еще я не понял - ты перенес имя ресурса в buf2, преобразовав его в OEM,
а потом buf2 сразу же обнулил... наверное, перед обнулением был какой-то
код, который ты сюда не кинул ?
Обнулять такие большие буферы побайтно - не жалко тебе процессор гонять ? :)
Через rep stosd легче и быстрее, да и вообще их обнулять не нужно :)
Кто знает, подскажите, pls, где тут у меня ошибка (только не в ДНК! -))
Привожу кусок кода (немного урезанный). Ошибка, скорее всего, в функции обратного вызова.
структура:
PASSWORD_CACHE_ENTRY STRUCT
cbEntry WORD ? ; размер структуры
cbResource WORD ? ; размер имени
cbPassword WORD ? ; размер пароля
iEntry BYTE ? ; вход
nType BYTE ? ; тип входа -?
abResource BYTE ? ; начало имени
PASSWORD_CACHE_ENTRY ENDS
WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
PceCallBack PROTO :PASSWORD_CACHE_ENTRY,:DWORD
Lib db "mpr.dll",0
Proced db "WNetEnumCachedPasswords",0
movzx edi, word ptr [Pce.cbResource]
add edi, offset buf1
И еще я не понял - ты перенес имя ресурса в buf2, преобразовав его в OEM,
а потом buf2 сразу же обнулил... наверное, перед обнулением был какой-то
код, который ты сюда не кинул ?
Обнулять такие большие буферы побайтно - не жалко тебе процессор гонять ? :)
Через rep stosd легче и быстрее, да и вообще их обнулять не нужно :)
> > lea edi,buf1 > > add edi,dword ptr [Pce.cbResource] > ... > > lea edi,dword ptr [Pce.abResource] > > add edi,dword ptr [Pce.cbResource] > > > lea edi,buf1 > > add edi,dword ptr [Pce.cbPassword] > > > cbResource и cbPassword - это WORD > Надо так: > > movzx edi, word ptr [Pce.cbResource] > add edi, offset buf1
Попробуем...
> И еще я не понял - ты перенес имя ресурса в buf2, > преобразовав его в OEM, > а потом buf2 сразу же обнулил... наверное, перед обнулением > был какой-то > код, который ты сюда не кинул ?
Ну да, это чтоб поменьше было-), а так я пока через SoftIce дебагрю
> Обнулять такие большие буферы побайтно - не жалко тебе > процессор гонять ? :) > Через rep stosd легче и быстрее, да и вообще их обнулять не > нужно :)
Это верно. Просто мне так привычней - пора отвыкать от вредных привычек-). Хотя все эти rep с цепочечными операциями работают медленнее, хотя код меньше