Re: NDIS 5.0 driver on Win98
- From: Dave Cattley <DaveCattley@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Wed, 24 Aug 2005 11:08:05 -0700
Ajay,
Two other things occured to me after I posted this below (and re-read your
OP for another pass at the details).
1. Make sure you have not somehow placed your send handler in 'paged' code.
2. Get the Win98 DDK / Debug Build & Symbols and run your driver on it
using the system debugger (see the Win98 DDK docs). The Debug Build of the
system components can tell you plenty about what is going on at that time.
Adding another VM (by opening a DOS box) places additional stress on memory
and may simply be paging out something that does not otherwise get paged out
when running without the DOS box active.
Good Luck,
Dave Cattley
Consulting Engineer
Systems Software Development
"Dave Cattley" wrote:
> Ajay,
>
> The reason it breaks when opening a DOS box is due to the extra layer of
> 'Virtual Machine' (VM) instantiation & scheduling that is present in Win9x.
> When a DOS box is created, a VM is created to 'virtualize' the machine and
> run MS-DOS. A Windows Console process is also created as well to display the
> virtual machine screen in a window. An NDIS driver is loaded into memory
> ultimately as a VxD. Most NDIS Miniport drivers can be blissfully ignorant
> of the subtlties of running in a VM context of other than the VM running
> 'Windows' (the system VM). It sounds like your driver cannot be so
> 'unaware'. For the most part, you can only call certain services while the
> VM scheduler context is the 'system VM' and not an arbitrary VM (like when
> the DOS VM is scheduled).
>
> Try queueing the request to your MiniportSend and scheduling a WORK_ITEM to
> process it later. A protocol may very well be making the NdisSend() call
> while running in the DOS VM (not an illegal thing to do) but if you, for
> instance, were to try and do some thing like submit an IRP to a WDM driver,
> complete an IRP pending in your driver, or some other thing, you could easily
> be calling into a system service that is assuming (and requiring) that the
> System VM be scheduled. Windows 98 includes support for NDIS Work Items and
> implements them as a 'restricted event' which (as I recall) ensures that the
> System VM is scheduled when the event callback occurs (as well as ensuring
> that the WDM subsystem can be called in general).
>
> Good Luck,
> Dave Cattley
> Consulting Engineer
> Systems Software Development
.
- Follow-Ups:
- Re: NDIS 5.0 driver on Win98
- From: Ajay Agrawal
- Re: NDIS 5.0 driver on Win98
- References:
- NDIS 5.0 driver on Win98
- From: Ajay Agrawal
- Re: NDIS 5.0 driver on Win98
- From: Pavel A.
- Re: NDIS 5.0 driver on Win98
- From: Ajay Agrawal
- Re: NDIS 5.0 driver on Win98
- From: Pavel A.
- Re: NDIS 5.0 driver on Win98
- From: Stephan Wolf [MVP]
- Re: NDIS 5.0 driver on Win98
- From: Ajay Agrawal
- Re: NDIS 5.0 driver on Win98
- From: Pavel A.
- Re: NDIS 5.0 driver on Win98
- From: Ajay Agrawal
- Re: NDIS 5.0 driver on Win98
- From: Dave Cattley
- NDIS 5.0 driver on Win98
- Prev by Date: Re: Device Interface Class GUIDs
- Next by Date: Re: DeviceIoControl And CreateFile
- Previous by thread: Re: NDIS 5.0 driver on Win98
- Next by thread: Re: NDIS 5.0 driver on Win98
- Index(es):
Relevant Pages
|