Problems with WDM to VxD calls...

Hi All !

I have two drivers: WDM (the main module) and VxD (some helper functions).
The WDM need call the VxD’s functions directly.

I’ve learned from the list archive that there are several approaches to implement that.

I use _PELDR_AddExportTable to export functions from VxD to my WDM
and build an export library to link with the WDM.

All compiles OK, my VxD loads as static OK, but the WDM fails to start.
WDMCheck.exe says it can’t find my exported VxD functions…

Here is my code fragments:

  1. In my VxD:

#pragma VxD_LOCKED_CODE_SEG

static char* exp_names[NUM_WDM_EXPORT_FUNC] = {
“MyFunc1”,
“MyFunc2”
};
static WORD exp_ordinals[NUM_WDM_EXPORT_FUNC] = {
11,
12
};
static PFN exp_addresses[NUM_WDM_EXPORT_FUNC] = {
(PFN) MyFunc1,
(PFN) MyFunc1
};

HPEEXPORTTABLE hExportTable = 0;

// in OnLoad VxD function

if( _PELDR_AddExportTable(
&hExportTable, “MyDrv.vxd”, nfuncs, nfuncs, 0,
(PVOID*) exp_names, exp_ordinals, exp_addresses, NULL
) != PELDR_ERR_NOERROR )
{
// Error
}

  1. My stub source file to build an export library:

#include <wdm.h>

ULONG __stdcall
MyFunc1( ULONG Param )
{
return 0;
}

ULONG__stdcall
MyFunc2( ULONG Param1, ULONG Param2 )
{
return 0;
}
-------------------

3) DEF-file to make the export library:
----------------
LIBRARY MyDrv.VXD
EXPORTS
MyFunc1
MyFunc2
----------------

4) My WDM is linked against the export library and calls the exported functions:
-------------------
// imported definitions
ULONG _declspec( dllimport )
MyFunc1(ULONG Param );

ULONG _declspec( dllimport )
MyFunc2(ULONG Param1, ULONG Param2 );


// call an imported func
value = MyFunc1( 123 );
-------------------

What is wrong with my code ?

Any suggestions and help are welcome.
Thanks in advance.

Best regards,
Valeriy Glushkov</wdm.h>

Maybe try to port the helper functions from VxD to another WDM binary
or to a .LIB file?
What are these helper functions?

Max

----- Original Message -----
From: “Valeriy Glushkov”
To: “NT Developers Interest List”
Sent: Monday, May 05, 2003 7:36 PM
Subject: [ntdev] Problems with WDM to VxD calls…

> Hi All !
>
> I have two drivers: WDM (the main module) and VxD (some helper
functions).
> The WDM need call the VxD’s functions directly.
>
> I’ve learned from the list archive that there are several approaches
to implement that.
>
> I use _PELDR_AddExportTable to export functions from VxD to my WDM
> and build an export library to link with the WDM.
>
> All compiles OK, my VxD loads as static OK, but the WDM fails to
start.
> WDMCheck.exe says it can’t find my exported VxD functions…
>
> Here is my code fragments:
>
> 1) In my VxD:
> ------------------
> #pragma VxD_LOCKED_CODE_SEG
>
> static char* exp_names[NUM_WDM_EXPORT_FUNC] = {
> “MyFunc1”,
> “MyFunc2”
> };
> static WORD exp_ordinals[NUM_WDM_EXPORT_FUNC] = {
> 11,
> 12
> };
> static PFN exp_addresses[NUM_WDM_EXPORT_FUNC] = {
> (PFN) MyFunc1,
> (PFN) MyFunc1
> };
>
> HPEEXPORTTABLE hExportTable = 0;
> …
>
> // in OnLoad VxD function
>
> if( _PELDR_AddExportTable(
> &hExportTable, “MyDrv.vxd”, nfuncs, nfuncs, 0,
> (PVOID*) exp_names, exp_ordinals, exp_addresses, NULL
> ) != PELDR_ERR_NOERROR )
> {
> // Error
> }
> -----------------------
>
> 2) My stub source file to build an export library:
> -----------------------
> #include <wdm.h>
>
> ULONG __stdcall
> MyFunc1( ULONG Param )
> {
> return 0;
> }
>
> ULONG__stdcall
> MyFunc2( ULONG Param1, ULONG Param2 )
> {
> return 0;
> }
> -------------------
>
> 3) DEF-file to make the export library:
> ----------------
> LIBRARY MyDrv.VXD
> EXPORTS
> MyFunc1
> MyFunc2
> ----------------
>
> 4) My WDM is linked against the export library and calls the
exported functions:
> -------------------
> // imported definitions
> ULONG _declspec( dllimport )
> MyFunc1(ULONG Param );
>
> ULONG _declspec( dllimport )
> MyFunc2(ULONG Param1, ULONG Param2 );
> …
>
> // call an imported func
> value = MyFunc1( 123 );
> -------------------
>
> What is wrong with my code ?
>
> Any suggestions and help are welcome.
> Thanks in advance.
>
> Best regards,
> Valeriy Glushkov
>
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to
xxxxx@lists.osr.com</wdm.h>

