📄 deb_res.cpp
字号:
//****************************************************************************
// File DEB_RES.CPP
//
// Resource debugging support
//
// Copyright (c) APSoft, 1998-2002.
// All rights reserved.
//
//****************************************************************************
extern "C"
{
#include <ntddk.h> // Main DDK's include
#include <stdio.h> // Standard C functions
#include <stdlib.h>
}
#include <debug.h> // Prototypes
#if DBG
//--------------------- Interface description strings ------------------------
typedef struct tagIFACE_DESCRIPTION
{
INTERFACE_TYPE IfaceType; // Interface type
LPSTR szName; // Interface name
} IFACE_DESCRIPTION;
char szInterfaceTypeUndefined [] = "InterfaceTypeUndefined";
char szInternal [] = "Internal";
char szIsa [] = "Isa";
char szEisa [] = "Eisa";
char szMicroChannel [] = "MicroChannel";
char szTurboChannel [] = "TurboChannel";
char szPCIBus [] = "PCIBus";
char szVMEBus [] = "VMEBus";
char szNuBus [] = "NuBus";
char szPCMCIABus [] = "PCMCIABus";
char szCBus [] = "CBus";
char szMPIBus [] = "MPIBus";
char szMPSABus [] = "MPSABus";
char szProcessorInternal [] = "ProcessorInternal";
char szInternalPowerBus [] = "InternalPowerBus";
char szPNPISABus [] = "PNPISABus";
char szPNPBus [] = "PNPBus";
char szUnknownInterface [] = "Unknown Interface code";
IFACE_DESCRIPTION Interfaces[] =
{
{ InterfaceTypeUndefined, szInterfaceTypeUndefined },
{ Internal, szInternal },
{ Isa, szIsa },
{ Eisa, szEisa },
{ MicroChannel, szMicroChannel },
{ TurboChannel, szTurboChannel },
{ PCIBus, szPCIBus },
{ VMEBus, szVMEBus },
{ NuBus, szNuBus },
{ PCMCIABus, szPCMCIABus },
{ CBus, szCBus },
{ MPIBus, szMPIBus },
{ MPSABus, szMPSABus },
{ ProcessorInternal, szProcessorInternal },
{ InternalPowerBus, szInternalPowerBus },
{ PNPISABus, szPNPISABus },
{ PNPBus, szPNPBus },
{ MaximumInterfaceType, NULL }
};
#define NUM_INTERFACES (sizeof(Interfaces) /sizeof(Interfaces[0]))
//---------------------------- Resource option -------------------------------
char szIO_RESOURCE_FIXED [] = "Fixed (Caller cannot use an alternative)";
char szIO_RESOURCE_PREFERRED [] = "Prefered resource";
char szIO_RESOURCE_DEFAULT [] = "Default resource";
char szIO_RESOURCE_ALTERNATIVE[] = "Alternative resource";
char szIO_RESOURCE_UNKNOWN [] = "Unknown resource option";
typedef struct tagOPTION_DESCRIPTION
{
UCHAR uType; // Option code
LPSTR szName; // Option name
} OPTION_DESCRIPTION;
OPTION_DESCRIPTION Options[] =
{
{ 0, szIO_RESOURCE_FIXED },
{ IO_RESOURCE_PREFERRED, szIO_RESOURCE_PREFERRED },
{ IO_RESOURCE_DEFAULT, szIO_RESOURCE_DEFAULT },
{ IO_RESOURCE_ALTERNATIVE, szIO_RESOURCE_ALTERNATIVE },
{ 0xFF, NULL }
};
#define NUM_OPTIONS (sizeof(Options) /sizeof(Options[0]))
//----------------------------- Resource Type --------------------------------
char szCmResourceTypeNull [] = "Null";
char szCmResourceTypePort [] = "I/O Port";
char szCmResourceTypeInterrupt [] = "Interrupt";
char szCmResourceTypeMemory [] = "Memory";
char szCmResourceTypeDma [] = "DMA Channel";
char szCmResourceTypeDeviceSpecific [] = "Device Specific";
char szCmResourceTypeBusNumber [] = "Bus Number";
char szCmResourceTypeAssignedResource [] = "Assigned resource";
char szCmResourceTypeSubAllocateFrom [] = "SubAllocated From";
char szCmResourceTypeConfigData [] = "Config Data";
char szCmResourceTypeDevicePrivate [] = "Device Private";
char szCmResourceTypePcCardConfig [] = "PcCard Config";
char szCmResourceTypeMfCardConfig [] = "MfCard Config";
char szCmResourceTypeUnknown [] = "Unknown Type value";
typedef struct tagTYPE_DESCRIPTION
{
UCHAR uType; // Type code
LPSTR szName; // Type name
} TYPE_DESCRIPTION;
TYPE_DESCRIPTION Types[] =
{
{ CmResourceTypeNull, szCmResourceTypeNull },
{ CmResourceTypePort, szCmResourceTypePort },
{ CmResourceTypeInterrupt, szCmResourceTypeInterrupt },
{ CmResourceTypeMemory, szCmResourceTypeMemory },
{ CmResourceTypeDma, szCmResourceTypeDma },
{ CmResourceTypeDeviceSpecific, szCmResourceTypeDeviceSpecific },
{ CmResourceTypeBusNumber, szCmResourceTypeBusNumber },
{ CmResourceTypeAssignedResource, szCmResourceTypeAssignedResource },
{ CmResourceTypeSubAllocateFrom, szCmResourceTypeSubAllocateFrom },
{ CmResourceTypeConfigData, szCmResourceTypeConfigData },
{ CmResourceTypeDevicePrivate, szCmResourceTypeDevicePrivate },
{ CmResourceTypePcCardConfig, szCmResourceTypePcCardConfig },
{ CmResourceTypeMfCardConfig, szCmResourceTypeMfCardConfig },
{ 0, NULL }
};
#define NUM_TYPES (sizeof(Types) /sizeof(Types[0]))
//--------------------------------- Share ------------------------------------
char szCmResourceShareUndetermined [] = "Undetermined";
char szCmResourceShareDeviceExclusive [] = "Device exclusive";
char szCmResourceShareDriverExclusive [] = "Driver exclusive";
char szCmResourceShareShared [] = "Shared";
char szCmResourceShareUnknown [] = "Unknown ShareDisposition value";
typedef struct tagSHARE_DESCRIPTION
{
CM_SHARE_DISPOSITION Type; // Share code
LPSTR szName; // Share name
} SHARE_DESCRIPTION;
SHARE_DESCRIPTION Shares[] =
{
{ CmResourceShareUndetermined, szCmResourceShareUndetermined },
{ CmResourceShareDeviceExclusive, szCmResourceShareDeviceExclusive },
{ CmResourceShareDriverExclusive, szCmResourceShareDriverExclusive },
{ CmResourceShareShared, szCmResourceShareShared },
{ (CM_SHARE_DISPOSITION)0, NULL }
};
#define NUM_SHARES (sizeof(Shares) /sizeof(Shares[0]))
//--------------------------------- Flags ------------------------------------
char szCM_RESOURCE_PORT_MEMORY [] = "Mapped in memory address space";
char szCM_RESOURCE_PORT_IO [] = "Mapped in I/O address space";
char szCM_RESOURCE_PORT_FORWARD_FIRST_256_OF_EACH_1024 [] = "Forward First 256 of Each 1024 (Obsolete)";
char szCM_RESOURCE_PORT_10_BIT_DECODE [] = "10-bit Decode";
char szCM_RESOURCE_PORT_12_BIT_DECODE [] = "12-bit Decode";
char szCM_RESOURCE_PORT_16_BIT_DECODE [] = "16-bit Decode";
char szCM_RESOURCE_PORT_POSITIVE_DECODE [] = "Positive Decode";
char szCM_RESOURCE_PORT_PASSIVE_DECODE [] = "Passive Decode";
char szCM_RESOURCE_MEMORY_READ_WRITE [] = "Read/Write";
char szCM_RESOURCE_MEMORY_READ_ONLY [] = "Read only";
char szCM_RESOURCE_MEMORY_WRITE_ONLY [] = "Write only";
char szCM_RESOURCE_MEMORY_PREFETCHABLE [] = "Prefetchable";
char szCM_RESOURCE_MEMORY_COMBINEDWRITE [] = "Combined Write";
char szCM_RESOURCE_MEMORY_24 [] = "Memory 24";
char szCM_RESOURCE_MEMORY_CACHEABLE [] = "Cacheable";
char szCM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE [] = "Level sensitive (PCI-type)";
char szCM_RESOURCE_INTERRUPT_LATCHED [] = "Latched (ISA-type)";
char szCM_RESOURCE_DMA_8 [] = "DMA 8";
char szCM_RESOURCE_DMA_16 [] = "DMA 16";
char szCM_RESOURCE_DMA_32 [] = "DMA 32";
char szCM_RESOURCE_DMA_8_AND_16 [] = "DMA 8 & 16";
char szCM_RESOURCE_DMA_BUS_MASTER [] = "DMA Bus Master";
char szCM_RESOURCE_DMA_TYPE_A [] = "Type A";
char szCM_RESOURCE_DMA_TYPE_B [] = "Type B";
char szCM_RESOURCE_DMA_TYPE_F [] = "Type F";
char szCM_RESOURCE_FLAGS_UNKNOWN [] = "Unknown flags value";
typedef struct tagFLAG_DESCRIPTION
{
CM_RESOURCE_TYPE Type; // Type of resource
UCHAR uFlags; // Value of flags
LPSTR szName; // Flag description
} FLAG_DESCRIPTION;
FLAG_DESCRIPTION Flags[] =
{
{ CmResourceTypePort, CM_RESOURCE_PORT_MEMORY, szCM_RESOURCE_PORT_MEMORY },
{ CmResourceTypePort, CM_RESOURCE_PORT_IO, szCM_RESOURCE_PORT_IO },
{ CmResourceTypePort, CM_RESOURCE_PORT_10_BIT_DECODE, szCM_RESOURCE_PORT_10_BIT_DECODE },
{ CmResourceTypePort, CM_RESOURCE_PORT_12_BIT_DECODE, szCM_RESOURCE_PORT_12_BIT_DECODE },
{ CmResourceTypePort, CM_RESOURCE_PORT_16_BIT_DECODE, szCM_RESOURCE_PORT_16_BIT_DECODE },
{ CmResourceTypePort, CM_RESOURCE_PORT_POSITIVE_DECODE, szCM_RESOURCE_PORT_POSITIVE_DECODE },
{ CmResourceTypePort, CM_RESOURCE_PORT_PASSIVE_DECODE, szCM_RESOURCE_PORT_PASSIVE_DECODE },
{ CmResourceTypePort, CM_RESOURCE_PORT_FORWARD_FIRST_256_OF_EACH_1024,
szCM_RESOURCE_PORT_FORWARD_FIRST_256_OF_EACH_1024 },
{ CmResourceTypeMemory, CM_RESOURCE_MEMORY_READ_WRITE, szCM_RESOURCE_MEMORY_READ_WRITE },
{ CmResourceTypeMemory, CM_RESOURCE_MEMORY_READ_ONLY, szCM_RESOURCE_MEMORY_READ_ONLY },
{ CmResourceTypeMemory, CM_RESOURCE_MEMORY_WRITE_ONLY, szCM_RESOURCE_MEMORY_WRITE_ONLY },
{ CmResourceTypeMemory, CM_RESOURCE_MEMORY_PREFETCHABLE, szCM_RESOURCE_MEMORY_PREFETCHABLE },
{ CmResourceTypeMemory, CM_RESOURCE_MEMORY_COMBINEDWRITE, szCM_RESOURCE_MEMORY_COMBINEDWRITE },
{ CmResourceTypeMemory, CM_RESOURCE_MEMORY_24, szCM_RESOURCE_MEMORY_24 },
{ CmResourceTypeMemory, CM_RESOURCE_MEMORY_CACHEABLE, szCM_RESOURCE_MEMORY_CACHEABLE },
{ CmResourceTypeInterrupt, CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE, szCM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE},
{ CmResourceTypeInterrupt, CM_RESOURCE_INTERRUPT_LATCHED, szCM_RESOURCE_INTERRUPT_LATCHED },
{ CmResourceTypeDma, CM_RESOURCE_DMA_8, szCM_RESOURCE_DMA_8 },
{ CmResourceTypeDma, CM_RESOURCE_DMA_16, szCM_RESOURCE_DMA_16 },
{ CmResourceTypeDma, CM_RESOURCE_DMA_32, szCM_RESOURCE_DMA_32 },
{ CmResourceTypeDma, CM_RESOURCE_DMA_BUS_MASTER, szCM_RESOURCE_DMA_BUS_MASTER },
{ CmResourceTypeDma, CM_RESOURCE_DMA_TYPE_A, szCM_RESOURCE_DMA_TYPE_A },
{ CmResourceTypeDma, CM_RESOURCE_DMA_TYPE_B, szCM_RESOURCE_DMA_TYPE_B },
{ CmResourceTypeDma, CM_RESOURCE_DMA_TYPE_F, szCM_RESOURCE_DMA_TYPE_F },
{ CmResourceTypeNull, 0, NULL }
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -