Image Map Image Map
Page 1 of 2 12 LastLast
Results 1 to 10 of 14

Thread: How to restart the floppy service in Windows NT 3.51

  1. #1

    Default How to restart the floppy service in Windows NT 3.51

    I'm trying to be able to adjust the FDD configuration parameters in NT. They are read from the registry by the floppy driver at startup. The floppy driver must be run as a system service in order to provide drive letters for the disk drives.

    If I change the configuration data in the registry after the service is started, it does not pick up the new values.
    If I change the startup type of the driver to 'manual' it does not assign drive letters. (After starting it manually)
    If I let the service start as normal as a system service, then change the registry data, and then attempt to stop the service (to ultimately restart it) I get the error: "the requested stop or pause is not valid"


    Any thought on how to get around this? Is it as simple as changing a flag on the service somewhere to mark it "stoppable"? If so, where?

  2. #2
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    35,690
    Blog Entries
    18

    Default

    Why not restart the service and reboot? It's been a long time since I wrote drivers for 3.51, but some things need to be done that way.

  3. #3

    Default

    Quote Originally Posted by Chuck(G) View Post
    Why not restart the service and reboot? It's been a long time since I wrote drivers for 3.51, but some things need to be done that way.
    If I reboot, the changes I made to the registry are overwritten by the information that NT grabs from the system BIOS. My purpose is to NOT use the BIOS information, and provide my own values.

  4. #4
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    35,690
    Blog Entries
    18

    Default

    Hmmm, I wonder if you could layer in a driver and override the values in floppy.sys.

    Alternatively, you could simply insert your own version of floppy.sys, since the source, IIRC, is in the DDK.
    Last edited by Chuck(G); November 20th, 2020 at 02:39 PM.

  5. #5

    Default

    I wonder why it doesn't provide a drive letter when started manually. Could there be some alternate \\foo\bar sort of device name to get access to the floppy instead of A: ? Getting FAT32 partitions to come up involved adding a DosDevices value under the local_machine\system\mounteddevices key... maybe something there?

    If the floppy.sys is reading values from the registry which were written there earlier in the boot process, then rather than trying to intercept the values themselves I would say it is probably easier to hack floppy.sys so it reads the values from a different location. That is, find the name with a hex editor and change it, then add the tweaked values in the registry under the new name. Of course this would still need a reboot for the tweaks to take effect.

  6. #6

    Default

    Quote Originally Posted by Chuck(G) View Post
    Hmmm, I wonder if you could layer in a driver and override the values in floppy.sys.
    Not sure what you mean by layer exactly? How would I ensure the other driver loads before floppy.sys?

    Quote Originally Posted by Chuck(G) View Post
    Alternatively, you could simply insert your own version of floppy.sys, since the source, IIRC, is in the DDK.
    Yes I can, in fact you directed me to the source in the DDK months ago. I was trying to attempt a "smaller hammer" solution before rewriting floppy.sys but that is indeed my backup plan

  7. #7

    Default

    Quote Originally Posted by bakemono View Post
    I wonder why it doesn't provide a drive letter when started manually. Could there be some alternate \\foo\bar sort of device name to get access to the floppy instead of A: ? Getting FAT32 partitions to come up involved adding a DosDevices value under the local_machine\system\mounteddevices key... maybe something there?
    Maybe, I'm not super familiar with the early NT registry layout. All I know is when I booted up with floppy.sys not set to "system" as the start type and then started the driver manually, I got no error, but also no drives.

  8. #8
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    35,690
    Blog Entries
    18

    Default

    Quote Originally Posted by maxtherabbit View Post
    Not sure what you mean by layer exactly? How would I ensure the other driver loads before floppy.sys?
    No, I was thinking about using a layered driver to poke stuff into the floppy.sys data area. It's been decades; I'll have to go look at my old code.

  9. #9

    Default

    Isn't "net start <service>" and "net stop <service>" working in 3.51?

  10. #10

    Default

    Quote Originally Posted by Timo W. View Post
    Isn't "net start <service>" and "net stop <service>" working in 3.51?
    yes that works generally, but when tried against the floppy service I get the error: "the requested stop or pause is not valid"

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •