windows-nt/Source/XPSP1/NT/drivers/wdm/bda/ipsink/ndis/mem.c
2020-09-26 16:20:57 +08:00

154 lines
2.9 KiB
C

/////////////////////////////////////////////////////////////////////////////
//
//
// Copyright (c) 1996, 1997 Microsoft Corporation
//
//
// Module Name:
// test.c
//
// Abstract:
//
// This file is a test to find out if dual binding to NDIS and KS works
//
// Author:
//
// P Porzuczek
//
// Environment:
//
// Revision History:
//
//
//////////////////////////////////////////////////////////////////////////////
#include <memory.h>
#include <ndis.h>
NDIS_PHYSICAL_ADDRESS HighestAcceptableMax = NDIS_PHYSICAL_ADDRESS_CONST(-1,-1);
//////////////////////////////////////////////////////////////////////////////
VOID
FreeMemory (
PVOID pvToFree,
ULONG ulSize
)
//////////////////////////////////////////////////////////////////////////////
{
if (pvToFree != NULL)
{
NdisFreeMemory(pvToFree, ulSize, 0);
}
return;
}
//////////////////////////////////////////////////////////////////////////////
NTSTATUS
AllocateMemory (
PVOID *ppvAllocated,
ULONG ulcbSize
)
//////////////////////////////////////////////////////////////////////////////
{
PVOID pvBlock;
NDIS_STATUS nsResult = NDIS_STATUS_SUCCESS;
nsResult = NdisAllocateMemory (&pvBlock, ulcbSize, 0, HighestAcceptableMax);
if (!pvBlock)
{
nsResult = NDIS_STATUS_RESOURCES;
}
if (nsResult != NDIS_STATUS_SUCCESS)
{
return nsResult;
}
NdisZeroMemory( pvBlock, ulcbSize);
*ppvAllocated = pvBlock;
return NDIS_STATUS_SUCCESS;
}
//////////////////////////////////////////////////////////////////////////////
ULONG
MyStrLen (
PUCHAR p
)
//////////////////////////////////////////////////////////////////////////////
{
ULONG ul = 0;
while (*p++) ul++;
return ul;
}
//////////////////////////////////////////////////////////////////////////////
VOID
MyStrCat (
PUCHAR pTarget,
PUCHAR pSource
)
//////////////////////////////////////////////////////////////////////////////
{
PUCHAR p = pTarget + MyStrLen (pTarget);
NdisMoveMemory (p, pSource, MyStrLen (pSource));
return;
}
//////////////////////////////////////////////////////////////////////////////
PUCHAR
MyUlToA (
ULONG dwValue,
PUCHAR pszStr,
ULONG dwRadix
)
//////////////////////////////////////////////////////////////////////////////
{
PUCHAR psz;
char ch;
for (psz = pszStr; dwValue != 0; dwValue/=dwRadix, psz++)
{
ch = (char)(dwValue%dwRadix);
if (ch <= 9)
{
*psz = (char)(ch + '0');
}
else
{
*psz = (char)(ch - 10 + 'A');
}
}
if (psz == pszStr)
{
pszStr[0] = '0';
pszStr[1] = '\0';
}
else
{
PUCHAR psz2;
*psz = '\0';
for (psz2 = pszStr, psz--; psz2 < psz; psz2++, psz--)
{
ch = *psz2;
*psz2 = *psz;
*psz = ch;
}
}
return pszStr;
}