none
[WDK][NDis] Problem compiling passthru example RRS feed

  • Question

  • Hi,
    i'm having trouble compiling the passthru example given with Windows Driver Kit.
    I have downloaded the Windows 7 DDK and i'm trying to compile the example using the BLD macro.
    I have the same compilation error on both Win XP x86 and Win7 x86 environments : " error C4013: 'NdisMFddiIndicateReceive' undefined; assuming extern returns int". (note: This function is surounded by a #if FDDI / #endif )

    I tried many different compilations options and includes to solve problem without any success, and I checked over internet for any similar problem but didn't find anything helpful. 

    Could you help me understanding this problem ? 
    I have read that this function is not supported under Vista, but it is not the OS i compile to . Is there any include missing ? i checked the ntddk.h file, but function is no present, whereas DDK says this function was introduced with Ndis 5.1 version.

    i'm looking forward to hearing from you,
    sincerely,

    Maxime Bianchi

    Friday, March 16, 2012 10:11 AM

Answers

  • Windows Vista / Windows Server 2008 and later will not load any miniport that declares a mediatype of NdisMediumFddi.  It doesn't matter whether it's NDIS 5.1 or something else; the driver will not load.

    It looks like a side-effect of that is the WDKs for Vista and later don't support FDDI either.  You'd probably have to go back and use a Windows XP WDK.

    Sorry about that.  Usually we try to have the WDK be more backwards-compatible than that, but it looks like our enthusiasm for removing FDDI from Vista extended to its kit too.

    Friday, March 16, 2012 11:26 PM
  • Vista (and later versions) does not support FDDI using any mechanism.  The code that implements the FDDI MAC layer was removed from NDIS.SYS, and the code in TCPIP that could use FDDI-specific OIDs was removed.  NDIS.SYS has a hard block to fail any miniport that registers as NdisMediumFddi.

    If you have FDDI hardware and you need it to work on Vista or later, then you'll have to treat it like any other media type that isn't natively supported:

    1.  Expose your driver as an Ethernet miniport,

    2.  Implement the full MAC in your miniport,

    3.  Expose layer3 address management through ARPs and DHCP (faked if necessary), and

    4.  Translate Ethernet OIDs and concepts (like broadcast addresses) to FDDI concepts.

    Monday, March 19, 2012 5:45 PM

All replies

  • NDIS 5. x has been deprecated and is superseded by NDIS 6. x.

    Do you require FDDI support? If yes, then check http://msdn.microsoft.com/en-us/library/windows/hardware/ff570059%28v=vs.85%29.aspx

    Friday, March 16, 2012 11:38 AM
  • Hi,

    I know that 5.x is deprecated, but the driver I have to test is developped for this version, and Windows XP comes with 5.1 Ndis version. 

    I just know that my driver was declared FDDI-capable in .INF file, and that in its code there is no #ifdef FDDI line. 

    But here i was just trying to build WDK example. The link you provide does not answer my question as I will not port the driver on Ndis 6.x version.


    Friday, March 16, 2012 11:44 AM
  • are you building in an XP x86 fre build window?

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Friday, March 16, 2012 4:41 PM
  • Windows Vista / Windows Server 2008 and later will not load any miniport that declares a mediatype of NdisMediumFddi.  It doesn't matter whether it's NDIS 5.1 or something else; the driver will not load.

    It looks like a side-effect of that is the WDKs for Vista and later don't support FDDI either.  You'd probably have to go back and use a Windows XP WDK.

    Sorry about that.  Usually we try to have the WDK be more backwards-compatible than that, but it looks like our enthusiasm for removing FDDI from Vista extended to its kit too.

    Friday, March 16, 2012 11:26 PM
  • I've tried boh compilations on XP x86 free build environment using Windows 7 WDK and Windows XP WDK.

    I've got the error only when using the Win7 WDK. But as Jeffrey said, FDDI is no more supported starting with Vista...

    Monday, March 19, 2012 10:24 AM
  • Hi,

    does Vista and later versions support FDDI using other mechanisms or functions ? or is it fully abandonned ? 

    oh by the way, do you know if Hyper-Threading needs special code support or declarations using WDK ? or is it totally independant ?

    i mean, if i activate hyper-threading in BIOS, do i need to do something special (appart from having a multi-thread application so as to have benefits of multi-threading) or is it a transparent "hardware" operation ?

    for me i think it's transparent but want to be sure.

    Monday, March 19, 2012 10:30 AM
  • HT is transparent to the driver, it is just another core that can execute code

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Monday, March 19, 2012 4:05 PM
  • Vista (and later versions) does not support FDDI using any mechanism.  The code that implements the FDDI MAC layer was removed from NDIS.SYS, and the code in TCPIP that could use FDDI-specific OIDs was removed.  NDIS.SYS has a hard block to fail any miniport that registers as NdisMediumFddi.

    If you have FDDI hardware and you need it to work on Vista or later, then you'll have to treat it like any other media type that isn't natively supported:

    1.  Expose your driver as an Ethernet miniport,

    2.  Implement the full MAC in your miniport,

    3.  Expose layer3 address management through ARPs and DHCP (faked if necessary), and

    4.  Translate Ethernet OIDs and concepts (like broadcast addresses) to FDDI concepts.

    Monday, March 19, 2012 5:45 PM
  • Thank you very much for your answers,

    it helped me a lot, i know now on what basis i can start and upgrade current driver.

    sincerely

    • Marked as answer by mbi37 Tuesday, March 20, 2012 8:59 AM
    • Unmarked as answer by mbi37 Tuesday, March 20, 2012 8:59 AM
    Tuesday, March 20, 2012 8:32 AM
  • I have a problem I can not compile, help please! 
    wdksetup.exe downloaded and wdfcoinstaller.msi of http://msdn.microsoft.com/en-us/windows/hardware/hh852365.aspx, but neither can set compile elementary driver here such message "error C1083: Cannot open include file: 'specstrings.h': No such file or diretstory "
    Wednesday, February 12, 2014 12:08 PM