Max,

The VxD is already implemented by other guy, I am trying to use it in my project.

The VxD in its OnLoad function finds the IOS service entry point and then
implements some R0 file operations on behalf of its callers (open, close, read,write).

So is it possible for such a VxD to be ported into WDM ??
Ever if yes, it should be a good bit of work to port it ?

But I need a simple solution.

Best Regards,
Valeriy Glushkov

----- Original Message -----
From: “Maxim S. Shatskih”
To: “NT Developers Interest List”
Sent: Monday, May 05, 2003 7:27 PM
Subject: [ntdev] Re: Problems with WDM to VxD calls…

> Maybe try to port the helper functions from VxD to another WDM binary
> or to a .LIB file?
> What are these helper functions?
>
> Max
>
> ----- Original Message -----
> From: “Valeriy Glushkov”
> To: “NT Developers Interest List”
> Sent: Monday, May 05, 2003 7:36 PM
> Subject: [ntdev] Problems with WDM to VxD calls…
>
>
> > Hi All !
> >
> > I have two drivers: WDM (the main module) and VxD (some helper
> functions).
> > The WDM need call the VxD’s functions directly.
> >
> > I’ve learned from the list archive that there are several approaches
> to implement that.
> >
> > I use _PELDR_AddExportTable to export functions from VxD to my WDM
> > and build an export library to link with the WDM.
> >
> > All compiles OK, my VxD loads as static OK, but the WDM fails to
> start.
> > WDMCheck.exe says it can’t find my exported VxD functions…
> >
> > Here is my code fragments:
> >
> > 1) In my VxD:
> > ------------------
> > #pragma VxD_LOCKED_CODE_SEG
> >
> > static char* exp_names[NUM_WDM_EXPORT_FUNC] = {
> > “MyFunc1”,
> > “MyFunc2”
> > };
> > static WORD exp_ordinals[NUM_WDM_EXPORT_FUNC] = {
> > 11,
> > 12
> > };
> > static PFN exp_addresses[NUM_WDM_EXPORT_FUNC] = {
> > (PFN) MyFunc1,
> > (PFN) MyFunc1
> > };
> >
> > HPEEXPORTTABLE hExportTable = 0;
> > …
> >
> > // in OnLoad VxD function
> >
> > if( _PELDR_AddExportTable(
> > &hExportTable, “MyDrv.vxd”, nfuncs, nfuncs, 0,
> > (PVOID*) exp_names, exp_ordinals, exp_addresses, NULL
> > ) != PELDR_ERR_NOERROR )
> > {
> > // Error
> > }
> > -----------------------
> >
> > 2) My stub source file to build an export library:
> > -----------------------
> > #include <wdm.h>
> >
> > ULONG __stdcall
> > MyFunc1( ULONG Param )
> > {
> > return 0;
> > }
> >
> > ULONG__stdcall
> > MyFunc2( ULONG Param1, ULONG Param2 )
> > {
> > return 0;
> > }
> > -------------------
> >
> > 3) DEF-file to make the export library:
> > ----------------
> > LIBRARY MyDrv.VXD
> > EXPORTS
> > MyFunc1
> > MyFunc2
> > ----------------
> >
> > 4) My WDM is linked against the export library and calls the
> exported functions:
> > -------------------
> > // imported definitions
> > ULONG _declspec( dllimport )
> > MyFunc1(ULONG Param );
> >
> > ULONG _declspec( dllimport )
> > MyFunc2(ULONG Param1, ULONG Param2 );
> > …
> >
> > // call an imported func
> > value = MyFunc1( 123 );
> > -------------------
> >
> > What is wrong with my code ?
> >
> > Any suggestions and help are welcome.
> > Thanks in advance.
> >
> > Best regards,
> > Valeriy Glushkov
> >
> >
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> > To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
>
>
> —
> You are currently subscribed to ntdev as: gvvua@ua.fm
> To unsubscribe send a blank email to xxxxx@lists.osr.com</wdm.h>

