Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133/*++
Copyright (C) Microsoft Corporation, 1991 - 1999
Module Name:
debug.h
Abstract:
Author:
Environment:
kernel mode only
Notes:
Revision History:
--*/
#define DBGGETIOCTLSTR(_ioctl) DbgGetIoctlStr(_ioctl)#define DBGGETSCSIOPSTR(_pSrb) DbgGetScsiOpStr(_pSrb)#define DBGGETSRBSTATUSSTR(_pSrb) DbgGetSrbStatusStr(_pSrb)#define DBGGETSENSECODESTR(_pSrb) DbgGetSenseCodeStr(_pSrb)#define DBGGETADSENSECODESTR(_pSrb) DbgGetAdditionalSenseCodeStr(_pSrb)#define DBGGETADSENSEQUALIFIERSTR(_pSrb) DbgGetAdditionalSenseCodeQualifierStr(_pSrb)
char *DbgGetIoctlStr(ULONG ioctl);char *DbgGetScsiOpStr(PSTORAGE_REQUEST_BLOCK_HEADER Srb);char *DbgGetSrbStatusStr(PSTORAGE_REQUEST_BLOCK_HEADER Srb);char *DbgGetSenseCodeStr(PSTORAGE_REQUEST_BLOCK_HEADER Srb);char *DbgGetAdditionalSenseCodeStr(PSTORAGE_REQUEST_BLOCK_HEADER Srb);char *DbgGetAdditionalSenseCodeQualifierStr(PSTORAGE_REQUEST_BLOCK_HEADER Srb);
#if DBG
typedef struct _CLASSPNP_GLOBALS {
// // whether or not to NT_ASSERT for lost irps //
ULONG BreakOnLostIrps; ULONG SecondsToWaitForIrps;
// // use a buffered debug print to help // catch timing issues that do not // reproduce with std debugprints enabled //
ULONG UseBufferedDebugPrint; ULONG UseDelayedRetry;
// // the next four are the buffered printing support // (currently unimplemented) and require the spinlock // to use //
ULONG Index; // index into buffer KSPIN_LOCK SpinLock; PUCHAR Buffer; // requires spinlock to access ULONG NumberOfBuffers; // number of buffers available SIZE_T EachBufferSize; // size of each buffer
// // interlocked variables to initialize // this data only once //
LONG Initializing; LONG Initialized;
} CLASSPNP_GLOBALS, *PCLASSPNP_GLOBALS;
// // Define a structure used to capture stack traces when we // get an access request and the disks are powered off. This // will help us determine who's causing disk respins. //
// // How many stack frames to capture each time? // #define DISK_SPINUP_BACKTRACE_LENGTH (0x18)
// // How many stack traces can we capture before // out buffer wraps? (needs to be power of 2) // #define NUMBER_OF_DISK_SPINUP_TRACES (0x10)
typedef struct _DISK_SPINUP_TRACES {
LARGE_INTEGER TimeStamp; // timestamp of the spinup event. PVOID StackTrace[DISK_SPINUP_BACKTRACE_LENGTH]; // Holds stack trace } DISK_SPINUP_TRACES, *PDISK_SPINUP_TRACES;
#define DBGCHECKRETURNEDPKT(_pkt) DbgCheckReturnedPkt(_pkt) #define DBGLOGSENDPACKET(_pkt) DbgLogSendPacket(_pkt) #define DBGLOGRETURNPACKET(_pkt) DbgLogReturnPacket(_pkt) #define DBGLOGFLUSHINFO(_fdoData, _isIO, _isFUA, _isFlush) DbgLogFlushInfo(_fdoData, _isIO, _isFUA, _isFlush)
VOID ClasspInitializeDebugGlobals(); VOID DbgCheckReturnedPkt(TRANSFER_PACKET *Pkt); VOID DbgLogSendPacket(TRANSFER_PACKET *Pkt); VOID DbgLogReturnPacket(TRANSFER_PACKET *Pkt); VOID DbgLogFlushInfo(PCLASS_PRIVATE_FDO_DATA FdoData, BOOLEAN IsIO, BOOLEAN IsFUA, BOOLEAN IsFlush); VOID SnapDiskStartup(VOID); extern CLASSPNP_GLOBALS ClasspnpGlobals; extern LONG ClassDebug; extern BOOLEAN DebugTrapOnWarn;
#else
#define ClasspInitializeDebugGlobals() #define SnapDiskStartup()
#define DBGCHECKRETURNEDPKT(_pkt) #define DBGLOGSENDPACKET(_pkt) #define DBGLOGRETURNPACKET(_pkt) #define DBGLOGFLUSHINFO(_fdoData, _isIO, _isFUA, _isFlush)
#endif