Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
3eb3569b
Commit
3eb3569b
authored
May 24, 2001
by
Andreas Mohr
Committed by
Alexandre Julliard
May 24, 2001
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- add handler for VCD VxD ("virtual comm device" ?)
- SetLastError( ERROR_INVALID_FUNCTION ); for unimplemented functions - spelling fixes
parent
267d630b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
47 additions
and
9 deletions
+47
-9
device.c
win32/device.c
+47
-9
No files found.
win32/device.c
View file @
3eb3569b
...
...
@@ -57,6 +57,12 @@ static BOOL DeviceIo_IFSMgr(DWORD dwIoControlCode,
LPDWORD
lpcbBytesReturned
,
LPOVERLAPPED
lpOverlapped
);
static
BOOL
DeviceIo_VCD
(
DWORD
dwIoControlCode
,
LPVOID
lpvInBuffer
,
DWORD
cbInBuffer
,
LPVOID
lpvOutBuffer
,
DWORD
cbOutBuffer
,
LPDWORD
lpcbBytesReturned
,
LPOVERLAPPED
lpOverlapped
);
static
DWORD
VxDCall_VWin32
(
DWORD
service
,
CONTEXT86
*
context
);
static
BOOL
DeviceIo_VWin32
(
DWORD
dwIoControlCode
,
...
...
@@ -105,7 +111,7 @@ static const struct VxDInfo VxDList[] =
{
"VSD"
,
0x000B
,
NULL
,
NULL
},
{
"VMD"
,
0x000C
,
NULL
,
NULL
},
{
"VKD"
,
0x000D
,
NULL
,
NULL
},
{
"VCD"
,
0x000E
,
NULL
,
NULL
},
{
"VCD"
,
0x000E
,
NULL
,
DeviceIo_VCD
},
{
"VPD"
,
0x000F
,
NULL
,
NULL
},
{
"BLOCKDEV"
,
0x0010
,
NULL
,
NULL
},
{
"VMCPD"
,
0x0011
,
NULL
,
NULL
},
...
...
@@ -295,7 +301,7 @@ LPCSTR VMM_Service_Name[N_VMM_SERVICE] =
/* PageCommit flags */
#define PC_FIXED 0x00000008
/* pages are permanently locked */
#define PC_LOCKED 0x00000080
/* pages are made present and locked*/
#define PC_LOCKED 0x00000080
/* pages are made present and locked
*/
#define PC_LOCKEDIFDP 0x00000100
/* pages are locked if swap via DOS */
#define PC_WRITEABLE 0x00020000
/* make the pages writeable */
#define PC_USER 0x00040000
/* make the pages ring 3 accessible */
...
...
@@ -352,7 +358,7 @@ static const struct VxDInfo *DEVICE_GetInfo( HANDLE handle )
* used for VxD communication.
*
* A return value of FALSE indicates that something has gone wrong which
* GetLastError can dec
y
pher.
* GetLastError can dec
i
pher.
*/
BOOL
WINAPI
DeviceIoControl
(
HANDLE
hDevice
,
DWORD
dwIoControlCode
,
LPVOID
lpvInBuffer
,
DWORD
cbInBuffer
,
...
...
@@ -384,9 +390,12 @@ BOOL WINAPI DeviceIoControl(HANDLE hDevice, DWORD dwIoControlCode,
}
else
{
/* FIXME: Set appropriate error */
FIXME
(
"Unimplemented control %ld for VxD device %s
\n
"
,
dwIoControlCode
,
info
->
name
?
info
->
name
:
"???"
);
/* FIXME: this is for invalid calls on W98SE,
* but maybe we should use ERROR_CALL_NOT_IMPLEMENTED
* instead ? */
SetLastError
(
ERROR_INVALID_FUNCTION
);
}
}
else
...
...
@@ -685,8 +694,8 @@ static DWORD VxDCall_VMM( DWORD service, CONTEXT86 *context )
ERR
(
"Can't reserve ring 1 memory
\n
"
);
return
-
1
;
}
/* FIXME: This has to be handled separately
, when we hav
e separate
address-spaces */
/* FIXME: This has to be handled separately
for th
e separate
address-spaces
we now have
*/
if
(
page
==
PR_PRIVATE
||
page
==
PR_SHARED
)
page
=
0
;
/* FIXME: Handle flags in some way */
address
=
(
LPVOID
)(
page
*
psize
);
...
...
@@ -849,11 +858,11 @@ static DWORD VxDCall_VMM( DWORD service, CONTEXT86 *context )
/***********************************************************************
* DeviceIo_IFSMgr
* NOTES
* The
ioctls is
used by 'MSNET32.DLL'.
* The
se ioctls are
used by 'MSNET32.DLL'.
*
* I have been unable to uncover any documentation about the ioctls so
* the implementation of the cases IFS_IOCTL_21 and IFS_IOCTL_2F are
* based on
a re
sonable guesses on information found in the Windows 95 DDK.
* based on
rea
sonable guesses on information found in the Windows 95 DDK.
*
*/
...
...
@@ -983,7 +992,7 @@ static BOOL DeviceIo_IFSMgr(DWORD dwIoControlCode, LPVOID lpvInBuffer, DWORD cbI
* VxDCall_VWin32
*
* Service numbers taken from page 448 of Pietrek's "Windows 95 System
* Progr
ma
ming Secrets". Parameters from experimentation on real Win98.
* Progr
am
ming Secrets". Parameters from experimentation on real Win98.
*
*/
...
...
@@ -1044,6 +1053,35 @@ static DWORD VxDCall_VWin32( DWORD service, CONTEXT86 *context )
}
/***********************************************************************
* DeviceIo_VCD
*/
static
BOOL
DeviceIo_VCD
(
DWORD
dwIoControlCode
,
LPVOID
lpvInBuffer
,
DWORD
cbInBuffer
,
LPVOID
lpvOutBuffer
,
DWORD
cbOutBuffer
,
LPDWORD
lpcbBytesReturned
,
LPOVERLAPPED
lpOverlapped
)
{
BOOL
retv
=
TRUE
;
switch
(
dwIoControlCode
)
{
case
IOCTL_SERIAL_LSRMST_INSERT
:
{
FIXME
(
"IOCTL_SERIAL_LSRMST_INSERT NIY !
\n
"
);
retv
=
FALSE
;
}
break
;
default:
FIXME
(
"Unknown Control %ld
\n
"
,
dwIoControlCode
);
retv
=
FALSE
;
break
;
}
return
retv
;
}
/***********************************************************************
* DeviceIo_VWin32
...
...
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