FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE 函数 (ndis.h)
从基础驱动程序完成同步 OID 请求后,NDIS 调用筛选器驱动程序的 FilterSynchronousOidRequestComplete 函数。
NDIS 6.81 及更高版本中支持此函数。
语法
void FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE(
[in] NDIS_HANDLE FilterModuleContext,
[in, out] NDIS_OID_REQUEST *OidRequest,
[in, out] NDIS_STATUS *Status,
[in] PVOID CallContext
);
参数
[in] FilterModuleContext
此请求的目标筛选器模块的上下文区域的句柄。 筛选器驱动程序在 FilterAttach 函数中创建并初始化了此上下文区域。
[in, out] OidRequest
指向 NDIS_OID_REQUEST 结构的指针,该结构指定要完成的操作。
[in, out] Status
指向正在完成的请求的结果状态代码的指针。
[in] CallContext
一个 PVOID 大小的存储槽,供筛选器驱动程序在其 FilterSynchronousOidRequest 和 FilterSynchronousOidRequestComplete 处理程序之间共享状态。 如果筛选器驱动程序实现 FilterSynchronousOidRequest 处理程序,则此参数包含 FilterSynchronousOidRequest 处理程序返回的上下文值。 否则,如果筛选器驱动程序未实现 FilterSynchronousOidRequest 处理程序,则此值为零。
返回值
无
备注
FilterSynchronousOidRequestComplete 是一个可选函数。 如果筛选器驱动程序不需要观察或修改从微型端口驱动程序完成的同步 OID 请求,则筛选器驱动程序应在调用 NdisFRegisterFilterDriver 时将此函数的入口点设置为 NULL。
NDIS 调用筛选器驱动程序的 FilterSynchronousOidRequestComplete 函数来处理由基础驱动程序完成的同步 OID 请求。 筛选器驱动程序可以读取或修改 NDIS_OID_REQUEST 结构中的某些字段,如下所示:
字段 | 筛选器访问 |
---|---|
标头 | 只读 |
RequestType | 读取/写入 |
PortNumber | 读取/写入 |
超时 | 不访问 |
RequestId | 不访问 |
RequestHandle | 读取/写入 |
DATA | 读取/写入 |
NdisReserved | 不访问 |
MiniportReserved | 不访问 |
SourceReserved | 不访问 |
SupportedRevision | 读取/写入 |
Reserved1、Reserved2 | 不访问 |
SwitchId | 读取/写入 |
VPortId | 读取/写入 |
Flags | 读取/写入 |
除了修改 NDIS_OID_REQUEST 结构外,筛选器驱动程序还可以读取或修改操作完成的状态代码。 筛选器驱动程序可以将新值写入 *Status 参数。 筛选器驱动程序不得将NDIS_STATUS_PENDING或NDIS_STATUS_ALREADY_COMPLETE写入 状态 参数。
如果筛选器驱动程序还注册 FilterSynchronousOidRequest 处理程序,则 NDIS 保证当并且仅当 FilterSynchronousOidRequest 处理程序返回NDIS_STATUS_SUCCESS时,才会调用 FilterSynchronousOidRequestComplete 处理程序。
筛选器驱动程序应从其 FilterSynchronousOidRequestComplete 处理程序快速返回,而不会阻塞、等待或休眠。 同步 OID 请求仅用于低延迟操作,筛选器驱动程序应尽量在几毫秒内继续或完成这些请求。
NDIS 不会对彼此、针对其他 OID 请求或 针对 FilterPause 序列化同步 OID 请求。 筛选器驱动程序负责实现任何所需的同步。
NDIS 会针对 FilterDetach 序列化同步 OID 请求:NDIS 保证在调用 FilterDetach 后,同步 OID 请求不会处于活动状态。
筛选器驱动程序不得对同步 OID 请求调用 NdisAllocateCloneOidRequest 或 NdisCancelOidRequest 。 筛选器驱动程序不得对通过 FilterSynchronousOidRequestComplete 处理程序接收的 OID 请求调用 NdisFSynchronousOidRequest 。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 版本 1709 |
目标平台 | Windows |
标头 | ndis.h (包括 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