RxIndicateChangeOfBufferingStateForSrvOpen 函数 (rxprocs.h)
调用 RxIndicateChangeOfBufferingStateForSrvOpen 来注册更改缓冲状态请求 (oplock 中断指示,例如,) 稍后进行处理。 如果满足必要的前提条件,则进一步处理 oplock。
语法
void RxIndicateChangeOfBufferingStateForSrvOpen(
PMRX_SRV_CALL SrvCall,
PMRX_SRV_OPEN SrvOpen,
PVOID SrvOpenKey,
PVOID Context
);
参数
SrvCall
指向 SRV_CALL 结构的指针。
SrvOpen
指向SRV_OPEN结构的指针。
SrvOpenKey
指向SRV_OPEN键结构的键的指针。
Context
指向在回调期间要传递回网络微型重定向程序以处理请求的上下文的指针。
返回值
无
备注
此例程通过将更改缓冲状态请求插入注册列表 (DPC 级别处理 ) 或相应的调度程序/处理程序列表中来注册该请求。
这是一个实例,在缓冲状态中,服务器的更改指示使用客户端生成的密钥, (SRV_OPEN地址本身是可以) 使用的最佳密钥。 这意味着不需要进一步查找。
但是,如果在 DPC 级别调用此例程,则会处理指示,就像需要执行查找一样。
如果此线程已获取 FCB 的资源,则会立即处理缓冲状态更改指示,而不会进一步延迟。 在这种情况下,RxIndicateChangeOfBufferingStateForSrvOpen 会立即调用 RxChangeBufferingState。
由于缺少可用内存 (无法分配非分页池内存(例如) ),因此此例程调用的内部例程可能会失败,但由于这是 VOID 例程,因此在出现此情况时不会返回错误。
如果可以立即处理缓冲状态请求,而不是排队等待以后处理,则可以调用 RxChangeBufferingState 。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | rxprocs.h (包括 Rxprocs.h、Struchdr.h、Fcb.h) |
IRQL | <= APC_LEVEL |