No, blockwise disk IO on obsolete “smaller” Windows cannot be WDM.

Max

----- Original Message -----
From: “Valeriy Glushkov”
To: “NT Developers Interest List”
Sent: Tuesday, May 06, 2003 1:45 AM
Subject: [ntdev] Re: Problems with WDM to VxD calls…

> Max,
>
> The VxD is already implemented by other guy, I am trying to use it
in my project.
>
> The VxD in its OnLoad function finds the IOS service entry point and
then
> implements some R0 file operations on behalf of its callers (open,
close, read,write).
>
> So is it possible for such a VxD to be ported into WDM ??
> Ever if yes, it should be a good bit of work to port it ?
>
> But I need a simple solution.
>
> Best Regards,
> Valeriy Glushkov
>
> ----- Original Message -----
> From: “Maxim S. Shatskih”
> To: “NT Developers Interest List”
> Sent: Monday, May 05, 2003 7:27 PM
> Subject: [ntdev] Re: Problems with WDM to VxD calls…
>
>
> > Maybe try to port the helper functions from VxD to another WDM
binary
> > or to a .LIB file?
> > What are these helper functions?
> >
> > Max
> >
> > ----- Original Message -----
> > From: “Valeriy Glushkov”
> > To: “NT Developers Interest List”
> > Sent: Monday, May 05, 2003 7:36 PM
> > Subject: [ntdev] Problems with WDM to VxD calls…
> >
> >
> > > Hi All !
> > >
> > > I have two drivers: WDM (the main module) and VxD (some helper
> > functions).
> > > The WDM need call the VxD’s functions directly.
> > >
> > > I’ve learned from the list archive that there are several
approaches
> > to implement that.
> > >
> > > I use _PELDR_AddExportTable to export functions from VxD to my
WDM
> > > and build an export library to link with the WDM.
> > >
> > > All compiles OK, my VxD loads as static OK, but the WDM fails to
> > start.
> > > WDMCheck.exe says it can’t find my exported VxD functions…
> > >
> > > Here is my code fragments:
> > >
> > > 1) In my VxD:
> > > ------------------
> > > #pragma VxD_LOCKED_CODE_SEG
> > >
> > > static char* exp_names[NUM_WDM_EXPORT_FUNC] = {
> > > “MyFunc1”,
> > > “MyFunc2”
> > > };
> > > static WORD exp_ordinals[NUM_WDM_EXPORT_FUNC] = {
> > > 11,
> > > 12
> > > };
> > > static PFN exp_addresses[NUM_WDM_EXPORT_FUNC] = {
> > > (PFN) MyFunc1,
> > > (PFN) MyFunc1
> > > };
> > >
> > > HPEEXPORTTABLE hExportTable = 0;
> > > …
> > >
> > > // in OnLoad VxD function
> > >
> > > if( _PELDR_AddExportTable(
> > > &hExportTable, “MyDrv.vxd”, nfuncs, nfuncs, 0,
> > > (PVOID*) exp_names, exp_ordinals, exp_addresses, NULL
> > > ) != PELDR_ERR_NOERROR )
> > > {
> > > // Error
> > > }
> > > -----------------------
> > >
> > > 2) My stub source file to build an export library:
> > > -----------------------
> > > #include <wdm.h>
> > >
> > > ULONG __stdcall
> > > MyFunc1( ULONG Param )
> > > {
> > > return 0;
> > > }
> > >
> > > ULONG__stdcall
> > > MyFunc2( ULONG Param1, ULONG Param2 )
> > > {
> > > return 0;
> > > }
> > > -------------------
> > >
> > > 3) DEF-file to make the export library:
> > > ----------------
> > > LIBRARY MyDrv.VXD
> > > EXPORTS
> > > MyFunc1
> > > MyFunc2
> > > ----------------
> > >
> > > 4) My WDM is linked against the export library and calls the
> > exported functions:
> > > -------------------
> > > // imported definitions
> > > ULONG _declspec( dllimport )
> > > MyFunc1(ULONG Param );
> > >
> > > ULONG _declspec( dllimport )
> > > MyFunc2(ULONG Param1, ULONG Param2 );
> > > …
> > >
> > > // call an imported func
> > > value = MyFunc1( 123 );
> > > -------------------
> > >
> > > What is wrong with my code ?
> > >
> > > Any suggestions and help are welcome.
> > > Thanks in advance.
> > >
> > > Best regards,
> > > Valeriy Glushkov
> > >
> > >
> > >
> > >
> > > —
> > > You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> > > To unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> >
> >
> >
> > —
> > You are currently subscribed to ntdev as: gvvua@ua.fm
> > To unsubscribe send a blank email to
xxxxx@lists.osr.com
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to
xxxxx@lists.osr.com</wdm.h>

