ExAcquireResourceSharedLite routine

ExAcquireResourceSharedLite routine

ExAcquireResourceSharedLite 获取一个给定的资源以用于给调用者线程共享访问。

Syntax

 

BOOLEAN ExAcquireResourceSharedLite(
  _Inout_ PERESOURCE Resource,
  _In_    BOOLEAN    Wait
);

 

Parameters

Resource [in, out]

指向需要获取的资源。

Wait [in]

当资源不能被立即获取时,指定例程的行为。如为 TRUE,调用者进入等待状态直到资源能被获取,否则例程直接返回,无视资源能否被获取。 

Return value

调用者可以通过调用ExReleaseResourceLite  ExReleaseResourceForThreadLite之一释放资源。

ExAcquireResourceSharedLite 返回TRUE 如果(或者当)资源获取到时。例程返回FALSE 如果输入的参数 Wait  FALSE 并且共享访问权限无法被立即授予时。

Remarks

是否(何时)调用者被授予共享访问取决于以下条件:

· 

若资源当前未被(线程)拥有,共享访问权限立即被授予给当前线程。

· 

如果调用者已经获取到了资源(共享或者独占访问),当前线程被(递归地?)授予同类型的访问权限。注意调用这个函数并不会转换一个独占式的访问权限为共享式的访问权限。

· 

如果资源当前被其他线程共享式拥有,并且没有其他线程正在等待对这个资源进行一个独占式的访问。共享访问权限被立即授予调用者。如果有一个独占式的线程在等待,那么调用者进入等待状态。

· 

如果当前资源被其他一个线程独占式拥有,或者是当前有另外一个线程在等待独占式访问这个资源并且调用者并且调用者尚未获取共享式的访问权限,那么当前进程也将进入一个等待状态(Wait 设置为TRUE),或者orExAcquireResourceSharedLite 返回FALSE

· 

调用这个例程之前普通的内核APC投递必须被禁用。通过调用KeEnterCriticalRegion禁用普通内核APC的投递。直到这个资源已经释放之前投递必须保持被禁止的状态,资源释放后在APC投递可以通过调用KeLeaveCriticalRegion重新启用更多信息详见 Disabling APCs.

Requirements

Target platform

Universal

Version

Available starting with Windows 2000.

Header

Wdm.h (include Wdm.h, Ntddk.h, or Ntifs.h)

Library

NtosKrnl.lib

DLL

NtosKrnl.exe

IRQL

<= APC_LEVEL

DDI compliance rules

IrqlExApcLte3WithinCriticalRegionHwStorPortProhibitedDDIsWithinCriticalRegion(storport)

See also

ExAcquireResourceExclusiveLite

ExAcquireSharedStarveExclusive

ExAcquireSharedWaitForExclusive

ExConvertExclusiveToSharedLite

ExGetExclusiveWaiterCount

ExGetSharedWaiterCount

ExInitializeResourceLite

ExReinitializeResourceLite

ExIsResourceAcquiredSharedLite

ExReleaseResourceForThreadLite

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值