FsRtlInitializeSmssEvent
NTSTATUS __stdcall FsRtlInitializeSmssEvent(){
NTSTATUS result;
int v1;
int v2[2];
const wchar_t *v3;
INT64 v4[3];
int v5;
int v6;
__int128 v7;
VOID *Handle;
PVOID Object;
Handle = 0i64;
v2[1] = 0;
v6 = 0;
v4[1] = 0i64;
v3 = L"\\Device\\VolumesSafeForWriteAccess";
v2[0] = 4456514;
v4[2] = (INT64)v2;
v4[0] = 48i64;
v5 = 592;
v7 = 0i64;
result = NtCreateEvent((UINT64)&Handle, 0x1F0003ui64, (INT64)v4, 0i64, 0);
if( result >= 0 )
{
Object = 0i64;
v1 = ObReferenceObjectByHandle(Handle, 0x100000ui64, 0i64, 0, &Object, 0i64);
NtClose((UINT64)Handle);
if( v1 < 0 )
{
return v1;
}
else
{
SmssEventWorkItem.List.Flink = 0i64;
SmssEventWorkItem.WorkerRoutine = (void(__fastcall *)(void *))FsRtlWaitForSmssEvent;
SmssEventWorkItem.Parameter = Object;
ExQueueWorkItem(&SmssEventWorkItem, DelayedWorkQueue);
return 0;
}
}
return result;
}Referenced by:
FsRtlInitSystem