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....
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....
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??????
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??????