How to do broadcast on 1394 bus

Hi,

Does anybody know how to broadcast a packet to all nodes on a
local 1394 bus?

The DDK doc said:

When you request a REQUEST_ASYNC_WRITE the bus driver will fill in the
IA_Destination_ID member of DestinationAddress field.

So how can one set IA_Destination_ID=0xFF (i.e. broadcast) when the doc
said that the 1394 bus driver will fill this field for us?

Thanks in advance for any suggestion or idea.

Keep reading until the bottom of the page :slight_smile:

There is a documented flag called ASYNC_FLAGS_BROADCAST. It reads:
Broadcast to all nodes on the bus.

Mat

-----Original Message-----
From: Kiet Pham [mailto:xxxxx@embedtek.net]
Sent: Wednesday, June 18, 2003 11:10 AM
To: NT Developers Interest List
Subject: [ntdev] How to do broadcast on 1394 bus

Hi,

Does anybody know how to broadcast a packet to all nodes on a
local 1394 bus?

The DDK doc said:

When you request a REQUEST_ASYNC_WRITE the bus driver will fill in the
IA_Destination_ID member of DestinationAddress field.

So how can one set IA_Destination_ID=0xFF (i.e. broadcast) when the doc
said that the 1394 bus driver will fill this field for us?

Thanks in advance for any suggestion or idea.


You are currently subscribed to ntdev as: xxxxx@guillemot.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Mat,

Apparently I got the “old” DDK doc (flag ASYNC_FLAGS_BROADCAST was nowhere
to be found)
The online-one from OSR does. So I guess I have to update my DDK :slight_smile:

Thanks Mat for pointing out the flag.
(Believe me I do read DOC from top to bottom :slight_smile: :-))

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Mathieu Routhier
Sent: Wednesday, June 18, 2003 10:11 AM
To: NT Developers Interest List
Subject: [ntdev] RE: How to do broadcast on 1394 bus

Keep reading until the bottom of the page :slight_smile:

There is a documented flag called ASYNC_FLAGS_BROADCAST. It reads:
Broadcast to all nodes on the bus.

Mat

-----Original Message-----
From: Kiet Pham [mailto:xxxxx@embedtek.net]
Sent: Wednesday, June 18, 2003 11:10 AM
To: NT Developers Interest List
Subject: [ntdev] How to do broadcast on 1394 bus

Hi,

Does anybody know how to broadcast a packet to all nodes on a
local 1394 bus?

The DDK doc said:

When you request a REQUEST_ASYNC_WRITE the bus driver will fill in the
IA_Destination_ID member of DestinationAddress field.

So how can one set IA_Destination_ID=0xFF (i.e. broadcast) when the doc
said that the 1394 bus driver will fill this field for us?

Thanks in advance for any suggestion or idea.


You are currently subscribed to ntdev as: xxxxx@guillemot.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@embedtek.net
To unsubscribe send a blank email to xxxxx@lists.osr.com

Hi Mat,

I’m fairly new with this WDM stuff.

Is it possible that I could have a single WDM driver (i.e. one .sys) that is
capable of talking
to multiple 1394 devices? If so, how would I go about doing this? Is there a
sample somewhere
that you could point me to.

The reason I’m asking that question is that all the 1394 devices that I’m
talking to are pretty much
the same (harware wise). Each will control its own hardware piece (eg. A2D,
I/O, RS-485, etc…)
thru its own address range. The WDM driver is more or less just a
“dumb-device” (i.e. carrier of data
for reporting to GUI at ring3)

Thanks

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Kiet Pham
Sent: Wednesday, June 18, 2003 10:43 AM
To: NT Developers Interest List
Subject: [ntdev] RE: How to do broadcast on 1394 bus

Mat,

Apparently I got the “old” DDK doc (flag ASYNC_FLAGS_BROADCAST was nowhere
to be found)
The online-one from OSR does. So I guess I have to update my DDK :slight_smile:

