Discussion:
Duplicate DeviceInterfases
(too old to reply)
Brausewetter, Kurt
2010-09-09 15:11:41 UTC
Permalink
Hi
I work on a Device Upper Filter (WDK: Toaster)

I'm in the FilterAddDevice function and Enum the DeviceInterfaces with
IoGetDeviceInterfaces

Now my question:
How can i dublicate an DeviceInterface (in the same or an other
InterfaceClassGuid) with all Node/Pin Propertys/Data/...
The Interface is in its Driver with KsInitializeDriver or BdaXxxXxx generated.

CU Brause
Brausewetter, Kurt
2010-09-09 15:33:26 UTC
Permalink
like an Alias with all Node and Pin...
Tim Roberts
2010-09-11 02:59:46 UTC
Permalink
Post by Brausewetter, Kurt
I work on a Device Upper Filter (WDK: Toaster)
I'm in the FilterAddDevice function and Enum the DeviceInterfaces with
IoGetDeviceInterfaces
How can i dublicate an DeviceInterface (in the same or an other
InterfaceClassGuid) with all Node/Pin Propertys/Data/...
The Interface is in its Driver with KsInitializeDriver or BdaXxxXxx generated.
I think you are confused. Device interface are just used to find drivers.
They don't have anything to do with functionality. Unfortunately, the word
"interface" has several conflicting meanings in the driver world.

All of the kernel streaming APIs are implemented through ioctls. Why do
you want to duplicate them? As a filter driver, you can just pass through
the ones you don't want to handle.
--
Tim Roberts, ***@probo.com
Providenza & Boekelheide, Inc.
Brausewetter, Kurt
2010-09-11 17:02:20 UTC
Permalink
Thanks for Answer!

