PiSwStartCreate
INT64 __stdcall PiSwStartCreate(
WCHAR *ParentDeviceInstanceId,
WCHAR *InstanceId,
WCHAR *HardwareIds,
WCHAR *CompatibleIds,
GUID *ContainerId,
UINT64 CapabilityFlags,
WCHAR *DeviceDescription,
WCHAR *DeviceLocation,
PVOID SecurityDescriptor,
UINT64 SecurityDescriptorSize,
DEVPROPERTY *Properties,
UINT64 PropertyCount){
GUID *v15;
INT64 v16;
INT64 result[3];
int v18;
WCHAR *v19;
int v20;
GUID *v21;
UINT64 v22;
int v23;
WCHAR *v24;
PVOID v25;
int v26;
UINT64 v27;
int v28;
UINT64 v29;
UINT64 MultiSzLength;
int v31;
MultiSzLength = (UINT64)ParentDeviceInstanceId;
memset((INT64)result, 0i64);
MultiSzLength = 0i64;
result[0] = (INT64)L"DRIVERENUM";
v22 = CapabilityFlags;
v23 = (int)DeviceDescription;
v24 = DeviceLocation;
v25 = SecurityDescriptor;
v26 = (int)Properties;
v27 = SecurityDescriptorSize;
v28 = v31;
result[1] = (INT64)InstanceId;
v15 = ContainerId;
result[2] = (INT64)HardwareIds;
v29 = PropertyCount;
v19 = CompatibleIds;
v21 = ContainerId;
if( CompatibleIds )
{
LODWORD(v16) = PnpGetMultiSzLength(CompatibleIds, 0x400ui64, &MultiSzLength);
if( (int)v16 < 0 )
return v16;
v18 = MultiSzLength;
}
if( v15 )
{
LODWORD(v16) = PnpGetMultiSzLength((PWCHAR)v15, 0x400ui64, &MultiSzLength);
if( (int)v16 < 0 )
return v16;
v20 = MultiSzLength;
}
return PiSwIrpStartCreateWorker((INT64)result, 0i64);
}Referenced by:
PiCreateDriverSwDeviceCallback