Hi Valeriy,

               I would tell u that the WDM must be able to call the VxD’s call. Because i’m having the WDM .sys driver and it is able to call the interfaces provided by the VxD like ndis.vxd, ntkern.vxd. So this is working perfectly, and hence ur things must be able to do that. See the mechanism what the standard things does while compiling the WDM drivers with .Lib of the VxDs, u’ll get an idea.

Good Luck,



From: “Valeriy Glushkov”

>Reply-To: “NT Developers Interest List”
>To: “NT Developers Interest List”
>Subject: [ntdev] Re: Problems with WDM to VxD calls…
>Date: Tue, 6 May 2003 00:45:28 +0300
>
>Max,
>
>The VxD is already implemented by other guy, I am trying to use it in my project.
>
>The VxD in its OnLoad function finds the IOS service entry point and then
>implements some R0 file operations on behalf of its callers (open, close, read,write).
>
>So is it possible for such a VxD to be ported into WDM ??
>Ever if yes, it should be a good bit of work to port it ?
>
>But I need a simple solution.
>
>Best Regards,
>Valeriy Glushkov
>
>----- Original Message -----
>From: “Maxim S. Shatskih”
>To: “NT Developers Interest List”
>Sent: Monday, May 05, 2003 7:27 PM
>Subject: [ntdev] Re: Problems with WDM to VxD calls…
>
>
> > Maybe try to port the helper functions from VxD to another WDM binary
> > or to a .LIB file?
> > What are these helper functions?
> >
> > Max
> >
> > ----- Original Message -----
> > From: “Valeriy Glushkov”
> > To: “NT Developers Interest List”
> > Sent: Monday, May 05, 2003 7:36 PM
> > Subject: [ntdev] Problems with WDM to VxD calls…
> >
> >
> > > Hi All !
> > >
> > > I have two drivers: WDM (the main module) and VxD (some helper
> > functions).
> > > The WDM need call the VxD’s functions directly.
> > >
> > > I’ve learned from the list archive that there are several approaches
> > to implement that.
> > >
> > > I use _PELDR_AddExportTable to export functions from VxD to my WDM
> > > and build an export library to link with the WDM.
> > >
> > > All compiles OK, my VxD loads as static OK, but the WDM fails to
> > start.
> > > WDMCheck.exe says it can’t find my exported VxD functions…
> > >
> > > Here is my code fragments:
> > >
> > > 1) In my VxD:
> > > ------------------
> > > #pragma VxD_LOCKED_CODE_SEG
> > >
> > > static char* exp_names[NUM_WDM_EXPORT_FUNC] = {
> > > “MyFunc1”,
> > > “MyFunc2”
> > > };
> > > static WORD exp_ordinals[NUM_WDM_EXPORT_FUNC] = {
> > > 11,
> > > 12
> > > };
> > > static PFN exp_addresses[NUM_WDM_EXPORT_FUNC] = {
> > > (PFN) MyFunc1,
> > > (PFN) MyFunc1
> > > };
> > >
> > > HPEEXPORTTABLE hExportTable = 0;
> > > …
> > >
> > > // in OnLoad VxD function
> > >
> > > if( _PELDR_AddExportTable(
> > > &hExportTable, “MyDrv.vxd”, nfuncs, nfuncs, 0,
> > > (PVOID*) exp_names, exp_ordinals, exp_addresses, NULL
> > > ) != PELDR_ERR_NOERROR )
> > > {
> > > // Error
> > > }
> > > -----------------------
> > >
> > > 2) My stub source file to build an export library:
> > > -----------------------
> > > #include <wdm.h>
> > >
> > > ULONG __stdcall
> > > MyFunc1( ULONG Param )
> > > {
> > > return 0;
> > > }
> > >
> > > ULONG__stdcall
> > > MyFunc2( ULONG Param1, ULONG Param2 )
> > > {
> > > return 0;
> > > }
> > > -------------------
> > >
> > > 3) DEF-file to make the export library:
> > > ----------------
> > > LIBRARY MyDrv.VXD
> > > EXPORTS
> > > MyFunc1
> > > MyFunc2
> > > ----------------
> > >
> > > 4) My WDM is linked against the export library and calls the
> > exported functions:
> > > -------------------
> > > // imported definitions
> > > ULONG _declspec( dllimport )
> > > MyFunc1(ULONG Param );
> > >
> > > ULONG _declspec( dllimport )
> > > MyFunc2(ULONG Param1, ULONG Param2 );
> > > …
> > >
> > > // call an imported func
> > > value = MyFunc1( 123 );
> > > -------------------
> > >
> > > What is wrong with my code ?
> > >
> > > Any suggestions and help are welcome.
> > > Thanks in advance.
> > >
> > > Best regards,
> > > Valeriy Glushkov
> > >
> > >
> > >
> > >
> > > —
> > > You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> > > To unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> >
> >
> >
> > —
> > You are currently subscribed to ntdev as: gvvua@ua.fm
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>—
>You are currently subscribed to ntdev as: xxxxx@hotmail.com
>To unsubscribe send a blank email to xxxxx@lists.osr.com
</wdm.h>


Mega movies. Mega prizes. Switch to Hallmark channel.

Max,

I guess everything is not so bad. The VxD just **trys** to register itself
as an IOS port driver to get the pointer to IOS linkage block. It’s not a
real storage stack component. Just “pretents” it’s IOS internal client. So
I think the driver CAN be ported to WDM (you can use IFSMgr and IOS
services inside WDM, why can’t you?).

Regards,
Anton Kolomyeytsev

No, blockwise disk IO on obsolete “smaller” Windows cannot be WDM.

Max

----- Original Message -----
From: “Valeriy Glushkov”
> To: “NT Developers Interest List”
> Sent: Tuesday, May 06, 2003 1:45 AM
> Subject: [ntdev] Re: Problems with WDM to VxD calls…
>
>
> > Max,
> >
> > The VxD is already implemented by other guy, I am trying to use it
> in my project.
> >
> > The VxD in its OnLoad function finds the IOS service entry point and
> then
> > implements some R0 file operations on behalf of its callers (open,
> close, read,write).
> >
> > So is it possible for such a VxD to be ported into WDM ??
> > Ever if yes, it should be a good bit of work to port it ?
> >
> > But I need a simple solution.
> >
> > Best Regards,
> > Valeriy Glushkov
> >
> > ----- Original Message -----
> > From: “Maxim S. Shatskih”
> > To: “NT Developers Interest List”
> > Sent: Monday, May 05, 2003 7:27 PM
> > Subject: [ntdev] Re: Problems with WDM to VxD calls…
> >
> >
> > > Maybe try to port the helper functions from VxD to another WDM
> binary
> > > or to a .LIB file?
> > > What are these helper functions?
> > >
> > > Max
> > >
> > > ----- Original Message -----
> > > From: “Valeriy Glushkov”
> > > To: “NT Developers Interest List”
> > > Sent: Monday, May 05, 2003 7:36 PM
> > > Subject: [ntdev] Problems with WDM to VxD calls…
> > >
> > >
> > > > Hi All !
> > > >
> > > > I have two drivers: WDM (the main module) and VxD (some helper
> > > functions).
> > > > The WDM need call the VxD’s functions directly.
> > > >
> > > > I’ve learned from the list archive that there are several
> approaches
> > > to implement that.
> > > >
> > > > I use _PELDR_AddExportTable to export functions from VxD to my
> WDM
> > > > and build an export library to link with the WDM.
> > > >
> > > > All compiles OK, my VxD loads as static OK, but the WDM fails to
> > > start.
> > > > WDMCheck.exe says it can’t find my exported VxD functions…
> > > >
> > > > Here is my code fragments:
> > > >
> > > > 1) In my VxD:
> > > > ------------------
> > > > #pragma VxD_LOCKED_CODE_SEG
> > > >
> > > > static char* exp_names[NUM_WDM_EXPORT_FUNC] = {
> > > > “MyFunc1”,
> > > > “MyFunc2”
> > > > };
> > > > static WORD exp_ordinals[NUM_WDM_EXPORT_FUNC] = {
> > > > 11,
> > > > 12
> > > > };
> > > > static PFN exp_addresses[NUM_WDM_EXPORT_FUNC] = {
> > > > (PFN) MyFunc1,
> > > > (PFN) MyFunc1
> > > > };
> > > >
> > > > HPEEXPORTTABLE hExportTable = 0;
> > > > …
> > > >
> > > > // in OnLoad VxD function
> > > >
> > > > if( _PELDR_AddExportTable(
> > > > &hExportTable, “MyDrv.vxd”, nfuncs, nfuncs, 0,
> > > > (PVOID*) exp_names, exp_ordinals, exp_addresses, NULL
> > > > ) != PELDR_ERR_NOERROR )
> > > > {
> > > > // Error
> > > > }
> > > > -----------------------
> > > >
> > > > 2) My stub source file to build an export library:
> > > > -----------------------
> > > > #include <wdm.h>
> > > >
> > > > ULONG __stdcall
> > > > MyFunc1( ULONG Param )
> > > > {
> > > > return 0;
> > > > }
> > > >
> > > > ULONG__stdcall
> > > > MyFunc2( ULONG Param1, ULONG Param2 )
> > > > {
> > > > return 0;
> > > > }
> > > > -------------------
> > > >
> > > > 3) DEF-file to make the export library:
> > > > ----------------
> > > > LIBRARY MyDrv.VXD
> > > > EXPORTS
> > > > MyFunc1
> > > > MyFunc2
> > > > ----------------
> > > >
> > > > 4) My WDM is linked against the export library and calls the
> > > exported functions:
> > > > -------------------
> > > > // imported definitions
> > > > ULONG _declspec( dllimport )
> > > > MyFunc1(ULONG Param );
> > > >
> > > > ULONG _declspec( dllimport )
> > > > MyFunc2(ULONG Param1, ULONG Param2 );
> > > > …
> > > >
> > > > // call an imported func
> > > > value = MyFunc1( 123 );
> > > > -------------------
> > > >
> > > > What is wrong with my code ?
> > > >
> > > > Any suggestions and help are welcome.
> > > > Thanks in advance.
> > > >
> > > > Best regards,
> > > > Valeriy Glushkov
> > > >
> > > >
> > > >
> > > >
> > > > —
> > > > You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> > > > To unsubscribe send a blank email to
> > > xxxxx@lists.osr.com
> > >
> > >
> > >
> > > —
> > > You are currently subscribed to ntdev as: gvvua@ua.fm
> > > To unsubscribe send a blank email to
> xxxxx@lists.osr.com
> >
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> > To unsubscribe send a blank email to
> xxxxx@lists.osr.com</wdm.h>

