AdtpBuildHexInt64String
INT64 __fastcall AdtpBuildHexInt64String(
UINT64 *Value,
_UNICODE_STRING *pResultantString,
_EVENT_DATA_DESCRIPTOR *pEtwDataDescriptor,
WCHAR *pszStringBuffer,
UINT64 *pdwCurBufferIndex,
UINT8 *pFreeWhenDone){
WCHAR *PoolWithTag;
wchar_t *v8;
INT64 result;
__int64 v10;
PoolWithTag = (WCHAR *)ExAllocatePoolWithTag(PagedPool, 0x26ui64, 0x6B416553ui64);
v8 = PoolWithTag;
if( !PoolWithTag )
return 3221225495i64;
*pFreeWhenDone = 1;
if( StringCchPrintfW(PoolWithTag, 0x13ui64, (WCHAR *)L"0x%I64X") >= 0 )
{
v10 = -1i64;
do
++v10;
while( v8[v10] );
pResultantString->MaximumLength = 38;
pResultantString->Length = 2 * v10;
result = 0i64;
pResultantString->Buffer = v8;
}
else
{
if( *pFreeWhenDone == 1 )
{
ExFreePoolWithTag(v8, 0);
*pFreeWhenDone = 0;
}
return 3221225485i64;
}
return result;
}Referenced by:
AdtpBuildRegistryValueString