FsRtlAllocateAePushLock 函数 (ntifs.h)

FsRtlAllocateAePushLock 分配并初始化自动扩展推送锁。

语法

PVOID FsRtlAllocateAePushLock(
  [in] POOL_TYPE PoolType,
  [in] ULONG     Tag
);

参数

[in] PoolType

要为自动扩展推送锁分配的池内存的类型。 有关可用池内存类型的说明,请参阅 POOL_TYPE。 可以使用POOL_RAISE_IF_ALLOCATION_FAILURE标志按位 ORing PoolType 值。 如果无法满足分配请求,则此标志会导致引发异常。

[in] Tag

要用于已分配内存的池标记。 将池标记指定为由单引号分隔的 1 到 4 个字符的非零字符文本(例如,“Tag1”。 字符串通常按反向顺序指定(例如,“1gaT”。 标记中的每个 ASCII 字符都必须是区域0x20(空格)中的值才能0x7E(波形符)。 每个分配代码路径都应使用唯一的池标记来帮助调试器和验证程序标识代码路径。

返回值

FsRtlAllocateAePushLock 如果可用池中的内存不足来满足请求,则返回 NULL。 否则,例程将返回指向已分配和初始化的自动展开推送锁的指针。

言论

FsRtlAllocateAePushLock 用于为自动扩展推送锁分配池内存。 有关自动扩展推送锁的详细信息,请参阅 FSRTL_ADVANCED_FCB_HEADER

系统将池标记与分配的内存相关联。 编程工具(如 WinDbg)可以显示与每个分配的缓冲区关联的池标记。 GflagsWindows 调试工具中包含的工具)启用从特定池标记 特殊池 请求分配的系统功能。 Poolmon(包含在 WDK 中)按池标记跟踪内存。

FsRtlAllocateAePushLock 的调用方随后必须调用 FsRtlFreeAePushLock 以释放分配的自动扩展推送锁。

当池量(分页或非分页)为高或低时,系统会自动设置某些标准事件对象。 驱动程序可以等待这些事件来优化其池使用情况。 有关详细信息,请参阅 标准事件对象

要求

要求 价值
最低支持的客户端 Windows 10 版本 20H2
标头 ntifs.h
IRQL <= APC_LEVEL

另请参阅

FSRTL_ADVANCED_FCB_HEADER

FsRtlFreeAePushLock

FsRtlSetupAdvancedHeaderEx2