IopQueryDockRemovalInterface
INT64 __stdcall IopQueryDockRemovalInterface(DEVICE_OBJECT *DeviceObject, DOCK_INTERFACE **DockInterface){
DOCK_INTERFACE *PoolWithTag;
DOCK_INTERFACE *v5;
NTSTATUS v7;
INT64 result[2];
int v9;
DOCK_INTERFACE *v10;
__int64 v11;
GUID v12;
v12 = GUID_DOCK_INTERFACE;
PoolWithTag = (DOCK_INTERFACE *)ExAllocatePoolWithTag(PagedPool, 0x30ui64, 0x20207050ui64);
v5 = PoolWithTag;
if( !PoolWithTag )
return 3221225626i64;
*(_OWORD *)&PoolWithTag->Size = 0i64;
*(_OWORD *)&PoolWithTag->InterfaceReference = 0i64;
*(_OWORD *)&PoolWithTag->ProfileDepartureSetMode = 0i64;
PoolWithTag->Size = 48;
memset((INT64)result, 0i64);
LOWORD(result[0]) = 2075;
result[1] = (INT64)&v12;
v9 = 48;
v10 = v5;
v11 = 0i64;
v7 = IopSynchronousCall(DeviceObject, (IO_STACK_LOCATION *)result, 3221225659i64, 0i64, 0i64);
if( v7 < 0 )
ExFreePoolWithTag(v5, 0);
else
*DockInterface = v5;
return(unsigned int)v7;
}Referenced by:
PnpProcessQueryRemoveAndEject