glide2x, h3: add windows build dependency
This commit is contained in:
90
glide2x/h3/minihwc/win9x.asm
Normal file
90
glide2x/h3/minihwc/win9x.asm
Normal file
@@ -0,0 +1,90 @@
|
||||
; this is here so that the win9x parts of minihwc.c &&
|
||||
; win_mode.c can compile without the win9x ddk headers.
|
||||
|
||||
extern __imp__CreateFileA@28
|
||||
extern __imp__CloseHandle@4
|
||||
extern __imp__DeviceIoControl@32
|
||||
|
||||
global _CM_Get_DevNode_Key
|
||||
|
||||
section .text
|
||||
align 16
|
||||
;CM_Get_DevNode_Key(DWORD, PCHAR, PVOID, ULONG, ULONG)
|
||||
_CM_Get_DevNode_Key:
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
;struct _IOCTLPKT { DWORD stack, servicenum; } pkt;
|
||||
;DWORD stack;
|
||||
sub esp,12
|
||||
mov dword [ebp-4],ebp
|
||||
mov eax,dword [ebp-4]
|
||||
mov dword [ebp-8],0x8000003d ; servicenum
|
||||
add eax,8
|
||||
mov dword [ebp-12],eax
|
||||
lea eax,[ebp-12]
|
||||
push eax
|
||||
call _CM_IoctlHandler@4
|
||||
mov esp,ebp
|
||||
pop ebp
|
||||
ret
|
||||
align 16
|
||||
;DWORD __stdcall CM_IOCTLHandler(struct _IOCTLPKT *)
|
||||
_CM_IoctlHandler@4:
|
||||
;HANDLE hCONFIGMG; DWORD rc,rcsize;
|
||||
sub esp,8
|
||||
push esi
|
||||
push 0
|
||||
push 0
|
||||
push 3
|
||||
push 0
|
||||
push 3
|
||||
push 0xc0000000 ; GENERIC_READ|GENERIC_WRITE
|
||||
push LC0
|
||||
; rc= ERR, rcsize = 0;
|
||||
mov dword [esp+0x20],19 ; CONFIGMG error
|
||||
mov dword [esp+0x24],0
|
||||
call [__imp__CreateFileA@28]
|
||||
mov esi,eax
|
||||
cmp esi,0xffffffff
|
||||
jne .L0
|
||||
mov eax,19
|
||||
pop esi
|
||||
add esp,8
|
||||
ret 4
|
||||
.L0:
|
||||
lea eax,[esp+8]
|
||||
push 0
|
||||
push eax
|
||||
mov eax,dword [esp+24]
|
||||
lea ecx,[esp+12]
|
||||
push 4
|
||||
mov edx,dword [eax+4]
|
||||
push ecx
|
||||
push 4
|
||||
push eax
|
||||
push edx
|
||||
push esi
|
||||
;DeviceIoControl(hCONFIGMG,
|
||||
; pkt->servicenum, &pkt->stack, sizeof(pkt->stack),
|
||||
; &rc, sizeof(rc), &rcsize,NULL);
|
||||
call [__imp__DeviceIoControl@32]
|
||||
test eax,eax
|
||||
jne .L1
|
||||
mov dword [esp+0x4],19
|
||||
.L1:
|
||||
push esi
|
||||
call [__imp__CloseHandle@4]
|
||||
mov eax,dword [esp+0x8]
|
||||
cmp eax,4
|
||||
mov eax,19
|
||||
jne .L2
|
||||
mov eax,dword [esp+4]
|
||||
.L2:
|
||||
pop esi
|
||||
add esp,8
|
||||
ret 4
|
||||
align 16
|
||||
|
||||
section .rdata
|
||||
LC0: db `\\\\.\\CONFIGMG\0`
|
||||
align 16,db 0
|
||||
Reference in New Issue
Block a user