📄 deb_res.cpp
字号:
pResourceList->Revision, pResourceList->Count);
for (ULONG i = 0; i < pResourceList->Count; i++)
{
char szTemp[10];
_itoa(i, (LPSTR)&szTemp[0], 10);
OutIoResourceDescriptor(&pResourceList->Descriptors[i], szTemp);
} // for (ULONG i = 0; i < ...
}
//****************************************************************************
// --- OutIoResourceRequirementList ---
//
// Purpose: Print an IO_RESOURCE_REQUIREMENTS_LIST to the serial monitor
// Input: PIO_RESOURCE_REQUIREMENTS_LIST pResourceRequirementsList - Pointer
// to the resource requirements list
// LPCSTR szDescription - Description
// Output: none
// Written: by Alexei A. Piatetsky 7/19/96
//****************************************************************************
void OutIoResourceRequirementList(PIO_RESOURCE_REQUIREMENTS_LIST pResourceRequirementsList,
LPCSTR szDescription)
{
STRACE_PNPDRV("IO Resource Requirements List %s:\n"
" Interface: %s\n",
szDescription,
RetInterfaceMsg((INTERFACE_TYPE)
pResourceRequirementsList->InterfaceType));
STRACE_PNPDRV(" Bus Number: %d\n"
" Slot Number: %d\n"
" Alternative Lists: %d\n",
pResourceRequirementsList->BusNumber,
pResourceRequirementsList->SlotNumber,
pResourceRequirementsList->AlternativeLists);
LPSTR pCurList = (LPSTR)&(pResourceRequirementsList->List[0]);
for (ULONG i = 0; i < pResourceRequirementsList->AlternativeLists; i++)
{
char szTemp[10];
_itoa(i, (LPSTR)&szTemp[0], 10);
OutIoResourceList((PIO_RESOURCE_LIST)pCurList, szTemp);
ULONG uNumDescriptors = ((PIO_RESOURCE_LIST)pCurList)->Count;
pCurList += sizeof(IO_RESOURCE_LIST);
if (uNumDescriptors >= 1)
pCurList += sizeof(IO_RESOURCE_DESCRIPTOR) * (uNumDescriptors - 1);
} // for (ULONG i = 0; i < ...
}
//****************************************************************************
// --- OutCMPartialResourceDescriptor ---
//
// Purpose: Print an CM_PARTIAL_RESOURCE_DESCRIPTOR to the serial monitor
// Input: PCM_PARTIAL_RESOURCE_DESCRIPTOR pDecs - Pointer to the
// partial resource
// descriptor
// LPCSTR szDescription - Description
// Output: none
// Written: by Alexei A. Piatetsky 7/19/96
//****************************************************************************
void OutCmPartialResourceDescriptor(PCM_PARTIAL_RESOURCE_DESCRIPTOR pDesc,
LPCSTR szDescription)
{
STRACE_PNPDRV(" CM Partial Resource Descriptor %s:\n", szDescription);
STRACE_PNPDRV(" Type: %s (%Xh)\n",
RetResourceTypeMsg((CM_RESOURCE_TYPE)pDesc->Type), pDesc->Type);
STRACE_PNPDRV(" Share disposition: %s\n",
RetResourceShareMsg((CM_SHARE_DISPOSITION)pDesc->ShareDisposition));
STRACE_PNPDRV(" Flags: %s (%Xh)\n",
RetResourceFlagMsg((CM_RESOURCE_TYPE)pDesc->Type, pDesc->Flags),
pDesc->Flags);
//--------------------------- I/O Port resource ------------------------------
if (pDesc->Type == CmResourceTypePort)
{
STRACE_PNPDRV(" Start: %08lX\n"
" Length: %08lX\n",
pDesc->u.Port.Start.LowPart,
pDesc->u.Port.Length);
} // if (pDesc->Type == ...
//---------------------------- Memory resource -------------------------------
else if (pDesc->Type == CmResourceTypeMemory)
{
STRACE_PNPDRV(" Start: %08lX\n"
" Length: %08lX\n",
pDesc->u.Memory.Start.LowPart,
pDesc->u.Memory.Length);
} // else if (pDesc->Type == ...
//-------------------------- Interrupt resource ------------------------------
else if (pDesc->Type == CmResourceTypeInterrupt)
{
STRACE_PNPDRV(" Level: %08lX\n"
" Vector: %08lX\n"
" Affinity: %08lX\n",
pDesc->u.Interrupt.Level,
pDesc->u.Interrupt.Vector,
pDesc->u.Interrupt.Affinity);
} // else if (pDesc->Type == ...
//----------------------------- DMA resource ---------------------------------
else if (pDesc->Type == CmResourceTypeDma)
{
STRACE_PNPDRV(" Channel: %08lX\n"
" Port: %08lX\n",
pDesc->u.Dma.Channel,
pDesc->u.Dma.Port);
} // else if (pDesc->Type == ...
//---------------------------- Device Private --------------------------------
else if (pDesc->Type == CmResourceTypeDevicePrivate)
{
STRACE_PNPDRV(" Data[0]: %08lX\n"
" Data[1]: %08lX\n"
" Data[2]: %08lX\n",
pDesc->u.DevicePrivate.Data[0],
pDesc->u.DevicePrivate.Data[1],
pDesc->u.DevicePrivate.Data[2]);
} // else if (pDesc->Type == ...
//------------------------------ Bus Number ----------------------------------
else if (pDesc->Type == CmResourceTypeBusNumber)
{
STRACE_PNPDRV(" Start: %08lX\n"
" Length: %08lX\n",
pDesc->u.BusNumber.Start,
pDesc->u.BusNumber.Length);
} // else if (pDesc->Type == ...
//---------------------------- Device specific -------------------------------
else if (pDesc->Type == CmResourceTypeDeviceSpecific)
{
STRACE_PNPDRV(" DataSize: %08lX\n",
pDesc->u.DeviceSpecificData.DataSize);
} // else if (pDesc->Type == ...
}
//****************************************************************************
// --- OutCmPartialResourceList ---
//
// Purpose: Print an CM_PARTIAL_RESOURCE_LIST to the serial monitor
// Input: PCM_PARTIAL_RESOURCE_LIST pList - Pointer to list
// LPCSTR szDescription - Description
// Output: none
// Written: by Alexei A. Piatetsky 7/19/96
//****************************************************************************
void OutCmPartialResourceList(PCM_PARTIAL_RESOURCE_LIST pList,
LPCSTR szDescription)
{
STRACE_PNPDRV(" CM Partial Resource List %s:\n", szDescription);
STRACE_PNPDRV(" Version: %d\n"
" Revision: %d\n"
" Count: %d\n",
pList->Version, pList->Revision, pList->Count);
for (ULONG i = 0; i < pList->Count; i++)
{
char szTemp[10];
_itoa(i, (LPSTR)&szTemp[0], 10);
OutCmPartialResourceDescriptor(&pList->PartialDescriptors[i], szTemp);
} // for (ULONG i = 0; i < ...
}
//****************************************************************************
// --- OutCmFullResourceDescriptor ---
//
// Purpose: Print an CM_FULL_RESOURCE_DESCRIPTOR to the serial monitor
// Input: PCM_FULL_RESOURCE_DESCRIPTOR pDesc - Pointer to descriptor
// LPCSTR szDescription - Description
// Output: none
// Written: by Alexei A. Piatetsky 7/19/96
//****************************************************************************
void OutCmFullResourceDescriptor(PCM_FULL_RESOURCE_DESCRIPTOR pDesc,
LPCSTR szDescription)
{
STRACE_PNPDRV(" CM Full Resource Descriptor %s:\n"
" Interface: %s\n"
" Bus number: %d\n",
szDescription,
RetInterfaceMsg(pDesc->InterfaceType),
pDesc->BusNumber);
OutCmPartialResourceList(&pDesc->PartialResourceList,
"Embedded to CM_FULL_RESOURCE_DESCRIPTOR");
}
//****************************************************************************
// --- OutCmResourceList ---
//
// Purpose: Print a CM_RESOURCE_LIST to the serial monitor
// Input: PCM_RESOURCE_LIST pList - Pointer to the list
// LPCSTR szDescription - List description
// Output: none
// Written: by Alexei A. Piatetsky 7/19/96
//****************************************************************************
void OutCmResourceList(PCM_RESOURCE_LIST pList, LPCSTR szDescription)
{
STRACE_PNPDRV("CM Resource List %s:\n"
"Full descriptor count: %d\n",
szDescription, pList->Count);
LPSTR pCurList = (LPSTR)&(pList->List[0]);
for (ULONG i = 0; i < pList->Count; i++)
{
char szTemp[10];
_itoa(i, (LPSTR)&szTemp[0], 10);
OutCmFullResourceDescriptor((PCM_FULL_RESOURCE_DESCRIPTOR)pCurList, szTemp);
ULONG uNumDesc =
((PCM_FULL_RESOURCE_DESCRIPTOR)pCurList)->PartialResourceList.Count;
pCurList += sizeof(CM_FULL_RESOURCE_DESCRIPTOR);
if (uNumDesc >= 1)
pCurList += sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR) * (uNumDesc - 1);
} // for (ULONG i = 0; i < ...
}
#endif // #if DBG
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -