Transfer VxD from Windows 98 to Windows XP or Windows 2000

Discussion in 'Windows Vista Drivers' started by joseph, Jan 14, 2004.

  1. joseph

    joseph Guest

    I am new for the VxD, but I need this help for urgent.
    Below is my problem.

    I have a dynamic VxD(written in C) that is working good
    with my software in Windows 98, but when I try to use it
    at Windows 2000 or Windows XP, my software can't open the
    VxD. Can someone tell me why? or what I should do to
    call/link this VxD to my software?

    Thanks in advance.

    joseph, Jan 14, 2004
    1. Advertisements

  2. Windows NT, 2000, XP, 2003, & Longhorn don't use and don't allow Windows
    9x VxDs. So, the answer is: you don't.
    David J. Craig, Jan 14, 2004
    1. Advertisements

  3. joseph

    Walter Oney Guest

    You need to rewrite your VxD as a kernel-mode driver that creates a
    device object in its DriverEntry routine. You then use the service
    control manager to load and unload the driver. The PNPMON sample in my
    book shows how to do this.

    That said, *why* do you need a VxD with your application in the first
    place? It may be that whatever you're trying to accomplish can be done a
    different and better way in 2K++.
    Walter Oney, Jan 14, 2004
  4. joseph

    joseph Guest


    Thanks for your reply.

    Well, I have a software(written in C++) that can run a
    crawl. The software will call a VxD(written in C) to grab
    the vertical retrace interrupt from VGA in order to run
    the crawl. This is all working fine in Windows 98, but
    when I install the software and VxD into Windows XP/2000,
    the VxD is not working and the software can't run the

    Is there anyway that I can solve this problem?
    Can you tell me a better way that I can do this at Windows

    Many Thanks.
    joseph, Jan 15, 2004
  5. at Windows 2000 or Windows XP, my software can't open the

    Windows 2000 and XP do not support VXD. At all. Completely. VXDs are obsolete.

    Rewrite the VXD as a WDM driver.
    Maxim S. Shatskih, Jan 15, 2004
  6. joseph

    Tim Roberts Guest

    You can't do this in NT/2K/XP. In fact, it will only work on SOME cards in
    Win98; many graphics cards don't enable the vblank interrupt at all.

    The right way to do this is to use DirectDraw. DirectDraw allows surface
    flipping aligned with vertical blank. That should work on both the
    NT-based systems and the 16-bit systems.
    Tim Roberts, Jan 16, 2004
    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.