Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

156 lines
3.2 KiB

/////////////////////////////////////////////////////////////////////////////
//
//
// 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>
#include <strsafe.h>
#define MAX_STR_LEN 1024
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
)
//////////////////////////////////////////////////////////////////////////////
{
SIZE_T sizet = 0;
if(StringCbLength(p,MAX_STR_LEN,&sizet)!=S_OK)
return (0);
return (ULONG)sizet;
}
//////////////////////////////////////////////////////////////////////////////
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;
}