Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
c5a35d89
Commit
c5a35d89
authored
Jul 25, 2017
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
krnl386: Explicitly fetch the service argument in VxDCall.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
5b71091b
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
36 additions
and
37 deletions
+36
-37
kernel32.spec
dlls/kernel32/kernel32.spec
+9
-9
kernel16_private.h
dlls/krnl386.exe16/kernel16_private.h
+15
-0
krnl386.exe16.spec
dlls/krnl386.exe16/krnl386.exe16.spec
+9
-9
thunk.c
dlls/krnl386.exe16/thunk.c
+0
-15
vxd.c
dlls/krnl386.exe16/vxd.c
+3
-4
No files found.
dlls/kernel32/kernel32.spec
View file @
c5a35d89
...
...
@@ -8,15 +8,15 @@
# - code generated by the MS Thunk Compiler
# - symbols exported by the Oct 94 beta version of kernel32.dll
1 stdcall -noname -i386 -private -register VxDCall0(
long
) krnl386.exe16.VxDCall0
2 stdcall -noname -i386 -private -register VxDCall1(
long
) krnl386.exe16.VxDCall1
3 stdcall -noname -i386 -private -register VxDCall2(
long
) krnl386.exe16.VxDCall2
4 stdcall -noname -i386 -private -register VxDCall3(
long
) krnl386.exe16.VxDCall3
5 stdcall -noname -i386 -private -register VxDCall4(
long
) krnl386.exe16.VxDCall4
6 stdcall -noname -i386 -private -register VxDCall5(
long
) krnl386.exe16.VxDCall5
7 stdcall -noname -i386 -private -register VxDCall6(
long
) krnl386.exe16.VxDCall6
8 stdcall -noname -i386 -private -register VxDCall7(
long
) krnl386.exe16.VxDCall7
9 stdcall -noname -i386 -private -register VxDCall8(
long
) krnl386.exe16.VxDCall8
1 stdcall -noname -i386 -private -register VxDCall0() krnl386.exe16.VxDCall0
2 stdcall -noname -i386 -private -register VxDCall1() krnl386.exe16.VxDCall1
3 stdcall -noname -i386 -private -register VxDCall2() krnl386.exe16.VxDCall2
4 stdcall -noname -i386 -private -register VxDCall3() krnl386.exe16.VxDCall3
5 stdcall -noname -i386 -private -register VxDCall4() krnl386.exe16.VxDCall4
6 stdcall -noname -i386 -private -register VxDCall5() krnl386.exe16.VxDCall5
7 stdcall -noname -i386 -private -register VxDCall6() krnl386.exe16.VxDCall6
8 stdcall -noname -i386 -private -register VxDCall7() krnl386.exe16.VxDCall7
9 stdcall -noname -i386 -private -register VxDCall8() krnl386.exe16.VxDCall8
10 stdcall -noname -i386 -private k32CharToOemA(str ptr) krnl386.exe16.k32CharToOemA
11 stdcall -noname -i386 -private k32CharToOemBuffA(str ptr long) krnl386.exe16.k32CharToOemBuffA
12 stdcall -noname -i386 -private k32OemToCharA(ptr ptr) krnl386.exe16.k32OemToCharA
...
...
dlls/krnl386.exe16/kernel16_private.h
View file @
c5a35d89
...
...
@@ -283,6 +283,21 @@ static inline struct kernel_thread_data *kernel_get_thread_data(void)
return
(
struct
kernel_thread_data
*
)
NtCurrentTeb
()
->
SystemReserved1
;
}
/* Push a DWORD on the 32-bit stack */
static
inline
void
stack32_push
(
CONTEXT
*
context
,
DWORD
val
)
{
context
->
Esp
-=
sizeof
(
DWORD
);
*
(
DWORD
*
)
context
->
Esp
=
val
;
}
/* Pop a DWORD from the 32-bit stack */
static
inline
DWORD
stack32_pop
(
CONTEXT
*
context
)
{
DWORD
ret
=
*
(
DWORD
*
)
context
->
Esp
;
context
->
Esp
+=
sizeof
(
DWORD
);
return
ret
;
}
#define DEFINE_REGS_ENTRYPOINT( name, args ) \
__ASM_GLOBAL_FUNC( name, \
".byte 0x68\n\t"
/* pushl $__regs_func */
\
...
...
dlls/krnl386.exe16/krnl386.exe16.spec
View file @
c5a35d89
...
...
@@ -549,15 +549,15 @@
################################################################
# 32-bit version of the various 16-bit functions exported by kernel32
#
@ stdcall -arch=win32 -register VxDCall0(
long
) VxDCall
@ stdcall -arch=win32 -register VxDCall1(
long
) VxDCall
@ stdcall -arch=win32 -register VxDCall2(
long
) VxDCall
@ stdcall -arch=win32 -register VxDCall3(
long
) VxDCall
@ stdcall -arch=win32 -register VxDCall4(
long
) VxDCall
@ stdcall -arch=win32 -register VxDCall5(
long
) VxDCall
@ stdcall -arch=win32 -register VxDCall6(
long
) VxDCall
@ stdcall -arch=win32 -register VxDCall7(
long
) VxDCall
@ stdcall -arch=win32 -register VxDCall8(
long
) VxDCall
@ stdcall -arch=win32 -register VxDCall0() VxDCall
@ stdcall -arch=win32 -register VxDCall1() VxDCall
@ stdcall -arch=win32 -register VxDCall2() VxDCall
@ stdcall -arch=win32 -register VxDCall3() VxDCall
@ stdcall -arch=win32 -register VxDCall4() VxDCall
@ stdcall -arch=win32 -register VxDCall5() VxDCall
@ stdcall -arch=win32 -register VxDCall6() VxDCall
@ stdcall -arch=win32 -register VxDCall7() VxDCall
@ stdcall -arch=win32 -register VxDCall8() VxDCall
@ stdcall -arch=win32 k32CharToOemA(str ptr)
@ stdcall -arch=win32 k32CharToOemBuffA(str ptr long)
@ stdcall -arch=win32 k32OemToCharA(ptr ptr)
...
...
dlls/krnl386.exe16/thunk.c
View file @
c5a35d89
...
...
@@ -153,21 +153,6 @@ extern void FT_PrologPrime(void);
extern
void
QT_Thunk
(
void
);
extern
void
QT_ThunkPrime
(
void
);
/* Push a DWORD on the 32-bit stack */
static
inline
void
stack32_push
(
CONTEXT
*
context
,
DWORD
val
)
{
context
->
Esp
-=
sizeof
(
DWORD
);
*
(
DWORD
*
)
context
->
Esp
=
val
;
}
/* Pop a DWORD from the 32-bit stack */
static
inline
DWORD
stack32_pop
(
CONTEXT
*
context
)
{
DWORD
ret
=
*
(
DWORD
*
)
context
->
Esp
;
context
->
Esp
+=
sizeof
(
DWORD
);
return
ret
;
}
/***********************************************************************
* *
* Win95 internal thunks *
...
...
dlls/krnl386.exe16/vxd.c
View file @
c5a35d89
...
...
@@ -286,10 +286,11 @@ done:
* VxDCall7 (KERNEL32.8)
* VxDCall8 (KERNEL32.9)
*/
void
WINAPI
DECLSPEC_HIDDEN
__regs_VxDCall
(
DWORD
service
,
CONTEXT
*
context
)
void
WINAPI
DECLSPEC_HIDDEN
__regs_VxDCall
(
CONTEXT
*
context
)
{
unsigned
int
i
;
VxDCallProc
proc
=
NULL
;
DWORD
service
=
stack32_pop
(
context
);
RtlEnterCriticalSection
(
&
vxd_section
);
for
(
i
=
0
;
i
<
NB_VXD_SERVICES
;
i
++
)
...
...
@@ -312,9 +313,7 @@ void WINAPI DECLSPEC_HIDDEN __regs_VxDCall( DWORD service, CONTEXT *context )
context
->
Eax
=
0xffffffff
;
/* FIXME */
}
}
#ifdef DEFINE_REGS_ENTRYPOINT
DEFINE_REGS_ENTRYPOINT
(
VxDCall
,
1
)
#endif
DEFINE_REGS_ENTRYPOINT
(
VxDCall
,
0
)
/***********************************************************************
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment