Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account



Photo

NVidia Video Driver Shutdown Fix

- - - - - NVidia 81.98 82.69 Shutdown Problem

  • Please log in to reply
106 replies to this topic

#101
jumper

jumper

    2015 All-American Masters HJ'er

  • Member
  • PipPipPipPip
  • 582 posts
  • Joined 21-January 11
  • OS:98SE
  • Country: Country Flag
From MSDevStudio97 (VC5) help:

The GetLogicalDriveStrings function fills a buffer with strings that specify valid drives in the system.
...
Each string in the buffer may be used wherever a root directory is required, such as for the GetDriveType and GetDiskFreeSpace functions.

and

The GetDriveType function determines whether a disk drive is a removable, fixed, CD-ROM, RAM disk, or network drive.


Design feedback requested:
KernelEx 4.5.2015
IHAtool - IpHlpApi tester; call various functions and report results
--status-> framework is solid; 22 api's fully supported; preview release coming soon
Future projects: Kexter - IP40+Ktree+Kexstubs


How to remove advertisement from MSFN

#102
Drugwash

Drugwash

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,449 posts
  • Joined 21-June 06
  • OS:98SE
  • Country: Country Flag

Thank you but what I need is physical drives not partitions and all the above are dealing with partitions.

I mean, user may have three HDDs mounted with a total of ten partitions. I need to detect three physical drives, total capacity of each of them, then match the partitions to their respective physical drives in order to determine total free space on each physical drive from their respective cumulated partitions.

In fact all I need is the largest physical drive with the lowest free space.

 

There may additionally be a problem with removable USB drives if somehow cache writing is enabled for them. But that is something that will have to wait, for now.

 

I've been looking at vwin32 and various VWIN32_DIOC_DOS_* parameters but haven't found a solution yet. Still working on it though.

 

Any idea why the SetupDi* APis fail under 9x?



#103
jumper

jumper

    2015 All-American Masters HJ'er

  • Member
  • PipPipPipPip
  • 582 posts
  • Joined 21-January 11
  • OS:98SE
  • Country: Country Flag
DeviceIOControl should do it, but needs a handle from CreateFile and the PlatformSDK (Feb.2003) says:
"Windows Me/98/95: You cannot open a directory, physical disk, or volume using CreateFile."

This is likely the reason SetupDiEnumDevice* is failing on 9x.

But we can send control codes directly to VxD's such as VMM32.vxd and IFSMGR.vxd:
Calling DeviceIOControl on Windows Me/98/95

edit: Waybacked the link

Edited by jumper, 27 August 2015 - 04:30 PM.

Design feedback requested:
KernelEx 4.5.2015
IHAtool - IpHlpApi tester; call various functions and report results
--status-> framework is solid; 22 api's fully supported; preview release coming soon
Future projects: Kexter - IP40+Ktree+Kexstubs

#104
Drugwash

Drugwash

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,449 posts
  • Joined 21-June 06
  • OS:98SE
  • Country: Country Flag

Yeah, I've bumped into that CreateFile() brick wall already. :( I knew about the vwin32 trick (as mentioned above) but couldn't find relevant info on enumerating physical disks.

Wasted the day trying with QueryDosDevice() (and obviously failing), now struggling with cfgmgr32 CM_* APIs - found out I already had built an incomplete wrapper for those APIs. Dunno if I'm going anywhere with that either. Turns out I have an incomplete/outdated environment which misses definition for PPNP_VETO_TYPE referred in cfgmgr32.h so I can't modify/build a demo code found on CodeProject.

It's been a long bitter day. See y'all tomorrow (according to my timezone). Thanks for all the help so far! ;)



#105
MiKl

MiKl

    Member

  • Member
  • PipPip
  • 177 posts
  • Joined 01-December 11
  • OS:98SE
  • Country: Country Flag

Hi Drugwash, wouldn't it be much more easier and flexible if you'll just add an option - maybe as a dropdown menue with values from 2000 to 8000 in steps of 250 or 500 - to your patcher ??

I mean, one system may still have shutdown problems with 4000 msec but not any longer with 4500 msec or whatever !!

So anybody who do not dares to touch the registry can increase "CacheWriteDelay" step by step until the perfect value is found.



#106
Drugwash

Drugwash

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,449 posts
  • Joined 21-June 06
  • OS:98SE
  • Country: Country Flag

Of course manual setting will be available, no doubt about that. But good software comes with best defaults and that's what I'm trying to accomplish. ;)

I mean, whoever dares not tamper with the registry may as well have no idea what values to try and when there's no optimized defaults wrong choice can lead to shutdown hang, corrupt files due to incomplete cache flush and who-knows-what other issues.

Therefore I'm trying to always find the best default value for the current system the patcher would be run on. Further tweaking will be users' responsibility.



#107
MiKl

MiKl

    Member

  • Member
  • PipPip
  • 177 posts
  • Joined 01-December 11
  • OS:98SE
  • Country: Country Flag

O.K., the shutdown issue returned even with IFSMGR.VXD v4.10.2225 and CACHEWRITEDELAY=4000 so I think it is safe to say that the problems in this system are not hardware/driver/settings releated but are caused by something else!!

 

I think/hope that I now know what it is but this would be off-topic. I may start a new thread later on after more tests.

Thank you all for the great feedback !!!







Also tagged with one or more of these keywords: NVidia, 81.98, 82.69, Shutdown Problem

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users