PiDmGetObject
INT64 __fastcall PiDmGetObject(INT64 a1, WCHAR *a2, INT64 *a3){
unsigned int v5;
struct _ERESOURCE *ObjectManagerForObjectType;
_ETHREAD *CurrentThread;
BOOL v8;
INT64 v9;
v5 = 0;
ObjectManagerForObjectType = (struct _ERESOURCE *)PiDmGetObjectManagerForObjectType(a1);
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--*((_WORD *)CurrentThread + 242);
LOBYTE(v8) = 1;
ExAcquireResourceSharedLite(ObjectManagerForObjectType, v8);
v9 = PiDmLookupObject((INT64)ObjectManagerForObjectType, a2);
*a3 = v9;
if( v9 )
_InterlockedIncrement((volatile signed __int32 *)(v9 + 8));
else
v5 = -1073741772;
ExReleaseResourceLite(ObjectManagerForObjectType);
KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
return v5;
}Referenced by:
IopProcessSetInterfaceState
IopRegisterDeviceInterface
PiControlGetDeviceInterfaceEnabled
PiDmCacheDataEncode
PiDmGetObjectConstraintList
PiDmGetReferencedObjectFromProperty
PiDmObjectGetAggregatedBooleanPropertyData
PiDmObjectGetCachedObjectProperty
PiDmObjectGetCachedObjectPropertyData
PiDmObjectGetCachedObjectReference
PiDmObjectProcessPropertyChange
PiDmObjectUpdateCachedObjectProperty
PiPnpRtlApplyMandatoryDeviceContainerFilters
PiPnpRtlCmActionCallback
PiPnpRtlEnsureObjectCached
PiPnpRtlGatherContainerRemoveInfo
PiPnpRtlGatherInstallerClassChangeInfo
PiPnpRtlGatherInterfaceDeleteInfo
PiPnpRtlGatherPanelRemoveInfo
PiPnpRtlObjectEventCreate
PiUEventHandleRegistration