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

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

返回值

备注

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

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

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

要求

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

另请参阅

FsRtlPostPagingFileStackOverflow

IoGetRemainingStackSize

IoQueueWorkItem

KeInitializeEvent