ExEnterCriticalRegionAndAcquireResourceExclusive 函数 (wdm.h)

ExEnterCriticalRegionAndAcquireResourceExclusive 例程首先进入关键区域,然后获取对指定资源的独占访问权限。

语法

PVOID ExEnterCriticalRegionAndAcquireResourceExclusive(
  PERESOURCE Resource
);

参数

Resource

[in, out]指向要获取的用于独占访问的资源的指针。 此参数指向调用方分配 ERESOURCE 结构。 调用方以前从非分页池分配了此结构,并通过调用 exInitializeResourceLiteExReinitializeResourceLite 例程来初始化该结构。

返回值

指向不透明系统结构的指针。 驱动程序应忽略此返回值。

言论

如果在指定资源不立即可用于独占访问时调用此例程,则在资源可用之前,将阻止调用线程。

在关键区域中运行驱动程序线程时,不会执行驱动程序的用户 APC 和普通内核 APC。 仍在执行特殊内核 APC。 有关这些 APC 类型的详细信息,请参阅 类型 API

通过暂时禁用正常的内核 APC,ExEnterCriticalRegionAndAcquireResourceExclusive 可防止 APC 占用被动级别的调用线程,而线程持有 APC 可能尝试访问的共享资源。

调用线程应保留在关键区域中,并保留指定的资源,不再需要。 若要释放指定的资源并离开关键区域,请调用 ExReleaseResourceAndLeaveCriticalRegion 例程。

有关使用 ERESOURCE 结构同步对资源的独占访问的详细信息,请参阅 ERESOURCE 例程简介。 有关进入和离开关键区域的详细信息,请参阅 关键区域和受保护的区域

要求

要求 价值
最低支持的客户端 Windows Vista
支持的最低服务器 Windows Server 2003 SP1
标头 wdm.h
IRQL <= APC_LEVEL
DDI 符合性规则 CriticalRegions(wdm)HwStorPortProhibitedDDI(storport)

另请参阅

ERESOURCE

ExAcquireResourceExclusiveLite

ExInitializeResourceLite

ExReinitializeResourceLite

ExReleaseResourceLite

ExReleaseResourceAndLeaveCriticalRegion

KeEnterCriticalRegion

KeLeaveCriticalRegion