Thanks Mat for pointing out the flag.
(Believe me I do read DOC from top to bottom :slight_smile: :-))

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Mathieu Routhier
Sent: Wednesday, June 18, 2003 10:11 AM
To: NT Developers Interest List
Subject: [ntdev] RE: How to do broadcast on 1394 bus

Keep reading until the bottom of the page :slight_smile:

There is a documented flag called ASYNC_FLAGS_BROADCAST. It reads:
Broadcast to all nodes on the bus.

Mat

-----Original Message-----
From: Kiet Pham [mailto:xxxxx@embedtek.net]
Sent: Wednesday, June 18, 2003 11:10 AM
To: NT Developers Interest List
Subject: [ntdev] How to do broadcast on 1394 bus

Hi,

Does anybody know how to broadcast a packet to all nodes on a
local 1394 bus?

The DDK doc said:

When you request a REQUEST_ASYNC_WRITE the bus driver will fill in the
IA_Destination_ID member of DestinationAddress field.

So how can one set IA_Destination_ID=0xFF (i.e. broadcast) when the doc
said that the 1394 bus driver will fill this field for us?

Thanks in advance for any suggestion or idea.


You are currently subscribed to ntdev as: xxxxx@guillemot.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@embedtek.net
To unsubscribe send a blank email to xxxxx@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@embedtek.net
To unsubscribe send a blank email to xxxxx@lists.osr.com

> Is it possible that I could have a single WDM driver (i.e. one .sys) that
is

capable of talking
to multiple 1394 devices? If so, how would I go about doing this?

It is absolutely possible and in fact that is the way WDM is designed.
There is one instance of a driver running for each instance of a particular
hardware type found. So, for instance, if you had three 1394 devices
plugged in that all had the ID: 1394\A02D&100, then your driver would get
loaded into memory for the first device but would be instanced for each
device found. Only one driver need be written.

Now, if you wanted to load AND instance your driver just once for all three
1394 devices, you actually could do that too. 1394 is fairly unique in this
regard, and I don’t think this behavior is really intended. But, from a
single driver you can talk to any node on the 1394 bus using async
transfers. One problem, or irritation, would be that your Windows platform
would constantly prompt for a driver for the devices for which no driver was
loaded (there are surely ways around this too though).

Talking to a specific node on the 1394 bus is accomplished by setting
IA_Destination_ID in the async transfer IRB. The DDK docs are correct when
they say the bus will fill this value in for you. But, the bus will only
fill in this field for you if you don’t fill it in yourself. However, this
works a good bit differently on Win2K and earlier. I am going to cover this
topic, hopefully in some detail, in my next installment to the 1394 article
series at http://www.wd-3.com.


Bill McKenzie
Compuware Corporation
http://www.compuware.com/products/driverstudio/

