Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1991-2001 Microsoft Corporation
Module Name:
erwatch.h
Abstract:
This module contains the code to report pending watchdog timeout events at logon after dirty reboot.
Author:
Michael Maciesowicz (mmacie) 29-May-2001
Environment:
User mode at logon.
Revision History:
--*/
//#ifndef _ERWATCH_H_
//#define _ERWATCH_H_
//
// Localizable string IDs.
//
#define IDS_000 100
#define IDS_001 101
#define IDS_002 102
#define IDS_003 103
#define IDS_004 104
#define IDS_005 105
//
// Constants used by erwatch.cpp.
//
#define ER_WD_MAX_RETRY 100
#define ER_WD_MAX_NAME_LENGTH 255
#define ER_WD_MAX_DATA_SIZE 4096
#define ER_WD_MAX_STRING 1024
#define ER_WD_MAX_FILE_INFO_LENGTH 255
#define ER_WD_MAX_URL_LENGTH 255
#define ER_WD_LANG_ENGLISH 0x0409
#define ER_WD_DISABLE_BUGCHECK_FLAG 0x01
#define ER_WD_DEBUGGER_NOT_PRESENT_FLAG 0x02
#define ER_WD_BUGCHECK_TRIGGERED_FLAG 0x04
//
// Data types.
//
typedef struct _ER_WD_LANG_AND_CODE_PAGE { USHORT Language; USHORT CodePage; } ER_WD_LANG_AND_CODE_PAGE, *PER_WD_LANG_AND_CODE_PAGE;
typedef struct _ER_WD_DRIVER_INFO { WCHAR DriverName[MAX_PATH]; VS_FIXEDFILEINFO FixedFileInfo; WCHAR Comments[ER_WD_MAX_FILE_INFO_LENGTH + 1]; WCHAR CompanyName[ER_WD_MAX_FILE_INFO_LENGTH + 1]; WCHAR FileDescription[ER_WD_MAX_FILE_INFO_LENGTH + 1]; WCHAR FileVersion[ER_WD_MAX_FILE_INFO_LENGTH + 1]; WCHAR InternalName[ER_WD_MAX_FILE_INFO_LENGTH + 1]; WCHAR LegalCopyright[ER_WD_MAX_FILE_INFO_LENGTH + 1]; WCHAR LegalTrademarks[ER_WD_MAX_FILE_INFO_LENGTH + 1]; WCHAR OriginalFilename[ER_WD_MAX_FILE_INFO_LENGTH + 1]; WCHAR PrivateBuild[ER_WD_MAX_FILE_INFO_LENGTH + 1]; WCHAR ProductName[ER_WD_MAX_FILE_INFO_LENGTH + 1]; WCHAR ProductVersion[ER_WD_MAX_FILE_INFO_LENGTH + 1]; WCHAR SpecialBuild[ER_WD_MAX_FILE_INFO_LENGTH + 1]; } ER_WD_DRIVER_INFO, *PER_WD_DRIVER_INFO;
typedef struct _ER_WD_PCI_ID { USHORT VendorId; USHORT DeviceId; UCHAR Revision; ULONG SubsystemId; } ER_WD_PCI_ID, *PER_WD_PCI_ID;
//
// Prototypes of routines supplied by erwatch.cpp.
//
HANDLE CreateWatchdogEventFile( IN PWSTR FileName );
BOOL CreateWatchdogEventFileName( OUT PWSTR FileName );
USHORT GenerateSignature( IN PER_WD_PCI_ID PciId, IN PER_WD_DRIVER_INFO DriverInfo );
UCHAR GetFlags( IN HKEY Key );
VOID GetDriverInfo( IN HKEY Key, IN OPTIONAL PWCHAR Extension, OUT PER_WD_DRIVER_INFO DriverInfo );
VOID GetPciId( IN HKEY Key, OUT PER_WD_PCI_ID PciId );
BOOL SaveWatchdogEventData( IN HANDLE FileHandle, IN HKEY Key, IN PER_WD_DRIVER_INFO DriverInfo );
BOOL WatchdogEventHandler( IN BOOL NotifyPcHealth );
BOOL WriteWatchdogEventFile( IN HANDLE FileHandle, IN PWSTR String );
//#endif // _ERWATCH_H_
|