ホーム › System.RemoteDesktop › WTS_POLICY_DATA
WTS_POLICY_DATA
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| fDisableEncryption | BOOLEAN | 1 | +0 | +0 | 暗号化を無効にするかのポリシーフラグ。 |
| fDisableAutoReconnect | BOOLEAN | 1 | +1 | +1 | 自動再接続を無効にするかのポリシーフラグ。 |
| ColorDepth | DWORD | 4 | +4 | +4 | ポリシーで強制する色深度の値。 |
| MinEncryptionLevel | BYTE | 1 | +8 | +8 | 許容する最小暗号化レベル。BYTE値で指定する。 |
| fDisableCpm | BOOLEAN | 1 | +9 | +9 | プリンターリダイレクトを無効にするポリシーフラグ。 |
| fDisableCdm | BOOLEAN | 1 | +10 | +10 | ドライブリダイレクトを無効にするポリシーフラグ。 |
| fDisableCcm | BOOLEAN | 1 | +11 | +11 | COMポートリダイレクトを無効にするポリシーフラグ。 |
| fDisableLPT | BOOLEAN | 1 | +12 | +12 | LPTポートリダイレクトを無効にするポリシーフラグ。 |
| fDisableClip | BOOLEAN | 1 | +13 | +13 | クリップボードリダイレクトを無効にするポリシーフラグ。 |
| fDisablePNPRedir | BOOLEAN | 1 | +14 | +14 | プラグアンドプレイリダイレクトを無効にするポリシーフラグ。 |
各言語での定義
#include <windows.h>
// WTS_POLICY_DATA (x64 16 / x86 16 バイト)
typedef struct WTS_POLICY_DATA {
BOOLEAN fDisableEncryption;
BOOLEAN fDisableAutoReconnect;
DWORD ColorDepth;
BYTE MinEncryptionLevel;
BOOLEAN fDisableCpm;
BOOLEAN fDisableCdm;
BOOLEAN fDisableCcm;
BOOLEAN fDisableLPT;
BOOLEAN fDisableClip;
BOOLEAN fDisablePNPRedir;
} WTS_POLICY_DATA;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct WTS_POLICY_DATA
{
[MarshalAs(UnmanagedType.U1)] public bool fDisableEncryption;
[MarshalAs(UnmanagedType.U1)] public bool fDisableAutoReconnect;
public uint ColorDepth;
public byte MinEncryptionLevel;
[MarshalAs(UnmanagedType.U1)] public bool fDisableCpm;
[MarshalAs(UnmanagedType.U1)] public bool fDisableCdm;
[MarshalAs(UnmanagedType.U1)] public bool fDisableCcm;
[MarshalAs(UnmanagedType.U1)] public bool fDisableLPT;
[MarshalAs(UnmanagedType.U1)] public bool fDisableClip;
[MarshalAs(UnmanagedType.U1)] public bool fDisablePNPRedir;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure WTS_POLICY_DATA
<MarshalAs(UnmanagedType.U1)> Public fDisableEncryption As Boolean
<MarshalAs(UnmanagedType.U1)> Public fDisableAutoReconnect As Boolean
Public ColorDepth As UInteger
Public MinEncryptionLevel As Byte
<MarshalAs(UnmanagedType.U1)> Public fDisableCpm As Boolean
<MarshalAs(UnmanagedType.U1)> Public fDisableCdm As Boolean
<MarshalAs(UnmanagedType.U1)> Public fDisableCcm As Boolean
<MarshalAs(UnmanagedType.U1)> Public fDisableLPT As Boolean
<MarshalAs(UnmanagedType.U1)> Public fDisableClip As Boolean
<MarshalAs(UnmanagedType.U1)> Public fDisablePNPRedir As Boolean
End Structureimport ctypes
from ctypes import wintypes
class WTS_POLICY_DATA(ctypes.Structure):
_fields_ = [
("fDisableEncryption", ctypes.c_byte),
("fDisableAutoReconnect", ctypes.c_byte),
("ColorDepth", wintypes.DWORD),
("MinEncryptionLevel", ctypes.c_ubyte),
("fDisableCpm", ctypes.c_byte),
("fDisableCdm", ctypes.c_byte),
("fDisableCcm", ctypes.c_byte),
("fDisableLPT", ctypes.c_byte),
("fDisableClip", ctypes.c_byte),
("fDisablePNPRedir", ctypes.c_byte),
]#[repr(C)]
pub struct WTS_POLICY_DATA {
pub fDisableEncryption: u8,
pub fDisableAutoReconnect: u8,
pub ColorDepth: u32,
pub MinEncryptionLevel: u8,
pub fDisableCpm: u8,
pub fDisableCdm: u8,
pub fDisableCcm: u8,
pub fDisableLPT: u8,
pub fDisableClip: u8,
pub fDisablePNPRedir: u8,
}import "golang.org/x/sys/windows"
type WTS_POLICY_DATA struct {
fDisableEncryption byte
fDisableAutoReconnect byte
ColorDepth uint32
MinEncryptionLevel byte
fDisableCpm byte
fDisableCdm byte
fDisableCcm byte
fDisableLPT byte
fDisableClip byte
fDisablePNPRedir byte
}type
WTS_POLICY_DATA = record
fDisableEncryption: ByteBool;
fDisableAutoReconnect: ByteBool;
ColorDepth: DWORD;
MinEncryptionLevel: Byte;
fDisableCpm: ByteBool;
fDisableCdm: ByteBool;
fDisableCcm: ByteBool;
fDisableLPT: ByteBool;
fDisableClip: ByteBool;
fDisablePNPRedir: ByteBool;
end;const WTS_POLICY_DATA = extern struct {
fDisableEncryption: u8,
fDisableAutoReconnect: u8,
ColorDepth: u32,
MinEncryptionLevel: u8,
fDisableCpm: u8,
fDisableCdm: u8,
fDisableCcm: u8,
fDisableLPT: u8,
fDisableClip: u8,
fDisablePNPRedir: u8,
};type
WTS_POLICY_DATA {.bycopy.} = object
fDisableEncryption: uint8
fDisableAutoReconnect: uint8
ColorDepth: uint32
MinEncryptionLevel: uint8
fDisableCpm: uint8
fDisableCdm: uint8
fDisableCcm: uint8
fDisableLPT: uint8
fDisableClip: uint8
fDisablePNPRedir: uint8struct WTS_POLICY_DATA
{
ubyte fDisableEncryption;
ubyte fDisableAutoReconnect;
uint ColorDepth;
ubyte MinEncryptionLevel;
ubyte fDisableCpm;
ubyte fDisableCdm;
ubyte fDisableCcm;
ubyte fDisableLPT;
ubyte fDisableClip;
ubyte fDisablePNPRedir;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; WTS_POLICY_DATA サイズ: 16 バイト(x64)
dim st, 4 ; 4byte整数×4(構造体サイズ 16 / 4 切り上げ)
; fDisableEncryption : BOOLEAN (+0, 1byte) poke st,0,値 / 値 = peek(st,0)
; fDisableAutoReconnect : BOOLEAN (+1, 1byte) poke st,1,値 / 値 = peek(st,1)
; ColorDepth : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; MinEncryptionLevel : BYTE (+8, 1byte) poke st,8,値 / 値 = peek(st,8)
; fDisableCpm : BOOLEAN (+9, 1byte) poke st,9,値 / 値 = peek(st,9)
; fDisableCdm : BOOLEAN (+10, 1byte) poke st,10,値 / 値 = peek(st,10)
; fDisableCcm : BOOLEAN (+11, 1byte) poke st,11,値 / 値 = peek(st,11)
; fDisableLPT : BOOLEAN (+12, 1byte) poke st,12,値 / 値 = peek(st,12)
; fDisableClip : BOOLEAN (+13, 1byte) poke st,13,値 / 値 = peek(st,13)
; fDisablePNPRedir : BOOLEAN (+14, 1byte) poke st,14,値 / 値 = peek(st,14)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global WTS_POLICY_DATA
#field bool1 fDisableEncryption
#field bool1 fDisableAutoReconnect
#field int ColorDepth
#field byte MinEncryptionLevel
#field bool1 fDisableCpm
#field bool1 fDisableCdm
#field bool1 fDisableCcm
#field bool1 fDisableLPT
#field bool1 fDisableClip
#field bool1 fDisablePNPRedir
#endstruct
stdim st, WTS_POLICY_DATA ; NSTRUCT 変数を確保
st->fDisableEncryption = 100
mes "fDisableEncryption=" + st->fDisableEncryption