“Kiet Pham” wrote in message news:xxxxx@ntdev…
>
> Hi Mat,
>
> I’m fairly new with this WDM stuff.
>
> Is it possible that I could have a single WDM driver (i.e. one .sys) that
is
> capable of talking
> to multiple 1394 devices? If so, how would I go about doing this? Is there
a
> sample somewhere
> that you could point me to.
>
> The reason I’m asking that question is that all the 1394 devices that I’m
> talking to are pretty much
> the same (harware wise). Each will control its own hardware piece (eg.
A2D,
> I/O, RS-485, etc…)
> thru its own address range. The WDM driver is more or less just a
> “dumb-device” (i.e. carrier of data
> for reporting to GUI at ring3)
>
> Thanks
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com]On Behalf Of Kiet Pham
> Sent: Wednesday, June 18, 2003 10:43 AM
> To: NT Developers Interest List
> Subject: [ntdev] RE: How to do broadcast on 1394 bus
>
>
> Mat,
>
> Apparently I got the “old” DDK doc (flag ASYNC_FLAGS_BROADCAST was nowhere
> to be found)
> The online-one from OSR does. So I guess I have to update my DDK :slight_smile:
>
> Thanks Mat for pointing out the flag.
> (Believe me I do read DOC from top to bottom :slight_smile: :-))
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com]On Behalf Of Mathieu Routhier
> Sent: Wednesday, June 18, 2003 10:11 AM
> To: NT Developers Interest List
> Subject: [ntdev] RE: How to do broadcast on 1394 bus
>
>
> Keep reading until the bottom of the page :slight_smile:
>
> There is a documented flag called ASYNC_FLAGS_BROADCAST. It reads:
> Broadcast to all nodes on the bus.
>
> Mat
>
> -----Original Message-----
> From: Kiet Pham [mailto:xxxxx@embedtek.net]
> Sent: Wednesday, June 18, 2003 11:10 AM
> To: NT Developers Interest List
> Subject: [ntdev] How to do broadcast on 1394 bus
>
> Hi,
>
> Does anybody know how to broadcast a packet to all nodes on a
> local 1394 bus?
>
> The DDK doc said:
>
> When you request a REQUEST_ASYNC_WRITE the bus driver will fill in the
> IA_Destination_ID member of DestinationAddress field.
>
> So how can one set IA_Destination_ID=0xFF (i.e. broadcast) when the doc
> said that the 1394 bus driver will fill this field for us?
>
> Thanks in advance for any suggestion or idea.
>
> —
> You are currently subscribed to ntdev as: xxxxx@guillemot.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@embedtek.net
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@embedtek.net
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>

It is absolutely possible and in fact that is the way WDM is designed.
There is one instance of a driver running for each instance of a particular
hardware type found. So, for instance, if you had three 1394 devices
plugged in that all had the ID: 1394\A02D&100, then your driver would get
loaded into memory for the first device but would be instanced for each
device found. Only one driver need be written.

Hi,

My scenario is exactly as you described above.

BTW, I’m using DriverStudio 2.7 for development.

I only see these events (using KTrace) when the 1st device is plugged in:

  • MyDriver::AddDevice
  • MyDevice contructor
  • MyDevice::OnStartDevice

Based on what you said, then I should see the same events triggered when I
plugged in the 2 subsequence
devices. But I don’t.

Sorry, I’m still a bit confused on this issue.

Is it have to do with how my INF file is constructed?

Use your example (i.e. 3 devices with same ID). So is that mean that I have
to have:

  • 3 *.inf file that pointing to the same *.sys with 3 distinct GUID for each
    of those device.

Thanks again for the great help.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Bill McKenzie
Sent: Monday, June 23, 2003 11:00 PM
To: NT Developers Interest List
Subject: [ntdev] Re: How to do broadcast on 1394 bus

Is it possible that I could have a single WDM driver (i.e. one .sys) that
is
capable of talking
to multiple 1394 devices? If so, how would I go about doing this?

It is absolutely possible and in fact that is the way WDM is designed.
There is one instance of a driver running for each instance of a particular
hardware type found. So, for instance, if you had three 1394 devices
plugged in that all had the ID: 1394\A02D&100, then your driver would get
loaded into memory for the first device but would be instanced for each
device found. Only one driver need be written.

Now, if you wanted to load AND instance your driver just once for all three
1394 devices, you actually could do that too. 1394 is fairly unique in this
regard, and I don’t think this behavior is really intended. But, from a
single driver you can talk to any node on the 1394 bus using async
transfers. One problem, or irritation, would be that your Windows platform
would constantly prompt for a driver for the devices for which no driver was
loaded (there are surely ways around this too though).

Talking to a specific node on the 1394 bus is accomplished by setting
IA_Destination_ID in the async transfer IRB. The DDK docs are correct when
they say the bus will fill this value in for you. But, the bus will only
fill in this field for you if you don’t fill it in yourself. However, this
works a good bit differently on Win2K and earlier. I am going to cover this
topic, hopefully in some detail, in my next installment to the 1394 article
series at http://www.wd-3.com.


