| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | WINSHUTDOWN & REBOOT |
DL> It must be reasonably simple to do, but I have had no luck getting
DL> WinShutdown() to work, nor the code I've seen around
I beleive the WinShutdownSystem() call will allow PM programs to stop and
wait for input ("Are You sure you want to quit??" type crap).
DosShutdown(), on the other hand, will _for sure_ shut the filesystems
down clean (without closing any programs). If this is ok, here's the
32bit version of the reboot program you couldn't get working (because you
had 16bit source):
#include
#define INCL_NOPMAPI
#define INCL_DOS
#include
int main(void)
{
HFILE hf;
APIRET rc;
ULONG dummy;
rc = DosOpen("DOS$", &hf, &dummy, 0L, FILE_NORMAL, FILE_OPEN,
OPEN_ACCESS_WRITEONLY | OPEN_SHARE_DENYNONE |
OPEN_FLAGS_FAIL_ON_ERROR, 0L);
if(!rc){
DosShutdown(0L); // can't use stdin/stdout after this!
//16 bit: DosDevIOCtl(NULL, NULL, 0xab, 0xd5, hf); /* reboot */
rc = DosDevIOCtl(hf, 0xd5, 0xab,
NULL, 0, NULL,
NULL, 0, NULL);
/* we shouldn't actually make it this far */
printf("ioctl returned %d\n", rc);
DosClose(hf);
}
else
printf("DOS.SYS not installed (sys%04u)\n", rc);
}
--- Maximus/2 2.01
* Origin: Sol 3/Toronto (905)858-8488 (1:259/414)SEEN-BY: 12/2442 620/243 624/50 632/348 640/820 690/660 711/409 410 413 430 SEEN-BY: 711/807 808 809 934 942 949 712/353 515 713/888 800/1 @PATH: 259/414 400 99 250/99 3615/50 229/2 12/2442 711/409 808 809 934 |
|
| SOURCE: echomail via fidonet.ozzmosis.com | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.