fix load driver

TODO: add function for unload driver

git-svn-id: svn://kolibrios.org@9406 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Doczom 2021-12-07 02:49:57 +00:00
parent f3dca4689e
commit 36933473bc
2 changed files with 9 additions and 2 deletions

View File

@ -1261,18 +1261,21 @@ proc load_pe_driver stdcall, file:dword, cmdline:dword
jz .fail
mov esi, eax
push ebx ; base addres driver
push [cmdline]
push DRV_ENTRY
call eax
pop ecx
pop ecx
pop ebx
test eax, eax
jz .fail
jz .fail_init
mov [eax+SRV.entry], esi
pop esi
ret
.fail_init:
stdcall kernel_free, ebx ;clear memory driver
.fail:
xor eax, eax
pop esi

View File

@ -11,6 +11,9 @@ include 'export.inc'
align 4
; This function load file driver and output
; eax = address function START in driver
; ebx = address for kernel_free
proc load_PE stdcall, file_name:dword
locals
image dd ?
@ -58,6 +61,7 @@ proc load_PE stdcall, file_name:dword
.cleanup:
stdcall kernel_free, [image]
mov eax, [entry]
mov ebx, [base]
ret
.fail:
xor eax, eax