Bill McKenzie
Compuware Corporation
http://www.compuware.com/products/driverstudio/

“Kiet Pham” wrote in message news:xxxxx@ntdev…
>
> Hi Mat,
>
> I’m fairly new with this WDM stuff.
>
> Is it possible that I could have a single WDM driver (i.e. one .sys) that
is
> capable of talking
> to multiple 1394 devices? If so, how would I go about doing this? Is there
a
> sample somewhere
> that you could point me to.
>
> The reason I’m asking that question is that all the 1394 devices that I’m
> talking to are pretty much
> the same (harware wise). Each will control its own hardware piece (eg.
A2D,
> I/O, RS-485, etc…)
> thru its own address range. The WDM driver is more or less just a
> “dumb-device” (i.e. carrier of data
> for reporting to GUI at ring3)
>
> Thanks
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com]On Behalf Of Kiet Pham
> Sent: Wednesday, June 18, 2003 10:43 AM
> To: NT Developers Interest List
> Subject: [ntdev] RE: How to do broadcast on 1394 bus
>
>
> Mat,
>
> Apparently I got the “old” DDK doc (flag ASYNC_FLAGS_BROADCAST was nowhere
> to be found)
> The online-one from OSR does. So I guess I have to update my DDK :slight_smile:
>
> Thanks Mat for pointing out the flag.
> (Believe me I do read DOC from top to bottom :slight_smile: :-))
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com]On Behalf Of Mathieu Routhier
> Sent: Wednesday, June 18, 2003 10:11 AM
> To: NT Developers Interest List
> Subject: [ntdev] RE: How to do broadcast on 1394 bus
>
>
> Keep reading until the bottom of the page :slight_smile:
>
> There is a documented flag called ASYNC_FLAGS_BROADCAST. It reads:
> Broadcast to all nodes on the bus.
>
> Mat
>
> -----Original Message-----
> From: Kiet Pham [mailto:xxxxx@embedtek.net]
> Sent: Wednesday, June 18, 2003 11:10 AM
> To: NT Developers Interest List
> Subject: [ntdev] How to do broadcast on 1394 bus
>
> Hi,
>
> Does anybody know how to broadcast a packet to all nodes on a
> local 1394 bus?
>
> The DDK doc said:
>
> When you request a REQUEST_ASYNC_WRITE the bus driver will fill in the
> IA_Destination_ID member of DestinationAddress field.
>
> So how can one set IA_Destination_ID=0xFF (i.e. broadcast) when the doc
> said that the 1394 bus driver will fill this field for us?
>
> Thanks in advance for any suggestion or idea.
>
> —
> You are currently subscribed to ntdev as: xxxxx@guillemot.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@embedtek.net
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@embedtek.net
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>


You are currently subscribed to ntdev as: xxxxx@embedtek.net
To unsubscribe send a blank email to xxxxx@lists.osr.com

Yes, you should see the same sequence of events! Could it be something in
the device itself? Make sure all devices have different unique ids (serial
numbers) in the config rom.

I would be surprised if it was related to your inf. Maybe you can describe
to us the hardware ids you specify in your inf? Do you have a bus analyzer?
That would help you to figure out what’s going on when you plug it in.

Mat

-----Original Message-----
From: Kiet Pham [mailto:xxxxx@embedtek.net]
Sent: Wednesday, June 25, 2003 9:33 AM
To: NT Developers Interest List
Subject: [ntdev] RE: How to do broadcast on 1394 bus

My scenario is exactly as you described above.

BTW, I’m using DriverStudio 2.7 for development.

I only see these events (using KTrace) when the 1st device is plugged in:

  • MyDriver::AddDevice
  • MyDevice contructor
  • MyDevice::OnStartDevice

Based on what you said, then I should see the same events triggered when I
plugged in the 2 subsequence
devices. But I don’t.

