EtwpInitializeRegistration
NTSTATUS __stdcall EtwpInitializeRegistration(){
_UNICODE_STRING DestinationString;
_OBJECT_TYPE_INITIALIZER ObjectTypeInitializer;
DestinationString = 0i64;
KiInitializeMutant((_KMUTANT *)((char *)&ExBootDevicesRemovedEvent + 1376), 0, 1u);
*(&ExBootDevicesRemovedEvent + 170) = 0i64;
*(&ExBootDevicesRemovedEvent + 169) = (char *)&ExBootDevicesRemovedEvent + 1344;
*(&ExBootDevicesRemovedEvent + 168) = (char *)&ExBootDevicesRemovedEvent + 1344;
memset(&ObjectTypeInitializer, 0i64, sizeof(ObjectTypeInitializer));
ObjectTypeInitializer._bf_0 |= 0x18u;
ObjectTypeInitializer.OpenProcedure = (int(__fastcall *)(_OB_OPEN_REASON, char, _EPROCESS *, void *, unsigned int *, unsigned int))EtwpOpenRealTimeConnectionObject;
ObjectTypeInitializer.Length = 120;
ObjectTypeInitializer.CloseProcedure = (void(__fastcall *)(_EPROCESS *, void *, unsigned __int64, unsigned __int64))EtwpCloseRegistrationObject;
ObjectTypeInitializer.InvalidAttributes = 256;
ObjectTypeInitializer.DeleteProcedure = (void(__fastcall *)(void *))EtwpDeleteRegistrationObject;
ObjectTypeInitializer.GenericMapping = EtwpGenericMapping;
ObjectTypeInitializer.ValidAccessMask = 2052;
ObjectTypeInitializer.PoolType = NonPagedPoolNx;
ObjectTypeInitializer.DefaultNonPagedPoolCharge = 112;
RtlInitUnicodeString(&DestinationString, L"EtwRegistration");
return ObCreateObjectType(&DestinationString, &ObjectTypeInitializer, 0i64, &EtwpRegistrationObjectType);
}Referenced by:
EtwpInitialize