FsRtlPostStackOverflow 函数 (ntifs.h)

FsRtlPostStackOverflow 例程将堆栈溢出项发布到堆栈溢出线程。

语法

void FsRtlPostStackOverflow(
  [in] PVOID                         Context,
  [in] PKEVENT                       Event,
  [in] PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine
);

参数

[in] Context

要传递给堆栈溢出回调例程的上下文指针。

[in] Event

指向调用方分配的通知事件的指针,用于传递给堆栈溢出回调例程。 必须通过调用 KeInitializeEvent来初始化为非对齐。

[in] StackOverflowRoutine

指向在溢出线程中处理请求时要调用的回调例程的指针。

返回值

没有

言论

文件系统通常在文件 I/O 操作期间调用 FsRtlPostStackOverflow,而 ioGetRemainingStackSize 返回的剩余堆栈空间量低于文件系统的堆栈溢出阈值。 FsRtlPostStackOverflow 向特殊堆栈溢出工作队列发布 I/O 请求。 I/O 操作完成后,调用方 事件 设置为信号状态。

文件系统筛选器驱动程序应使用 IoQueueWorkItem 而不是 FsRtlPostStackOverflow,因为 IoQueueWorkItem 可确保与指定工作项关联的设备对象可用于处理工作项。

如果池分配失败,FsRtlPostStackOverflow 引发STATUS_INSUFFICIENT_RESOURCES异常。 若要控制此池分配失败是否发生,驱动程序应在 try-excepttry-finally 语句中包装对 FsRtlPostStackOverflow 调用。

要求

要求 价值
最低支持的客户端 Windows 2000
目标平台 普遍
标头 ntifs.h (包括 FltKernel.h、Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

另请参阅

FsRtlPostPagingFileStackOverflow

IoGetRemainingStackSize

IoQueueWorkItem

KeInitializeEvent