Sorry, I’m still a bit confused on this issue.

Is it have to do with how my INF file is constructed?

Use your example (i.e. 3 devices with same ID). So is that mean that I have
to have:

  • 3 *.inf file that pointing to the same *.sys with 3 distinct GUID for each
    of those device.

Thanks again for the great help.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Bill McKenzie
Sent: Monday, June 23, 2003 11:00 PM
To: NT Developers Interest List
Subject: [ntdev] Re: How to do broadcast on 1394 bus

Is it possible that I could have a single WDM driver (i.e. one .sys) that
is
capable of talking
to multiple 1394 devices? If so, how would I go about doing this?

It is absolutely possible and in fact that is the way WDM is designed.
There is one instance of a driver running for each instance of a particular
hardware type found. So, for instance, if you had three 1394 devices
plugged in that all had the ID: 1394\A02D&100, then your driver would get
loaded into memory for the first device but would be instanced for each
device found. Only one driver need be written.

Now, if you wanted to load AND instance your driver just once for all three
1394 devices, you actually could do that too. 1394 is fairly unique in this
regard, and I don’t think this behavior is really intended. But, from a
single driver you can talk to any node on the 1394 bus using async
transfers. One problem, or irritation, would be that your Windows platform
would constantly prompt for a driver for the devices for which no driver was
loaded (there are surely ways around this too though).

Talking to a specific node on the 1394 bus is accomplished by setting
IA_Destination_ID in the async transfer IRB. The DDK docs are correct when
they say the bus will fill this value in for you. But, the bus will only
fill in this field for you if you don’t fill it in yourself. However, this
works a good bit differently on Win2K and earlier. I am going to cover this
topic, hopefully in some detail, in my next installment to the 1394 article
series at http://www.wd-3.com.


Bill McKenzie
Compuware Corporation
http://www.compuware.com/products/driverstudio/

“Kiet Pham” wrote in message news:xxxxx@ntdev…
>
> Hi Mat,
>
> I’m fairly new with this WDM stuff.
>
> Is it possible that I could have a single WDM driver (i.e. one .sys) that
is
> capable of talking
> to multiple 1394 devices? If so, how would I go about doing this? Is there
a
> sample somewhere
> that you could point me to.
>
> The reason I’m asking that question is that all the 1394 devices that I’m
> talking to are pretty much
> the same (harware wise). Each will control its own hardware piece (eg.
A2D,
> I/O, RS-485, etc…)
> thru its own address range. The WDM driver is more or less just a
> “dumb-device” (i.e. carrier of data
> for reporting to GUI at ring3)
>
> Thanks
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com]On Behalf Of Kiet Pham
> Sent: Wednesday, June 18, 2003 10:43 AM
> To: NT Developers Interest List
> Subject: [ntdev] RE: How to do broadcast on 1394 bus
>
>
> Mat,
>
> Apparently I got the “old” DDK doc (flag ASYNC_FLAGS_BROADCAST was nowhere
> to be found)
> The online-one from OSR does. So I guess I have to update my DDK :slight_smile:
>
> Thanks Mat for pointing out the flag.
> (Believe me I do read DOC from top to bottom :slight_smile: :-))
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com]On Behalf Of Mathieu Routhier
> Sent: Wednesday, June 18, 2003 10:11 AM
> To: NT Developers Interest List
> Subject: [ntdev] RE: How to do broadcast on 1394 bus
>
>
> Keep reading until the bottom of the page :slight_smile:
>
> There is a documented flag called ASYNC_FLAGS_BROADCAST. It reads:
> Broadcast to all nodes on the bus.
>
> Mat
>
> -----Original Message-----
> From: Kiet Pham [mailto:xxxxx@embedtek.net]
> Sent: Wednesday, June 18, 2003 11:10 AM
> To: NT Developers Interest List
> Subject: [ntdev] How to do broadcast on 1394 bus
>
> Hi,
>
> Does anybody know how to broadcast a packet to all nodes on a
> local 1394 bus?
>
> The DDK doc said:
>
> When you request a REQUEST_ASYNC_WRITE the bus driver will fill in the
> IA_Destination_ID member of DestinationAddress field.
>
> So how can one set IA_Destination_ID=0xFF (i.e. broadcast) when the doc
> said that the 1394 bus driver will fill this field for us?
>
> Thanks in advance for any suggestion or idea.
>
> —
> You are currently subscribed to ntdev as: xxxxx@guillemot.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@embedtek.net
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@embedtek.net
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>


