EtwpAllocatePayloadFilterData
NTSTATUS __stdcall EtwpAllocatePayloadFilterData(
GUID *ProviderGuid,
EVENT_FILTER_DESCRIPTOR *FilterData,
_ETW_PAYLOAD_FILTER **PayloadFilter){
unsigned int Size;
NTSTATUS result;
NTSTATUS v7;
VOID *PoolWithTag;
_ETW_PAYLOAD_FILTER *v9;
UINT64 v10;
UINT8 *Ptr;
Size = FilterData->Size;
result = EtwpValidatePayloadFilter(ProviderGuid, (_AGGREGATED_PAYLOAD_FILTER *)FilterData->Ptr, Size);
v7 = result;
if( result >= 0 )
{
PoolWithTag = ExAllocatePoolWithTag(NonPagedPoolNx, Size + 8, 0x46777445ui64);
v9 = (_ETW_PAYLOAD_FILTER *)PoolWithTag;
if( PoolWithTag )
{
v10 = FilterData->Size;
Ptr = (UINT8 *)FilterData->Ptr;
*(_DWORD *)PoolWithTag = 1;
memmove((UINT8 *)PoolWithTag + 8, Ptr, v10);
result = v7;
*PayloadFilter = v9;
}
else
{
return -1073741801;
}
}
return result;
}Referenced by:
EtwpAllocateFilter