windows-nt/Source/XPSP1/NT/inetsrv/iis/svcs/dbgext/ntstuff.cxx

111 lines
2.2 KiB
C++
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
/*++
Copyright (c) 1995-1997 Microsoft Corporation
Module Name:
ntstuff.cxx
Abstract:
This module contains an NTSD debugger extension for dumping various
NT-specific properties.
Author:
Keith Moore (keithmo) 08-Nov-1997
Revision History:
--*/
#include "inetdbgp.h"
/************************************************************
* Dump Current Error Mode
************************************************************/
DECLARE_API( gem )
/*++
Routine Description:
This function is called as an NTSD extension to display the
current error mode of the debugee.
Arguments:
hCurrentProcess - Supplies a handle to the current process (at the
time the extension was called).
hCurrentThread - Supplies a handle to the current thread (at the
time the extension was called).
CurrentPc - Supplies the current pc at the time the extension is
called.
lpExtensionApis - Supplies the address of the functions callable
by this extension.
lpArgumentString - Supplies the asciiz string that describes the
ansi string to be dumped.
Return Value:
None.
--*/
{
NTSTATUS status;
UINT errorMode;
INIT_API();
status = NtQueryInformationProcess(
ExtensionCurrentProcess,
ProcessDefaultHardErrorMode,
(PVOID)&errorMode,
sizeof(errorMode),
NULL
);
if( !NT_SUCCESS(status) ) {
dprintf( "Cannot query error mode, error %08lx\n", status );
return;
}
if( errorMode & 1 ) {
errorMode &= ~SEM_FAILCRITICALERRORS;
} else {
errorMode |= SEM_FAILCRITICALERRORS;
}
dprintf(
"Current error mode = %08lx\n",
errorMode
);
if( errorMode & SEM_FAILCRITICALERRORS ) {
dprintf( " SEM_FAILCRITICALERRORS\n" );
}
if( errorMode & SEM_NOGPFAULTERRORBOX ) {
dprintf( " SEM_NOGPFAULTERRORBOX\n" );
}
if( errorMode & SEM_NOALIGNMENTFAULTEXCEPT ) {
dprintf( " SEM_NOALIGNMENTFAULTEXCEPT\n" );
}
if( errorMode & SEM_NOOPENFILEERRORBOX ) {
dprintf( " SEM_NOOPENFILEERRORBOX\n" );
}
} // DECLARE_API( gem )