The Problem is-->

1) Ioreq Structure Size ??? Problem compiling seen IFS.inc File, IOreq struct had some % & $
hence when i excluded some element from that struct by placing';' then there was no problem in compiling BUT i want to use them(excluded element) what to do????????

2) Also want to know the IOreq size that i want so that i can give it's size in (i.e sam Procedure) ....ArgVar Param3,??? PLz see in the code's below

3) how to define a Procedure whose parameter's r filled by system
###############
I am calling a Service(i.e XYZ) which requires only the address of the Procedure(i.e Sam),& when system call's this procedure later it pass some Parameter's to the procedure,hence I need to collect those passed parameter's to the procedure(i.e sam ) by the system, on entrying the Procedure, normally we do define Procedure as follow's

BeginProc Sam

EndProc Sam

But, if i have to pass the paramter's what's the syntax to pass the paramter's i think this can be done with ccall & Argvar ..as follows

BeginProc Sam, CCALL

ArgVar Param1, DWORD
ArgVar Param2, WORD ;--> this can be a Int
ArgVar Param3, ??? ;--> i want to know the Size of IOreq

LocalVar Local1, DWORD
LocalVar Local2, WORD
LocalVar Local3,<size IOreq>

EnterProc
.........
...........
.......
...........
LeaveProc
RETF
EndProc MyProc

***** IMP ****
Also do suggest me that should i save Register's & pop them when i will Return

i Think that this is right way for collecting the parameter's from the system ..ok Plz correct me if i am wrong
##############################
so Plz help! or mail me ur suggestion's ( gj007_in@yahoo.com )
Thank's in Advance....
Posted on 2002-02-12 13:25:42 by pt_sniffer
When i include these line that is declaration of Structure Ioreq
in source code of VxD :-

----Start--- Here-------

VxD_PAGEABLE_DATA_SEG

pir ioreq < > ; variable to Ioreq structure defined in IFS.INC
........
......
VxD_PAGEABLE_DATA_ENDS

------End--Here--------

then i get error as follow's:-

\masm32\include\ddk\INC_WIN98_IFS.INC(271) : error A2008: syntax error : $I
\masm32\include\ddk\INC_WIN98_IFS.INC(273) : error A2008: syntax error : uid_t
\masm32\include\ddk\INC_WIN98_IFS.INC(274) : error A2008: syntax error : sfn_t
\masm32\include\ddk\INC_WIN98_IFS.INC(275) : error A2008: syntax error : pid_t
\masm32\include\ddk\INC_WIN98_IFS.INC(276) : error A2008: syntax error : path_t
\masm32\include\ddk\INC_WIN98_IFS.INC(278) : error A2008: syntax error : ubuffer
_t
\masm32\include\ddk\INC_WIN98_IFS.INC(281) : error A2008: syntax error : rh_t
\masm32\include\ddk\INC_WIN98_IFS.INC(282) : error A2008: syntax error : fh_t
\masm32\include\ddk\INC_WIN98_IFS.INC(283) : error A2008: syntax error : pos_t
\masm32\include\ddk\INC_WIN98_IFS.INC(286) : error A2008: syntax error : $P
\masm32\include\ddk\INC_WIN98_IFS.INC(287) : error A2006: undefined symbol : fsd
work
\masm32\include\ddk\INC_WIN98_IFS.INC(373) : error A2008: syntax error : $P
\masm32\include\ddk\INC_WIN98_IFS.INC(374) : error A2008: syntax error : $P
\masm32\include\ddk\INC_WIN98_IFS.INC(375) : error A2008: syntax error : $P
\masm32\include\ddk\INC_WIN98_IFS.INC(383) : error A2008: syntax error : $P
\masm32\include\ddk\INC_WIN98_IFS.INC(408) : error A2008: syntax error : $P
\masm32\include\ddk\INC_WIN98_IFS.INC(997) : error A2008: syntax error : $P
\masm32\include\ddk\INC_WIN98_IFS.INC(1261) : error A2008: syntax error : $P
\masm32\include\ddk\INC_WIN98_IFS.INC(1262) : error A2008: syntax error : $P

*****

So i peeped in the IFS.INC & got the struct as follow's

######## Struct in IFS.INC File ########

ioreq struc
% ir_length $I ? ; length of user buffer (eCX)
ir_flags db ? ; misc. status flags (AL)
% ir_user uid_t ? ; user ID for this request
% ir_sfn sfn_t ? ; System File Number of file handle
% ir_pid pid_t ? ; process ID of requesting task
% ir_ppath path_t ? ; unicode pathname
ir_aux1 dd ? ; secondary user data buffer (CurDTA)
% ir_data ubuffer_t ? ; ptr to user data buffer (DS:eDX)
ir_options dw ? ; request handling options
ir_error dw ? ; error code (0 if OK)
% ir_rh rh_t ? ; resource handle
% ir_fh fh_t ? ; file (or find) handle
% ir_pos pos_t ? ; file position for request
ir_aux2 dd ? ; misc. extra API parameters
ir_aux3 dd ? ; misc. extra API parameters
% ir_pev $P ? ; ptr to IFSMgr event for async requests
ir_fsd db (size fsdwork) dup (?); ; Provider work space
ioreq ends

########### Struct End's Here ######################

i thought the error is due to the % & $ in the structure element say for eg

% ir_length $I ? ; in the above ioreq structure


So i excluded them by putting ';' in the ioreq structure in IFS.INC as follow's

######## Struct in IFS.INC File ########

ioreq struc
; % ir_length $I ? ; length of user buffer (eCX)
ir_flags db ? ; misc. status flags (AL)
; % ir_user uid_t ? ; user ID for this request
; % ir_sfn sfn_t ? ; System File Number of file handle
; % ir_pid pid_t ? ; process ID of requesting task
; % ir_ppath path_t ? ; unicode pathname
ir_aux1 dd ? ; secondary user data buffer (CurDTA)
; % ir_data ubuffer_t ? ; ptr to user data buffer (DS:eDX)
ir_options dw ? ; request handling options
ir_error dw ? ; error code (0 if OK)
; % ir_rh rh_t ? ; resource handle
; % ir_fh fh_t ? ; file (or find) handle
; % ir_pos pos_t ? ; file position for request
ir_aux2 dd ? ; misc. extra API parameters
ir_aux3 dd ? ; misc. extra API parameters
; % ir_pev $P ? ; ptr to IFSMgr event for async requests
ir_fsd db (size fsdwork) dup (?); ; Provider work space
ioreq ends

########### Struct End's Here ######################

& compiled the program then i got no error. But what if i want to use that elements in the structure what should i do??????
Posted on 2002-02-16 13:00:56 by pt_sniffer