/* Get Allocate summary information structure by caller address. */
MEMORY_PROFILE_ALLOC_SUMMARY_INFO_DATA* GetAllocSummaryInfoByCallerAddress(IN PHYSICAL_ADDRESS CallerAddress, IN MEMORY_PROFILE_DRIVER_SUMMARY_INFO_DATA *DriverSummaryInfoData)
/* Get Allocate summary information structure by caller address. */
MEMORY_PROFILE_ALLOC_SUMMARY_INFO_DATA* GetAllocSummaryInfoByCallerAddress(IN PHYSICAL_ADDRESS CallerAddress, IN MEMORY_PROFILE_DRIVER_SUMMARY_INFO_DATA *DriverSummaryInfoData)
{
  LIST_ENTRY                              *AllocSummaryInfoList;
  LIST_ENTRY                              *AllocSummaryLink;
  MEMORY_PROFILE_ALLOC_SUMMARY_INFO       *AllocSummaryInfo;
  MEMORY_PROFILE_ALLOC_SUMMARY_INFO_DATA  *AllocSummaryInfoData;
  AllocSummaryInfoList = DriverSummaryInfoData->AllocSummaryInfoList;
  for (AllocSummaryLink = AllocSummaryInfoList->ForwardLink;
       AllocSummaryLink != AllocSummaryInfoList;
       AllocSummaryLink = AllocSummaryLink->ForwardLink)
  {
    AllocSummaryInfoData = CR (
                             AllocSummaryLink,
                             MEMORY_PROFILE_ALLOC_SUMMARY_INFO_DATA,
                             Link,
                             MEMORY_PROFILE_ALLOC_SUMMARY_INFO_SIGNATURE
                             );
    AllocSummaryInfo = &AllocSummaryInfoData->AllocSummaryInfo;
    if (AllocSummaryInfo->CallerAddress == CallerAddress) {
      return AllocSummaryInfoData;
    }
  }
  return NULL;
}