PnpCreateObjectDispatch
__int64 __fastcall PnpCreateObjectDispatch(
WCHAR *ValueName,
UINT64 ValueType,
VOID *ValueData,
int a4,
__int64 a5,
__int64 a6,
int a7){
int v8;
int ObjectDispatchCallback;
int v12;
char v13;
VOID *v15;
void *v16[2];
__int64 Context[8];
v16[0] = 0i64;
v8 = (int)ValueData;
memset(Context, 0i64, sizeof(Context));
if( (_WORD)a7 )
{
return(unsigned int)-1073741811;
}
else
{
ObjectDispatchCallback = PnpCtxGetObjectDispatchCallback((__int64)ValueName, v8, v16);
if( ObjectDispatchCallback >= 0 )
{
if( v16[0] )
{
LODWORD(Context[0]) = a4;
HIDWORD(Context[2]) = v12;
ObjectDispatchCallback = ((__int64(__fastcall *)(WCHAR *, UINT64, _QWORD, __int64))v16[0])(
ValueName,
ValueType,
(unsigned int)v8,
3i64);
if( ObjectDispatchCallback >= 0 )
{
v13 = Context[2];
*(_QWORD *)a5 = Context[1];
*(_BYTE *)a6 = v13;
if( v13 )
{
if( v8 >= 7 )
PnpObjectRaiseCreateEvent(ValueName, ValueType, (VOID *)(unsigned int)v8, *(_QWORD *)a5, Context, v15);
}
}
}
else
{
return(unsigned int)-1073741822;
}
}
}
return(unsigned int)ObjectDispatchCallback;
}Referenced by:
PnpCreateObject