SO_WSK_SECURITY
SO_WSK_SECURITY套接字选项允许 WSK 应用程序将安全描述符应用于套接字,或从套接字检索套接字安全描述符的缓存副本。 安全描述符控制套接字绑定到的本地传输地址的共享。
此套接字选项仅适用于侦听套接字、数据报套接字和面向连接的套接字。
如果 WSK 应用程序使用此套接字选项将安全描述符应用于套接字,则必须在将套接字绑定到本地传输地址之前执行此操作。
若要将安全描述符应用于套接字,WSK 应用程序使用以下参数调用 WskControlSocket 函数。
参数 | 值 |
---|---|
RequestType |
WskSetOption |
ControlCode |
SO_WSK_SECURITY |
级别 |
SOL_SOCKET |
InputSize |
sizeof (PSECURITY_DESCRIPTOR) |
InputBuffer |
指向PSECURITY_DESCRIPTOR类型变量的指针。 此变量必须包含指向通过调用 WskControlClient 函数和 WSK_CACHE_SD 控制代码获取的安全描述符的缓存副本的指针。 |
OutputSize |
0 |
OutputBuffer |
Null |
OutputSizeReturned |
Null |
在调用 WskControlSocket 函数以将安全描述符应用于套接字时,WSK 应用程序必须指定指向 IRP 的指针。
如果 WSK 应用程序使用此套接字选项将安全描述符应用于套接字,则新的安全描述符将替换以前应用于套接字的任何安全描述符。
在 IRP 完成后,WSK 应用程序不得释放安全描述符的缓存副本。
在最初创建套接字时,WSK 应用程序还可以将安全描述符应用于套接字,方法是在调用 WskSocket 或 WskSocketConnect 函数时指定指向 SecurityDescriptor 参数中安全描述符的缓存副本的指针。
如果 WSK 应用程序不对套接字应用安全描述符,则 WSK 子系统将使用不允许共享本地传输地址的默认安全描述符。
若要从套接字检索套接字安全描述符的缓存副本,WSK 应用程序使用以下参数调用 WskControlSocket 函数。
参数 | 值 |
---|---|
RequestType |
WskGetOption |
ControlCode |
SO_WSK_SECURITY |
级别 |
SOL_SOCKET |
InputSize |
0 |
InputBuffer |
Null |
OutputSize |
sizeof (PSECURITY_DESCRIPTOR) |
OutputBuffer |
指向PSECURITY_DESCRIPTOR类型变量的指针。 此变量接收指向套接字安全描述符的缓存副本的指针。 |
OutputSizeReturned |
Null |
调用 WskControlSocket 函数以从套接字检索套接字安全描述符的缓存副本时,WSK 应用程序必须指定指向 IRP 的指针。
WSK 应用程序必须使用WSK_RELEASE_SD控制代码调用 WskControlClient 函数,以在不再需要安全描述符时释放缓存的副本。
有关详细信息,请参阅 SECURITY_DESCRIPTOR 结构的参考页。
要求
版本 |
在 Windows Vista 和更高版本的 Windows 操作系统中可用。 |
标头 |
Wsk.h (包括 Wsk.h) |