PSAM_PASSWORD_FILTER_ROUTINE回调函数 (ntsecapi.h)

PasswordFilter 函数由密码筛选器 DLL 实现。 此函数返回的值确定系统是否接受新密码。 系统上安装的所有密码筛选器都必须返回 TRUE ,密码更改才能生效。

语法

PSAM_PASSWORD_FILTER_ROUTINE PsamPasswordFilterRoutine;

BOOLEAN PsamPasswordFilterRoutine(
  [in] PUNICODE_STRING AccountName,
  [in] PUNICODE_STRING FullName,
  [in] PUNICODE_STRING Password,
  [in] BOOLEAN SetOperation
)
{...}

参数

[in] AccountName

指向 UNICODE_STRING 的指针,该UNICODE_STRING表示其密码已更改的用户的名称。

[in] FullName

指向 UNICODE_STRING 的指针,该UNICODE_STRING表示其密码已更改的用户的全名。

[in] Password

指向表示新纯文本密码的 UNICODE_STRING 的指针。 使用完密码后,通过调用 SecureZeroMemory 函数将其从内存中清除。 有关保护密码的详细信息,请参阅 处理密码

[in] SetOperation

如果密码已设置而不是更改,则为 TRUE

返回值

返回代码 说明
TRUE
如果新密码相对于密码筛选器 DLL 中实现的密码策略有效,则返回 TRUE 。 返回 TRUE 后, 本地安全机构 (LSA) 继续通过调用系统上安装的任何其他密码筛选器来评估密码。
FALSE
如果新密码在密码筛选器 DLL 中实现的密码策略无效,则返回 FALSE 。 返回 FALSE 时,LSA 会将ERROR_ILL_FORMED_PASSWORD (1324) 状态代码返回到密码更改请求的源。

注解

当用户指定新密码、创建帐户以及管理员替代密码时,可能会发出密码更改请求。

此函数必须使用 __stdcall 调用约定,并且必须由 DLL 导出。

运行 PasswordFilter 例程时,将阻止处理,直到该例程完成。 适当时,在从此例程返回之前,将任何冗长的处理移动到单独的线程。

仅针对在系统上安装和注册 的密码筛选器 调用此函数。

未在此函数中处理的任何进程异常都可能导致系统范围内的与安全相关的故障。 适当时应使用结构化异常处理。

有关以下方面的信息 请参阅
实现密码筛选器 DLL 时的编程问题 密码筛选器编程注意事项
如何安装和注册自己的密码筛选器 DLL 安装和注册密码筛选器 DLL
Microsoft 提供的密码筛选器 DLL 强密码强制实施和 Passfilt.dll

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 ntsecapi.h

另请参阅

InitializeChangeNotify

PasswordChangeNotify