PFLT_CONNECT_NOTIFY回调函数 (fltkernel.h)
FltMgr 调用微型筛选器的 ConnectNotifyCallback 回调函数,以在请求与通信端口的新连接时通知微型筛选器。
语法
PFLT_CONNECT_NOTIFY PfltConnectNotify;
NTSTATUS PfltConnectNotify(
PFLT_PORT ClientPort,
PVOID ServerPortCookie,
PVOID ConnectionContext,
ULONG SizeOfContext,
PVOID *ConnectionPortCookie
)
{...}
参数
ClientPort
[in]不透明,FltMgr-generated handle for the new client port that is is established between the user-mode application and the kernel-mode minifilter.
微型筛选器必须将此句柄作为 ClientPort 参数传递给在此客户端端口上发送和答复消息时 FltSendMessage。
微型筛选器最终必须调用 FltCloseClientPort 关闭此客户端端口,通常是从其 DisconnectNotifyCallback 例程中关闭。
ClientPort 与FltCreunicationPort返回的 ServerPort 句柄不同。
ServerPortCookie
[in]指向微筛选器定义的上下文信息的指针。 微型筛选器可以使用此信息来区分它可能创建的多个通信服务器端口。 创建服务器端口时,微型筛选器驱动程序将此上下文指针作为 ServerPortCookie 参数传递给 FltCreateCommunicationPort。
ConnectionContext
[in]用户模式应用程序传入 lpContext 参数以 FilterConnectCommunicationPort的上下文信息指针。
SizeOfContext
[in]ConnectionContext 指向的缓冲区的大小(以字节为单位)。
ConnectionPortCookie
[out]指向可唯一标识此客户端端口的微型端口信息的指针。 微型筛选器可以使用此 Cookie 标识连接时,FltMgr 在后续调用中传递连接,MessageNotifyCallback,DisconnectNotifyCallback。
返回值
ConnectNotifyCallback 在操作成功且已接受连接时返回STATUS_SUCCESS。 否则,它将返回相应的 NTSTATUS 值,例如:
返回代码 | 意义 |
---|---|
STATUS_INSUFFICIENT_RESOURCES | 没有足够的资源来完成操作。 |
STATUS_INVALID_PARAMETER | 一个或多个输入参数无效。 |
言论
每当用户模式应用程序调用 filterConnectCommunicationPort
微型筛选器应对连接尝试执行任何必要的验证。
有关详细信息,请参阅 用户模式与微型筛选器之间的通信。
要求
要求 | 价值 |
---|---|
标头 | fltkernel.h |
库 | FltMgr.lib |
DLL | FltMgr.sys |
IRQL | PASSIVE_LEVEL |