No i'm not confused!
Why will i dublicate it (DeviceInterface)
I have a proprietary Software that use only it's own Interfaces
(FriendlyName). So i will it not Rename (The (SDK from the NEW Card have
Problems with this way)
When i have an Intervce with the orginal FriendlyName and one with the
proprietary FriendlyName.
BTW: It's a BDA RF Tuner an Capture you know it as DVB Card for TV in Europe

CU Brause
--
--
Gruß Brause
mailto:***@gmx.de
~~~~~ M$-TrueType:Courier New 10 ~~~~~
~~~~~~~ \\!// ~~~~~~~~~~~~~~~~~~
____ _( o o)_ ___ /(. .)\
_I__WW U WW_I_ ) (
___I___I___I___I___I__ ( Y )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PS: Der Kreis ist eine geometrische Figur, bei der an allen Ecken und Enden
gespart wurde.
Post by Tim Roberts
Post by Brausewetter, Kurt
I work on a Device Upper Filter (WDK: Toaster)
I'm in the FilterAddDevice function and Enum the DeviceInterfaces with
IoGetDeviceInterfaces
How can i dublicate an DeviceInterface (in the same or an other
InterfaceClassGuid) with all Node/Pin Propertys/Data/...
The Interface is in its Driver with KsInitializeDriver or BdaXxxXxx generated.
I think you are confused. Device interface are just used to find drivers.
They don't have anything to do with functionality. Unfortunately, the word
"interface" has several conflicting meanings in the driver world.
All of the kernel streaming APIs are implemented through ioctls. Why do
you want to duplicate them? As a filter driver, you can just pass through
the ones you don't want to handle.
--
Providenza & Boekelheide, Inc.
Brausewetter, Kurt
2010-09-14 09:13:57 UTC
Permalink
OK I'm confused: The words prove it ;-)
What want I to get:
I need 2 DeviceInterfaces (absolutely identical, to same PDO) with different
FriendlyName

AddDevice is not the right place. I have already learned from MSDN: The
DispatchPnp IRP_MN_START_DEVICE is better because I also has to react to
IRP_MN_REMOVE_DEVICE and others to start and stop etc.

But how can I Duplicate the Interface?

CU Brause
Post by Brausewetter, Kurt
Thanks for Answer!
No i'm not confused!
Why will i dublicate it (DeviceInterface)
I have a proprietary Software that use only it's own Interfaces
(FriendlyName). So i will it not Rename (The (SDK from the NEW Card have
Problems with this way)
When i have an Intervce with the orginal FriendlyName and one with the
proprietary FriendlyName.
BTW: It's a BDA RF Tuner an Capture you know it as DVB Card for TV in Europe
CU Brause
--
--
Gruß Brause
~~~~~ M$-TrueType:Courier New 10 ~~~~~
~~~~~~~ \\!// ~~~~~~~~~~~~~~~~~~
____ _( o o)_ ___ /(. .)\
_I__WW U WW_I_ ) (
___I___I___I___I___I__ ( Y )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PS: Der Kreis ist eine geometrische Figur, bei der an allen Ecken und Enden
gespart wurde.
Post by Tim Roberts
Post by Brausewetter, Kurt
I work on a Device Upper Filter (WDK: Toaster)
I'm in the FilterAddDevice function and Enum the DeviceInterfaces with
IoGetDeviceInterfaces
How can i dublicate an DeviceInterface (in the same or an other
InterfaceClassGuid) with all Node/Pin Propertys/Data/...
The Interface is in its Driver with KsInitializeDriver or BdaXxxXxx generated.
I think you are confused. Device interface are just used to find drivers.
They don't have anything to do with functionality. Unfortunately, the word
"interface" has several conflicting meanings in the driver world.
All of the kernel streaming APIs are implemented through ioctls. Why do
you want to duplicate them? As a filter driver, you can just pass through
the ones you don't want to handle.
--
Providenza & Boekelheide, Inc.
Maxim S. Shatskih
2010-09-14 11:17:51 UTC
Permalink
Post by Brausewetter, Kurt
But how can I Duplicate the Interface?
Just call IoRegisterDeviceInterface 2 times with different reference strings.
--
Maxim S. Shatskih
Windows DDK MVP
***@storagecraft.com
http://www.storagecraft.com
Brausewetter, Kurt
2010-09-15 09:02:37 UTC
Permalink
MSDN:
ReferenceString [in, optional]

Optionally points to a UNICODE_STRING. The string must not contain any path
separator characters ("/" or "\"). Function drivers typically specify NULL for
this parameter. Filter drivers must specify NULL.

Filter Drivers must specify NULL => That's a Problem or can i take a Non-NULL
ReferenceString?
Post by Brausewetter, Kurt
But how can I Duplicate the Interface?
Just call IoRegisterDeviceInterface 2 times with different reference strings.
--
Maxim S. Shatskih
Windows DDK MVP
***@storagecraft.com
http://www.storagecraft.com
Maxim S. Shatskih
2010-09-16 10:15:49 UTC
Permalink
Post by Brausewetter, Kurt
Optionally points to a UNICODE_STRING. The string must not contain any path
separator characters ("/" or "\"). Function drivers typically specify NULL for
this parameter. Filter drivers must specify NULL.
Filter Drivers must specify NULL => That's a Problem or can i take a Non-NULL
ReferenceString?
You cannot define 2 device interfaces with the same GUID and same ReferenceString.
--
Maxim S. Shatskih
Windows DDK MVP
***@storagecraft.com
http://www.storagecraft.com
Brausewetter, Kurt
2010-09-17 08:34:46 UTC
Permalink
OK, i Test

BTW: But what the F**k is that in MSDN: "Filter Drivers must specify NULL"
Post by Brausewetter, Kurt
Optionally points to a UNICODE_STRING. The string must not contain any path
separator characters ("/" or "\"). Function drivers typically specify NULL for
this parameter. Filter drivers must specify NULL.
Filter Drivers must specify NULL => That's a Problem or can i take a Non-NULL
ReferenceString?
You cannot define 2 device interfaces with the same GUID and same
ReferenceString.
--
Maxim S. Shatskih
Windows DDK MVP
***@storagecraft.com
http://www.storagecraft.com
Loading...