hi!Everyone,
Who can tell me How to exchange data between static VxD and application?
Thanks a lot!
Anbo -Mega Inc.
hi!Everyone,
Who can tell me How to exchange data between static VxD and application?
Thanks a lot!
Anbo -Mega Inc.
Hello
hi!Everyone,
Who can tell me How to exchange data between static VxD and application?
You need only a normal Win32 DeviceIoControl Handler in your VXD. When
you are using NUMEGA VToolsD this is very simple.
When your a using the DDK way you need this …
a entry in your VXD dispatch table like this
…
Control_Dispatch W32_DEVICEIOCONTROL, hwioW32DeviceIOControl, sCall,
…
And your handler in C code like this
DWORD _stdcall hwioW32DeviceIOControl(
DWORD dwService,
DWORD dwDDB,
DWORD hDevice,
PDIOCPARAMETERS ioParam
);
mathias
Do i use creatfile to get a HANDLE?
Can you provide me a source code of ASM sample?
Thanks!
anbo
----- Original Message -----
From: Mathias Ellinger
To: NT Developers Interest List
Sent: Friday, October 20, 2000 6:09 PM
Subject: [ntdev] Re: How to exchange data between static VxD and application!
> Hello
>
> >hi!Everyone,
> > Who can tell me How to exchange data between static VxD and application?
>
> You need only a normal Win32 DeviceIoControl Handler in your VXD. When
> you are using NUMEGA VToolsD this is very simple.
>
> When your a using the DDK way you need this …
>
> a entry in your VXD dispatch table like this
> …
> Control_Dispatch W32_DEVICEIOCONTROL, hwioW32DeviceIOControl, sCall,
> …
>
> And your handler in C code like this
>
> DWORD _stdcall hwioW32DeviceIOControl(
> DWORD dwService,
> DWORD dwDDB,
> DWORD hDevice,
> PDIOCPARAMETERS ioParam
> );
>
> mathias
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@edu.21cn.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
hello,
Can you provide me a source code of ASM sample?
IOTEST_DEVICE_ID EQU 0999H
DDK_VERSION EQU 400h
Create_IOTEST_Service_Table EQU 1
.386p
.xlist
include vmm.inc
.list
BEGIN_SERVICE_TABLE IOTEST
IOTEST_Service ioTestGetVersion, local
END_SERVICE_TABLE IOTEST
;============================================================================
; V I R T U A L D E V I C E D E C L A R A T I O N
;============================================================================
DECLARE_VIRTUAL_DEVICE IOTEST, 1, 0, IOTEST_Control, IOTEST_DEVICE_ID, UNDEFINED_INIT_ORDER,0,0,0
VxD_LOCKED_CODE_SEG
;===========================================================================
;
; PROCEDURE: ioControl
;
; DESCRIPTION:
; Device control procedure for the ioTest VxD
;
; ENTRY:
; EAX = Control call ID
;
; EXIT:
; If carry clear then
; Successful
; else
; Control call failed
;
; USES:
; EAX, EBX, ECX, EDX, ESI, EDI, Flags
;
;============================================================================
BEGINPROC IOTEST_Control
OK, here you need the static handler
Control_Dispatch SYS_DYNAMIC_DEVICE_INIT, ioTestDynamicInit, sCall
Control_Dispatch SYS_DYNAMIC_DEVICE_EXIT, ioTestDynamicExit, sCall
Control_Dispatch INIT_COMPLETE, ioTestInitComplete, sCall
Control_Dispatch W32_DEVICEIOCONTROL, ioTestW32DeviceIOControl, sCall,
clc
ret
ENDPROC IOTEST_Control
BEGINPROC ioTestGetVersion
mov eax,100
clc
ret
ENDPROC ioTestGetVersion
VxD_LOCKED_CODE_ENDS
END
mathias