Help me on USB ISDN TA again.

Dear all,
I am now develop driver for USB ISDN TA under 98/NT.
I looks there are two solution for driver:
(A). Write a NDISWAN miniport driver and an USB WDM
driver.
(B). Write only one NDISWAN miniport with USB WDM
driver’s
function built it.This follows a MS’s knowledge
base
Qxxxx (sorry, I forget the exact number).
Also I should implement CAPI 2.0 support.
Can anyone give me some advice on it.

  1. Which solution is better? (A) or (B)?
  2. In solution (A). NDISWAN driver will be loaded in
    boot time,
    but USB WDM driver will be loaded in PnP time.How
    NDISWAN know
    USB WDM driver has been loaded and hwo to call USB
    WDM driver,
    usb IoCallDriver? But how get pointer to USB’s
    device object?
  3. In solution (B). how NDISWAN driver support PnP?
    Thanks.
    BR
    Hui Xu.

=====
|-------------------------------|
Behold, galvatron.
|+++++++++++++++++++++++++++++++|


Do You Yahoo!?
Get Yahoo! Mail - Free email you can access from anywhere!
http://mail.yahoo.com/

Hello

I have written the solution A. Ndis driver is loaded
in boot time. When I need a access to ISDN S0 layer
than I try to open the USB driver.

The NDIS driver use always IoCallDriver to talk
with the USB driver and has some IO Request
pending. When the USB driver is removed than
this request’s are completed with special error code
or one request is READ_EVENT request. Now
can close the NDIS driver the USB driver reference and
the USB driver is unloaded. The NDIS driver now polls
every n second to get a new access to the USB diver.

It exist a kernel API function to make this logic
better.

WDM driver,
usb IoCallDriver? But how get pointer to USB’s
device object?

You now the name of your USB driver object and can
use IoGetDeviceObjectPointer to open the USB
driver and ObDereferenceObjet to close.

Also I should implement CAPI 2.0 support.

this is not needed. You need only connect/disconnect
for the D-Channel connection. PPP need only HDLC
transparent for the B-Channel connection and this
is typical a ISDN chip mode.

— elli µÄÕýÎÄ: > Hello
>
> I have written the solution A. Ndis driver is loaded
Thank you greatly.
Can NDISWAN use IoXXXXX functions? I should
support boht 98 and NT.

> You now the name of your USB driver object and can
> use IoGetDeviceObjectPointer to open the USB
> driver and ObDereferenceObjet to close.
There is a new function in NDIS 5.0
IoGetDeviceInterface
Waht about it?

> > Also I should implement CAPI 2.0 support.
>
> this is not needed. You need only connect/disconnect
> for the D-Channel connection. PPP need only HDLC
> transparent for the B-Channel connection and this
> is typical a ISDN chip mode.
>
But the IHV requires for it.Where can I put CAPI
codes? in USB WDM driver.
And CAPI also should provide a VxD on 98.And how
VxD call a WDM driver?

=====
|-------------------------------|
Behold, galvatron.
|+++++++++++++++++++++++++++++++|

__________________________________________________
Do You Yahoo!?
Get Yahoo! Mail - Free email you can access from anywhere!
http://mail.yahoo.com/

Hello ,

> I have written the solution A. Ndis driver is loaded
XH> Thank you greatly.
XH> Can NDISWAN use IoXXXXX functions? I should
XH> support boht 98 and NT.

Yes is no Problem. I have written USB driver and NDIS for Windows
2000, Windows NT 4.0, Windows 95, Windows 98x

The best way to have no trouble in Windows 98 to compile your code
with NDIS.H and NTDDK.H is put all your code with
IoCallDriver … in a kernel mode DLL. Than can you call from your
NDIS driver a simple function API like openChannel, closeChannel …

In Windows 2000 the situation is much better (NDIS_WDM) flag, bud
the same solution works.

> You now the name of your USB driver object and can
> use IoGetDeviceObjectPointer to open the USB
> driver and ObDereferenceObjet to close.
XH> There is a new function in NDIS 5.0
XH> IoGetDeviceInterface
XH> Waht about it?

This normal Kernal API function call’s, You can use them for
NDIS ISDN drivers.

> > Also I should implement CAPI 2.0 support.
>
XH> But the IHV requires for it.Where can I put CAPI
XH> codes? in USB WDM driver.
XH> And CAPI also should provide a VxD on 98.And how
XH> VxD call a WDM driver?

Than you have a big problem to write CAPI 2.0 stuff
will some D-Channel protocols and B-Channel protocols
like X.75, X.25, V.120, V.110 … Many Many man years
software development or your company has enough money
and can buy all driver (NDIS, CAPI, …)source code
or binarie licenses. I know such company www.stollmann.de

For CAPI architecture support here exist 2 ways.
One way, put all your CAPI code in one or two WDM driver.
The lower interface is USB.
The NDIS driver is based on CAPI and use the CAPI interface
for connection data transfer management.

In Windows 98 you can write a simple VXD to support the CAPI
VXD interface. You must write the CAPI2032.DLL for user mode
application based on DeviceIoControl with the CAPI driver.

The second way, put all your Code in a NDIS driver. Use
the USB driver for Low Level ISDN access. Have a internal
CAPI interface. Use the internal CAPI interface to build
the TAPI stuff inside the NDIS driver.

Write VXD (Windows 98) and SYS (Windows 2000) protocol driver
with upper level CAPI interface and lower level NDIS interface
into your NDIS driver.

Enough work for you ? :slight_smile:

I write this stuff since 5 years and now I m feel bored.

Enjoy