SO_WSK_SECURITY
Параметр сокета SO_WSK_SECURITY позволяет приложению WSK либо применять дескриптор безопасности к сокету, либо извлекать кэшированную копию дескриптора безопасности сокета из сокета. Дескриптор безопасности управляет общим доступом к локальному транспортному адресу, к которому привязан сокет.
Этот параметр сокета применяется только к прослушивающим сокетам, сокетам датаграмм и сокетам, ориентированным на подключение.
Если приложение WSK использует этот параметр сокета для применения дескриптора безопасности к сокету, оно должно сделать это, прежде чем сокет будет привязан к локальному адресу транспорта.
Чтобы применить дескриптор безопасности к сокету, приложение WSK вызывает функцию WskControlSocket со следующими параметрами.
Параметр | Значение |
---|---|
RequestType |
WskSetOption |
ControlCode |
SO_WSK_SECURITY |
Уровень |
SOL_SOCKET |
Размер входных данных |
sizeof(PSECURITY_DESCRIPTOR) |
InputBuffer |
Указатель на переменную типа PSECURITY_DESCRIPTOR. Эта переменная должна содержать указатель на кэшированную копию дескриптора безопасности, полученного путем вызова функции WskControlClient с кодом элемента управления WSK_CACHE_SD . |
OutputSize |
0 |
OutputBuffer |
NULL |
OutputSizeReturned |
NULL |
Приложение WSK должно указывать указатель на IRP при вызове функции WskControlSocket , чтобы применить дескриптор безопасности к сокету.
Если приложение WSK использует этот параметр сокета для применения дескриптора безопасности к сокету, новый дескриптор безопасности заменяет любой дескриптор безопасности, который ранее применялся к сокету.
Приложение WSK не должно освобождать кэшированную копию дескриптора безопасности до завершения IRP.
Приложение WSK также может применить дескриптор безопасности к сокету при первоначальном создании сокета, указав указатель на кэшированную копию дескриптора безопасности в параметре SecurityDescriptor при вызове функции WskSocket или WskSocketConnect .
Если приложение WSK не применяет дескриптор безопасности к сокету, подсистема WSK использует дескриптор безопасности по умолчанию, который не разрешает совместное использование локального адреса транспорта.
Чтобы получить кэшированную копию дескриптора безопасности сокета из сокета, приложение WSK вызывает функцию WskControlSocket со следующими параметрами.
Параметр | Значение |
---|---|
RequestType |
WskGetOption |
ControlCode |
SO_WSK_SECURITY |
Уровень |
SOL_SOCKET |
Размер входных данных |
0 |
InputBuffer |
NULL |
OutputSize |
sizeof(PSECURITY_DESCRIPTOR) |
OutputBuffer |
Указатель на переменную типа PSECURITY_DESCRIPTOR. Эта переменная получает указатель на кэшированную копию дескриптора безопасности сокета. |
OutputSizeReturned |
NULL |
Приложение WSK должно указывать указатель на IRP при вызове функции WskControlSocket , чтобы получить кэшированную копию дескриптора безопасности сокета из сокета.
Приложение WSK должно вызывать функцию WskControlClient с кодом управления WSK_RELEASE_SD , чтобы освободить кэшированную копию дескриптора безопасности, когда она больше не нужна.
Дополнительные сведения см. на странице справочника по структуре SECURITY_DESCRIPTOR .
Требования
Версия |
Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
Заголовок |
Wsk.h (включая Wsk.h) |