Yogi, Max, Anton,

Thank you guys for your suggestions.

I’ve already implemented the direct VxD service call method and it works rather fine !

It took a half of the day for me to find a simple bug in my VxD:
I couldn’t call VxD from WDM because of my Service_Table declaration was after VxD DECLARE_VIRTUAL_DEVICE !
That’s why when my WDM called the VxD, its services failed to be called !

Thank you all once more )).

Best regards,
Valeriy Glushkov

Hi Valeriy,
I would tell u that the WDM must be able to call the VxD’s call. Because i’m having the WDM .sys driver and it
is able to call the interfaces provided by the VxD like ndis.vxd, ntkern.vxd. So this is working perfectly, and hence ur
things must be able to do that. See the mechanism what the standard things does while compiling the WDM drivers with .Lib of the
VxDs, u’ll get an idea.
Good Luck,

It is gr8! news Valeriy,

        It means this just a sequencing problem of the code.

 

Good Luck



From: “Valeriy Glushkov”

>Reply-To: “NT Developers Interest List”
>To: “NT Developers Interest List”
>Subject: [ntdev] Re: Problems with WDM to VxD calls…
>Date: Tue, 6 May 2003 12:46:32 +0300
>
>Yogi, Max, Anton,
>
>Thank you guys for your suggestions.
>
>I’ve already implemented the direct VxD service call method and it works rather fine !
>
>It took a half of the day for me to find a simple bug in my VxD:
>I couldn’t call VxD from WDM because of my Service_Table declaration was after VxD DECLARE_VIRTUAL_DEVICE !
>That’s why when my WDM called the VxD, its services failed to be called !
>
>Thank you all once more )).
>
>Best regards,
>Valeriy Glushkov
>
>
> > Hi Valeriy,
> > I would tell u that the WDM must be able to call the VxD’s call. Because i’m having the WDM .sys driver and it
> > is able to call the interfaces provided by the VxD like ndis.vxd, ntkern.vxd. So this is working perfectly, and hence ur
> > things must be able to do that. See the mechanism what the standard things does while compiling the WDM drivers with .Lib of the
>VxDs, u’ll get an idea.
>Good Luck,
>
>
>
>
>
>—
>You are currently subscribed to ntdev as: xxxxx@hotmail.com
>To unsubscribe send a blank email to xxxxx@lists.osr.com


IIFA Awards. Vote now. Celebrate Indian cinema.