ExAcquireResourceSharedLite

NTSTATUS __fastcall ExAcquireResourceSharedLite(UINT64 a1, INT8 a2){
  unsigned __int8 v4; 
  __int16 v5; 
  unsigned __int8 CurrentIrql; 
  _ETHREAD *CurrentThread; 
  UINT8 *OwnerEntryForLegacyShim; 
  unsigned __int8 v10; 

  v4 = (a2 == 0) + 1;
  if( (*(_WORD *)(a1 + 26) & 0x41) == 1 )
    KeBugCheckEx(0x1C6u, (PVOID)0xF, (PVOID)a1, 0i64, 0i64);
  v5 = *(_WORD *)(a1 + 26) & 1;
  if( v5 )
  {
    CurrentIrql = KeGetCurrentIrql();
    CurrentThread = (_ETHREAD *)KeGetCurrentThread();
    if( CurrentIrql > v4 )
      KeBugCheckEx(0x1C6u, 0i64, (PVOID)CurrentIrql, (PVOID)v4, 0i64);
    if( CurrentIrql >= 2u && (KeGetPcr()->Prcb._bf_0 & 0x10001) != 0 )
      KeBugCheckEx(0x1C6u, (PVOID)5, 0i64, 0i64, 0i64);
    if( (CurrentThread->Tcb.ApcState.InProgressFlags & 2) != 0 )
      KeBugCheckEx(0x1C6u, (PVOID)6, 0i64, 0i64, 0i64);
    if( !CurrentIrql && (CurrentThread->Tcb._bf_0 & 0x400) == 0 && !CurrentThread->Tcb.WaitBlock[3].SpareLong )
      KeBugCheckEx(0x1C6u, (PVOID)7, 0i64, 0i64, 0i64);
  }
  if( !v5 )
    return ExpAcquireResourceSharedLite((VOID *)a1, a2);
  OwnerEntryForLegacyShim = ExpAllocateOwnerEntryForLegacyShim();
  v10 = ExAcquireFastResourceShared(a1, (ULONG_PTR)OwnerEntryForLegacyShim);
  if( !v10 )
    ExFreePoolWithTag(OwnerEntryForLegacyShim, 0);
  return v10;
}

Referenced by:

AlpcpExposeTokenAttribute
CmEnumerateValueKey
CmpCheckOpenAccessOnKeyBody
CmpLockRegistry
ExpGetSystemFirmwareTableInformation
FsRtlAcquireFileForCcFlushEx
FsRtlCopyRead
FsRtlCopyWrite
FsRtlMdlReadDev
FsRtlPrepareMdlWriteDev
IoCreateDriver
IoFillTriageDumpBuffer
IopCreateSecurityCheck
IopGetSetSecurityObject
IopInitializeBootLogging
IopInvalidateVolumesForDevice
IopMountVolume
IopParseDevice
IopReleaseDeviceResources
IopSetDeviceSecurityDescriptor
IopWriteAllocatedResourcesToRegistry
KeCapturePersistentThreadState
KiTraceLogNmiCallback
LdrpKrnGetDataTableEntry
McGenControlCallbackV2
MiDeleteBootRange
MiLogPinDriverAddress
MiLookupDataTableEntry
MmEnumerateSystemImages
MmGetSectionRange
MmIsDriverVerifyingByAddress
MmVerifyCallbackFunctionCheckFlags
NtDuplicateToken
NtMapCMFModule
NtQueryInformationToken
NtQuerySecurityAttributesToken
NtSetInformationThread
NtSetInformationToken
ObpCreateHandle
PiDmEnumObjectsWithCallback
PiDmGetObject
PiDmGetObjectCount
PiGetRelatedDevice
PiPnpRtlCacheObjectBaseKey
PiPnpRtlEndOperation
PiPnpRtlEnsureObjectCached
PiPnpRtlGetCurrentOperation
PiPnpRtlObjectEventWorker
PiProcessNewDeviceNode
PiQueryAndAllocateBootResources
PiQueryResourceRequirements
PipGenerateContainerID
PipMakeGloballyUniqueId
PipProcessStartPhase3
PnpAcquireDependencyRelationsLock
PnpDriverLoadingFailed
PnpGetDeviceInstancePropertyData
PnpGetDeviceInterfacePropertyData
PnpGetDevicePropertyData
PnpShutdownDevices
PpDevNodeLockTree
PsSwapProcessWorkingSet
PspChargeJobWakeCounter
PspInsertThread
PspLockJobShared
PspLockRootJobShared
PspQueryJobHierarchyAccountingInformation
PspSetProcessAffinitySafe
PspSetProcessPriorityClass
PspValidateJobAffinityState
RtlPcToFilePath
RtlpNewSecurityObject
SeAccessCheckByTypeWithAdminlessChecks
SeExamineGlobalSacl
SeGetTokenControlInformation
SeIsTokenAssignableToProcess
SeLockSubjectContext
SeMaximumAuditMaskFromGlobalSacl
SeQueryInformationToken
SeQuerySecurityAttributesToken
SeQueryServerSiloToken
SeQuerySessionIdToken
SeQuerySessionIdTokenEx
SeQueryUserSidToken
SeSetSessionIdTokenWithLinked
SeTokenGetNoChildProcessRestricted
SeTokenGetRedirectionTrustPolicy
SeTokenIsNoChildProcessRestrictionEnforced
SepAccessCheckAndAuditAlarmWithAdminlessChecks
SepAcquireOrderedReadLocks
SepCanTokenMatchAllPackageSid
SepDuplicateToken
SepExamineGlobalSaclEx
SepFilterCheck
SepFilterToken
SepGetLogonSessionAccountInfo
SepGetProcUniqueLuidAndIndexFromTokenEx
SepIdAssignableAsGroup
SepRmGlobalSaclFind
SepTrustLevelCheck
SepValidLabelSubjectContext
SepValidOwnerSubjectContext
VfDriverEnableVerifier
VfDriverEnableVerifierForAll
WmipFindSMBiosStructure
WmipGetSMBiosTableData