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 应用程序还可以将安全描述符应用于套接字,方法是在调用 WskSocketWskSocketConnect 函数时指定指向 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)