You are currently subscribed to ntdev as: xxxxx@embedtek.net
To unsubscribe send a blank email to xxxxx@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@guillemot.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Sorry for the delay, I am having trouble with my newsgroup access at work at
the moment so I am having to find alternate access wherever I can slum it.

Anyway…

Is it have to do with how my INF file is constructed?

Use your example (i.e. 3 devices with same ID). So is that mean that I
have
to have:

  • 3 *.inf file that pointing to the same *.sys with 3 distinct GUID for
    each
    of those device.

No, you should only need one INF. Now, you might get re-promted with the
“Found New Hardware” dialog for each device in which case you can still use
the same INF and driver, but the whole install process is repeated. This
will happen if the driver package falls into the “untrusted” category. From
the DDK documentation under Windows DDK|DeviceInstallation|Design
Guide|Device Installation Overview|How Setup Selects Drivers:

“When Setup installs a device in the context of an administrative user
process (a client-side installation), it starts the Found New Hardware
wizard if the driver rank is only a compatible ID match or if its rank is
within the untrusted ranges.”

Hope this helps.


Bill McKenzie
Compuware Corporation
http://www.compuware.com/products/driverstudio/

“Kiet Pham” wrote in message news:xxxxx@ntdev…
>
> It is absolutely possible and in fact that is the way WDM is designed.
> There is one instance of a driver running for each instance of a
particular
> hardware type found. So, for instance, if you had three 1394 devices
> plugged in that all had the ID: 1394\A02D&100, then your driver would get
> loaded into memory for the first device but would be instanced for each
> device found. Only one driver need be written.
>
> Hi,
>
> My scenario is exactly as you described above.
>
> BTW, I’m using DriverStudio 2.7 for development.
>
> I only see these events (using KTrace) when the 1st device is plugged in:
> - MyDriver::AddDevice
> - MyDevice contructor
> - MyDevice::OnStartDevice
>
> Based on what you said, then I should see the same events triggered when I
> plugged in the 2 subsequence
> devices. But I don’t.
>
> Sorry, I’m still a bit confused on this issue.
>
> Is it have to do with how my INF file is constructed?
>
> Use your example (i.e. 3 devices with same ID). So is that mean that I
have
> to have:
> - 3 *.inf file that pointing to the same *.sys with 3 distinct GUID for
each
> of those device.
>
> Thanks again for the great help.
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com]On Behalf Of Bill McKenzie
> Sent: Monday, June 23, 2003 11:00 PM
> To: NT Developers Interest List
> Subject: [ntdev] Re: How to do broadcast on 1394 bus
>
>
> > Is it possible that I could have a single WDM driver (i.e. one .sys)
that
> is
> > capable of talking
> > to multiple 1394 devices? If so, how would I go about doing this?
>
> It is absolutely possible and in fact that is the way WDM is designed.
> There is one instance of a driver running for each instance of a
particular
> hardware type found. So, for instance, if you had three 1394 devices
> plugged in that all had the ID: 1394\A02D&100, then your driver would get
> loaded into memory for the first device but would be instanced for each
> device found. Only one driver need be written.
>
> Now, if you wanted to load AND instance your driver just once for all
three
> 1394 devices, you actually could do that too. 1394 is fairly unique in
this
> regard, and I don’t think this behavior is really intended. But, from a
> single driver you can talk to any node on the 1394 bus using async
> transfers. One problem, or irritation, would be that your Windows
platform
> would constantly prompt for a driver for the devices for which no driver
was
> loaded (there are surely ways around this too though).
>
> Talking to a specific node on the 1394 bus is accomplished by setting
> IA_Destination_ID in the async transfer IRB. The DDK docs are correct
when
> they say the bus will fill this value in for you. But, the bus will only
> fill in this field for you if you don’t fill it in yourself. However,
this
> works a good bit differently on Win2K and earlier. I am going to cover
this
> topic, hopefully in some detail, in my next installment to the 1394
article
> series at http://www.wd-3.com.
>
> –
> Bill McKenzie
> Compuware Corporation
> http://www.compuware.com/products/driverstudio/
>
>
>
> “Kiet Pham” wrote in message news:xxxxx@ntdev…
> >
> > Hi Mat,
> >
> > I’m fairly new with this WDM stuff.
> >
> > Is it possible that I could have a single WDM driver (i.e. one .sys)
that
> is
> > capable of talking
> > to multiple 1394 devices? If so, how would I go about doing this? Is
there
> a
> > sample somewhere
> > that you could point me to.
> >
> > The reason I’m asking that question is that all the 1394 devices that
I’m
> > talking to are pretty much
> > the same (harware wise). Each will control its own hardware piece (eg.
> A2D,
> > I/O, RS-485, etc…)
> > thru its own address range. The WDM driver is more or less just a
> > “dumb-device” (i.e. carrier of data
> > for reporting to GUI at ring3)
> >
> > Thanks
> >
> > -----Original Message-----
> > From: xxxxx@lists.osr.com
> > [mailto:xxxxx@lists.osr.com]On Behalf Of Kiet Pham
> > Sent: Wednesday, June 18, 2003 10:43 AM
> > To: NT Developers Interest List
> > Subject: [ntdev] RE: How to do broadcast on 1394 bus
> >
> >
> > Mat,
> >
> > Apparently I got the “old” DDK doc (flag ASYNC_FLAGS_BROADCAST was
nowhere
> > to be found)
> > The online-one from OSR does. So I guess I have to update my DDK :slight_smile:
> >
> > Thanks Mat for pointing out the flag.
> > (Believe me I do read DOC from top to bottom :slight_smile: :-))
> >
> > -----Original Message-----
> > From: xxxxx@lists.osr.com
> > [mailto:xxxxx@lists.osr.com]On Behalf Of Mathieu Routhier
> > Sent: Wednesday, June 18, 2003 10:11 AM
> > To: NT Developers Interest List
> > Subject: [ntdev] RE: How to do broadcast on 1394 bus
> >
> >
> > Keep reading until the bottom of the page :slight_smile:
> >
> > There is a documented flag called ASYNC_FLAGS_BROADCAST. It reads:
> > Broadcast to all nodes on the bus.
> >
> > Mat
> >
> > -----Original Message-----
> > From: Kiet Pham [mailto:xxxxx@embedtek.net]
> > Sent: Wednesday, June 18, 2003 11:10 AM
> > To: NT Developers Interest List
> > Subject: [ntdev] How to do broadcast on 1394 bus
> >
> > Hi,
> >
> > Does anybody know how to broadcast a packet to all nodes on a
> > local 1394 bus?
> >
> > The DDK doc said:
> >
> > When you request a REQUEST_ASYNC_WRITE the bus driver will fill in the
> > IA_Destination_ID member of DestinationAddress field.
> >
> > So how can one set IA_Destination_ID=0xFF (i.e. broadcast) when the doc
> > said that the 1394 bus driver will fill this field for us?
> >
> > Thanks in advance for any suggestion or idea.
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@guillemot.com
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@embedtek.net
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@embedtek.net
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >
> >
> >
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@embedtek.net
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>