x64 porting: error C4013: 'HalGetInterruptVector' undefined

Discussion in 'Windows Vista Drivers' started by Morris Chang, Dec 14, 2005.

  1. Morris Chang

    Morris Chang Guest

    Dear all:

    As I am porting driver to x64 platform, there is another
    problem. The original source code was builded in NTDDK free build.
    Nowdays, I try to build in DDK 3790.1830 Server 2003 x64 free build.
    And the function "HalGetInterruptVector" is from HAL.LIB. I build
    another sample \src\kernel\serial in legacy.c line 140. I can build the
    sample complete. What else I should do to the hal.lib file ...???

    Morris Chang, Dec 14, 2005
    1. Advertisements

  2. IIRC HalGetInterruptVector is long ago legacy, and is only used in
    NT4-style drivers which are unportable to 64bit.
    Maxim S. Shatskih, Dec 15, 2005
    1. Advertisements

  3. Morris Chang

    Morris Chang Guest

    Is there any function to replace "HalGetInterruptVector" ???
    Morris Chang, Dec 15, 2005
  4. Morris Chang

    Mark Roddy Guest

    No. The 64bit builds define NO_LEGACY_DRIVERS and that eliminates all
    obsolete DDK DDIs.

    If your driver does not support PnP now would be a good time to port
    the driver to the WDM/PnP environment. In fact, you should consider
    using the now released KMDF instead of using the standard DDK DDI.

    Mark Roddy DDK MVP
    Windows Vista/2003/XP/2000 Consulting
    Device and Filesystem Drivers
    Hollis Technology Solutions 603-321-1032
    Mark Roddy, Dec 15, 2005
  5. No need in it. The interrupt vector number is provided to your driver in
    the data block associated with the MN_START_DEVICE IRP.
    Maxim S. Shatskih, Dec 15, 2005
  6. to put it more directly, there is no replacement function. instead, you
    must support pnp and power in a 64 bit driver to get access to hw resources.
    Like Mark said, you should seriously consider KMDF. Here is a link


    Doron Holan [MS], Dec 15, 2005
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.