ホーム › System.RemoteDesktop › WRDS_SETTINGS
WRDS_SETTINGS
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| WRdsSettingType | WRDS_SETTING_TYPE | 4 | +0 | +0 | 設定の種別を示す列挙値。WRDS_SETTING_TYPEで表す。 |
| WRdsSettingLevel | WRDS_SETTING_LEVEL | 4 | +4 | +4 | 設定のレベルを示す列挙値。共用体の解釈を決める。 |
| WRdsSetting | WRDS_SETTING | 124 | +8 | +8 | レベルに応じた設定本体。WRDS_SETTING共用体。 |
各言語での定義
#include <windows.h>
// WRDS_SETTINGS_1 (x64 124 / x86 124 バイト)
typedef struct WRDS_SETTINGS_1 {
WRDS_SETTING_STATUS WRdsDisableClipStatus;
DWORD WRdsDisableClipValue;
WRDS_SETTING_STATUS WRdsDisableLPTStatus;
DWORD WRdsDisableLPTValue;
WRDS_SETTING_STATUS WRdsDisableCcmStatus;
DWORD WRdsDisableCcmValue;
WRDS_SETTING_STATUS WRdsDisableCdmStatus;
DWORD WRdsDisableCdmValue;
WRDS_SETTING_STATUS WRdsDisableCpmStatus;
DWORD WRdsDisableCpmValue;
WRDS_SETTING_STATUS WRdsDisablePnpStatus;
DWORD WRdsDisablePnpValue;
WRDS_SETTING_STATUS WRdsEncryptionLevelStatus;
DWORD WRdsEncryptionValue;
WRDS_SETTING_STATUS WRdsColorDepthStatus;
DWORD WRdsColorDepthValue;
WRDS_SETTING_STATUS WRdsDisableAutoReconnecetStatus;
DWORD WRdsDisableAutoReconnecetValue;
WRDS_SETTING_STATUS WRdsDisableEncryptionStatus;
DWORD WRdsDisableEncryptionValue;
WRDS_SETTING_STATUS WRdsResetBrokenStatus;
DWORD WRdsResetBrokenValue;
WRDS_SETTING_STATUS WRdsMaxIdleTimeStatus;
DWORD WRdsMaxIdleTimeValue;
WRDS_SETTING_STATUS WRdsMaxDisconnectTimeStatus;
DWORD WRdsMaxDisconnectTimeValue;
WRDS_SETTING_STATUS WRdsMaxConnectTimeStatus;
DWORD WRdsMaxConnectTimeValue;
WRDS_SETTING_STATUS WRdsKeepAliveStatus;
BOOLEAN WRdsKeepAliveStartValue;
DWORD WRdsKeepAliveIntervalValue;
} WRDS_SETTINGS_1;
// WRDS_SETTING (x64 124 / x86 124 バイト)
typedef struct WRDS_SETTING {
WRDS_SETTINGS_1 WRdsSettings1;
} WRDS_SETTING;
// WRDS_SETTINGS (x64 132 / x86 132 バイト)
typedef struct WRDS_SETTINGS {
WRDS_SETTING_TYPE WRdsSettingType;
WRDS_SETTING_LEVEL WRdsSettingLevel;
WRDS_SETTING WRdsSetting;
} WRDS_SETTINGS;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct WRDS_SETTINGS_1
{
public int WRdsDisableClipStatus;
public uint WRdsDisableClipValue;
public int WRdsDisableLPTStatus;
public uint WRdsDisableLPTValue;
public int WRdsDisableCcmStatus;
public uint WRdsDisableCcmValue;
public int WRdsDisableCdmStatus;
public uint WRdsDisableCdmValue;
public int WRdsDisableCpmStatus;
public uint WRdsDisableCpmValue;
public int WRdsDisablePnpStatus;
public uint WRdsDisablePnpValue;
public int WRdsEncryptionLevelStatus;
public uint WRdsEncryptionValue;
public int WRdsColorDepthStatus;
public uint WRdsColorDepthValue;
public int WRdsDisableAutoReconnecetStatus;
public uint WRdsDisableAutoReconnecetValue;
public int WRdsDisableEncryptionStatus;
public uint WRdsDisableEncryptionValue;
public int WRdsResetBrokenStatus;
public uint WRdsResetBrokenValue;
public int WRdsMaxIdleTimeStatus;
public uint WRdsMaxIdleTimeValue;
public int WRdsMaxDisconnectTimeStatus;
public uint WRdsMaxDisconnectTimeValue;
public int WRdsMaxConnectTimeStatus;
public uint WRdsMaxConnectTimeValue;
public int WRdsKeepAliveStatus;
[MarshalAs(UnmanagedType.U1)] public bool WRdsKeepAliveStartValue;
public uint WRdsKeepAliveIntervalValue;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct WRDS_SETTING
{
public WRDS_SETTINGS_1 WRdsSettings1;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct WRDS_SETTINGS
{
public int WRdsSettingType;
public int WRdsSettingLevel;
public WRDS_SETTING WRdsSetting;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure WRDS_SETTINGS_1
Public WRdsDisableClipStatus As Integer
Public WRdsDisableClipValue As UInteger
Public WRdsDisableLPTStatus As Integer
Public WRdsDisableLPTValue As UInteger
Public WRdsDisableCcmStatus As Integer
Public WRdsDisableCcmValue As UInteger
Public WRdsDisableCdmStatus As Integer
Public WRdsDisableCdmValue As UInteger
Public WRdsDisableCpmStatus As Integer
Public WRdsDisableCpmValue As UInteger
Public WRdsDisablePnpStatus As Integer
Public WRdsDisablePnpValue As UInteger
Public WRdsEncryptionLevelStatus As Integer
Public WRdsEncryptionValue As UInteger
Public WRdsColorDepthStatus As Integer
Public WRdsColorDepthValue As UInteger
Public WRdsDisableAutoReconnecetStatus As Integer
Public WRdsDisableAutoReconnecetValue As UInteger
Public WRdsDisableEncryptionStatus As Integer
Public WRdsDisableEncryptionValue As UInteger
Public WRdsResetBrokenStatus As Integer
Public WRdsResetBrokenValue As UInteger
Public WRdsMaxIdleTimeStatus As Integer
Public WRdsMaxIdleTimeValue As UInteger
Public WRdsMaxDisconnectTimeStatus As Integer
Public WRdsMaxDisconnectTimeValue As UInteger
Public WRdsMaxConnectTimeStatus As Integer
Public WRdsMaxConnectTimeValue As UInteger
Public WRdsKeepAliveStatus As Integer
<MarshalAs(UnmanagedType.U1)> Public WRdsKeepAliveStartValue As Boolean
Public WRdsKeepAliveIntervalValue As UInteger
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure WRDS_SETTING
Public WRdsSettings1 As WRDS_SETTINGS_1
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure WRDS_SETTINGS
Public WRdsSettingType As Integer
Public WRdsSettingLevel As Integer
Public WRdsSetting As WRDS_SETTING
End Structureimport ctypes
from ctypes import wintypes
class WRDS_SETTINGS_1(ctypes.Structure):
_fields_ = [
("WRdsDisableClipStatus", ctypes.c_int),
("WRdsDisableClipValue", wintypes.DWORD),
("WRdsDisableLPTStatus", ctypes.c_int),
("WRdsDisableLPTValue", wintypes.DWORD),
("WRdsDisableCcmStatus", ctypes.c_int),
("WRdsDisableCcmValue", wintypes.DWORD),
("WRdsDisableCdmStatus", ctypes.c_int),
("WRdsDisableCdmValue", wintypes.DWORD),
("WRdsDisableCpmStatus", ctypes.c_int),
("WRdsDisableCpmValue", wintypes.DWORD),
("WRdsDisablePnpStatus", ctypes.c_int),
("WRdsDisablePnpValue", wintypes.DWORD),
("WRdsEncryptionLevelStatus", ctypes.c_int),
("WRdsEncryptionValue", wintypes.DWORD),
("WRdsColorDepthStatus", ctypes.c_int),
("WRdsColorDepthValue", wintypes.DWORD),
("WRdsDisableAutoReconnecetStatus", ctypes.c_int),
("WRdsDisableAutoReconnecetValue", wintypes.DWORD),
("WRdsDisableEncryptionStatus", ctypes.c_int),
("WRdsDisableEncryptionValue", wintypes.DWORD),
("WRdsResetBrokenStatus", ctypes.c_int),
("WRdsResetBrokenValue", wintypes.DWORD),
("WRdsMaxIdleTimeStatus", ctypes.c_int),
("WRdsMaxIdleTimeValue", wintypes.DWORD),
("WRdsMaxDisconnectTimeStatus", ctypes.c_int),
("WRdsMaxDisconnectTimeValue", wintypes.DWORD),
("WRdsMaxConnectTimeStatus", ctypes.c_int),
("WRdsMaxConnectTimeValue", wintypes.DWORD),
("WRdsKeepAliveStatus", ctypes.c_int),
("WRdsKeepAliveStartValue", ctypes.c_byte),
("WRdsKeepAliveIntervalValue", wintypes.DWORD),
]
class WRDS_SETTING(ctypes.Structure):
_fields_ = [
("WRdsSettings1", WRDS_SETTINGS_1),
]
class WRDS_SETTINGS(ctypes.Structure):
_fields_ = [
("WRdsSettingType", ctypes.c_int),
("WRdsSettingLevel", ctypes.c_int),
("WRdsSetting", WRDS_SETTING),
]#[repr(C)]
pub struct WRDS_SETTINGS_1 {
pub WRdsDisableClipStatus: i32,
pub WRdsDisableClipValue: u32,
pub WRdsDisableLPTStatus: i32,
pub WRdsDisableLPTValue: u32,
pub WRdsDisableCcmStatus: i32,
pub WRdsDisableCcmValue: u32,
pub WRdsDisableCdmStatus: i32,
pub WRdsDisableCdmValue: u32,
pub WRdsDisableCpmStatus: i32,
pub WRdsDisableCpmValue: u32,
pub WRdsDisablePnpStatus: i32,
pub WRdsDisablePnpValue: u32,
pub WRdsEncryptionLevelStatus: i32,
pub WRdsEncryptionValue: u32,
pub WRdsColorDepthStatus: i32,
pub WRdsColorDepthValue: u32,
pub WRdsDisableAutoReconnecetStatus: i32,
pub WRdsDisableAutoReconnecetValue: u32,
pub WRdsDisableEncryptionStatus: i32,
pub WRdsDisableEncryptionValue: u32,
pub WRdsResetBrokenStatus: i32,
pub WRdsResetBrokenValue: u32,
pub WRdsMaxIdleTimeStatus: i32,
pub WRdsMaxIdleTimeValue: u32,
pub WRdsMaxDisconnectTimeStatus: i32,
pub WRdsMaxDisconnectTimeValue: u32,
pub WRdsMaxConnectTimeStatus: i32,
pub WRdsMaxConnectTimeValue: u32,
pub WRdsKeepAliveStatus: i32,
pub WRdsKeepAliveStartValue: u8,
pub WRdsKeepAliveIntervalValue: u32,
}
#[repr(C)]
pub struct WRDS_SETTING {
pub WRdsSettings1: WRDS_SETTINGS_1,
}
#[repr(C)]
pub struct WRDS_SETTINGS {
pub WRdsSettingType: i32,
pub WRdsSettingLevel: i32,
pub WRdsSetting: WRDS_SETTING,
}import "golang.org/x/sys/windows"
type WRDS_SETTINGS_1 struct {
WRdsDisableClipStatus int32
WRdsDisableClipValue uint32
WRdsDisableLPTStatus int32
WRdsDisableLPTValue uint32
WRdsDisableCcmStatus int32
WRdsDisableCcmValue uint32
WRdsDisableCdmStatus int32
WRdsDisableCdmValue uint32
WRdsDisableCpmStatus int32
WRdsDisableCpmValue uint32
WRdsDisablePnpStatus int32
WRdsDisablePnpValue uint32
WRdsEncryptionLevelStatus int32
WRdsEncryptionValue uint32
WRdsColorDepthStatus int32
WRdsColorDepthValue uint32
WRdsDisableAutoReconnecetStatus int32
WRdsDisableAutoReconnecetValue uint32
WRdsDisableEncryptionStatus int32
WRdsDisableEncryptionValue uint32
WRdsResetBrokenStatus int32
WRdsResetBrokenValue uint32
WRdsMaxIdleTimeStatus int32
WRdsMaxIdleTimeValue uint32
WRdsMaxDisconnectTimeStatus int32
WRdsMaxDisconnectTimeValue uint32
WRdsMaxConnectTimeStatus int32
WRdsMaxConnectTimeValue uint32
WRdsKeepAliveStatus int32
WRdsKeepAliveStartValue byte
WRdsKeepAliveIntervalValue uint32
}
type WRDS_SETTING struct {
WRdsSettings1 WRDS_SETTINGS_1
}
type WRDS_SETTINGS struct {
WRdsSettingType int32
WRdsSettingLevel int32
WRdsSetting WRDS_SETTING
}type
WRDS_SETTINGS_1 = record
WRdsDisableClipStatus: Integer;
WRdsDisableClipValue: DWORD;
WRdsDisableLPTStatus: Integer;
WRdsDisableLPTValue: DWORD;
WRdsDisableCcmStatus: Integer;
WRdsDisableCcmValue: DWORD;
WRdsDisableCdmStatus: Integer;
WRdsDisableCdmValue: DWORD;
WRdsDisableCpmStatus: Integer;
WRdsDisableCpmValue: DWORD;
WRdsDisablePnpStatus: Integer;
WRdsDisablePnpValue: DWORD;
WRdsEncryptionLevelStatus: Integer;
WRdsEncryptionValue: DWORD;
WRdsColorDepthStatus: Integer;
WRdsColorDepthValue: DWORD;
WRdsDisableAutoReconnecetStatus: Integer;
WRdsDisableAutoReconnecetValue: DWORD;
WRdsDisableEncryptionStatus: Integer;
WRdsDisableEncryptionValue: DWORD;
WRdsResetBrokenStatus: Integer;
WRdsResetBrokenValue: DWORD;
WRdsMaxIdleTimeStatus: Integer;
WRdsMaxIdleTimeValue: DWORD;
WRdsMaxDisconnectTimeStatus: Integer;
WRdsMaxDisconnectTimeValue: DWORD;
WRdsMaxConnectTimeStatus: Integer;
WRdsMaxConnectTimeValue: DWORD;
WRdsKeepAliveStatus: Integer;
WRdsKeepAliveStartValue: ByteBool;
WRdsKeepAliveIntervalValue: DWORD;
end;
WRDS_SETTING = record
WRdsSettings1: WRDS_SETTINGS_1;
end;
WRDS_SETTINGS = record
WRdsSettingType: Integer;
WRdsSettingLevel: Integer;
WRdsSetting: WRDS_SETTING;
end;const WRDS_SETTINGS_1 = extern struct {
WRdsDisableClipStatus: i32,
WRdsDisableClipValue: u32,
WRdsDisableLPTStatus: i32,
WRdsDisableLPTValue: u32,
WRdsDisableCcmStatus: i32,
WRdsDisableCcmValue: u32,
WRdsDisableCdmStatus: i32,
WRdsDisableCdmValue: u32,
WRdsDisableCpmStatus: i32,
WRdsDisableCpmValue: u32,
WRdsDisablePnpStatus: i32,
WRdsDisablePnpValue: u32,
WRdsEncryptionLevelStatus: i32,
WRdsEncryptionValue: u32,
WRdsColorDepthStatus: i32,
WRdsColorDepthValue: u32,
WRdsDisableAutoReconnecetStatus: i32,
WRdsDisableAutoReconnecetValue: u32,
WRdsDisableEncryptionStatus: i32,
WRdsDisableEncryptionValue: u32,
WRdsResetBrokenStatus: i32,
WRdsResetBrokenValue: u32,
WRdsMaxIdleTimeStatus: i32,
WRdsMaxIdleTimeValue: u32,
WRdsMaxDisconnectTimeStatus: i32,
WRdsMaxDisconnectTimeValue: u32,
WRdsMaxConnectTimeStatus: i32,
WRdsMaxConnectTimeValue: u32,
WRdsKeepAliveStatus: i32,
WRdsKeepAliveStartValue: u8,
WRdsKeepAliveIntervalValue: u32,
};
const WRDS_SETTING = extern struct {
WRdsSettings1: WRDS_SETTINGS_1,
};
const WRDS_SETTINGS = extern struct {
WRdsSettingType: i32,
WRdsSettingLevel: i32,
WRdsSetting: WRDS_SETTING,
};type
WRDS_SETTINGS_1 {.bycopy.} = object
WRdsDisableClipStatus: int32
WRdsDisableClipValue: uint32
WRdsDisableLPTStatus: int32
WRdsDisableLPTValue: uint32
WRdsDisableCcmStatus: int32
WRdsDisableCcmValue: uint32
WRdsDisableCdmStatus: int32
WRdsDisableCdmValue: uint32
WRdsDisableCpmStatus: int32
WRdsDisableCpmValue: uint32
WRdsDisablePnpStatus: int32
WRdsDisablePnpValue: uint32
WRdsEncryptionLevelStatus: int32
WRdsEncryptionValue: uint32
WRdsColorDepthStatus: int32
WRdsColorDepthValue: uint32
WRdsDisableAutoReconnecetStatus: int32
WRdsDisableAutoReconnecetValue: uint32
WRdsDisableEncryptionStatus: int32
WRdsDisableEncryptionValue: uint32
WRdsResetBrokenStatus: int32
WRdsResetBrokenValue: uint32
WRdsMaxIdleTimeStatus: int32
WRdsMaxIdleTimeValue: uint32
WRdsMaxDisconnectTimeStatus: int32
WRdsMaxDisconnectTimeValue: uint32
WRdsMaxConnectTimeStatus: int32
WRdsMaxConnectTimeValue: uint32
WRdsKeepAliveStatus: int32
WRdsKeepAliveStartValue: uint8
WRdsKeepAliveIntervalValue: uint32
WRDS_SETTING {.bycopy.} = object
WRdsSettings1: WRDS_SETTINGS_1
WRDS_SETTINGS {.bycopy.} = object
WRdsSettingType: int32
WRdsSettingLevel: int32
WRdsSetting: WRDS_SETTINGstruct WRDS_SETTINGS_1
{
int WRdsDisableClipStatus;
uint WRdsDisableClipValue;
int WRdsDisableLPTStatus;
uint WRdsDisableLPTValue;
int WRdsDisableCcmStatus;
uint WRdsDisableCcmValue;
int WRdsDisableCdmStatus;
uint WRdsDisableCdmValue;
int WRdsDisableCpmStatus;
uint WRdsDisableCpmValue;
int WRdsDisablePnpStatus;
uint WRdsDisablePnpValue;
int WRdsEncryptionLevelStatus;
uint WRdsEncryptionValue;
int WRdsColorDepthStatus;
uint WRdsColorDepthValue;
int WRdsDisableAutoReconnecetStatus;
uint WRdsDisableAutoReconnecetValue;
int WRdsDisableEncryptionStatus;
uint WRdsDisableEncryptionValue;
int WRdsResetBrokenStatus;
uint WRdsResetBrokenValue;
int WRdsMaxIdleTimeStatus;
uint WRdsMaxIdleTimeValue;
int WRdsMaxDisconnectTimeStatus;
uint WRdsMaxDisconnectTimeValue;
int WRdsMaxConnectTimeStatus;
uint WRdsMaxConnectTimeValue;
int WRdsKeepAliveStatus;
ubyte WRdsKeepAliveStartValue;
uint WRdsKeepAliveIntervalValue;
}
struct WRDS_SETTING
{
WRDS_SETTINGS_1 WRdsSettings1;
}
struct WRDS_SETTINGS
{
int WRdsSettingType;
int WRdsSettingLevel;
WRDS_SETTING WRdsSetting;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; WRDS_SETTINGS サイズ: 132 バイト(x64)
dim st, 33 ; 4byte整数×33(構造体サイズ 132 / 4 切り上げ)
; WRdsSettingType : WRDS_SETTING_TYPE (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; WRdsSettingLevel : WRDS_SETTING_LEVEL (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; WRdsSetting : WRDS_SETTING (+8, 124byte) varptr(st)+8 を基点に操作(124byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global WRDS_SETTINGS
#field int WRdsSettingType
#field int WRdsSettingLevel
#field byte WRdsSetting 124
#endstruct
stdim st, WRDS_SETTINGS ; NSTRUCT 変数を確保
st->WRdsSettingType = 100
mes "WRdsSettingType=" + st->WRdsSettingType
; ※union フィールドは byte 列で確保(NSTRUCT は union 非対応)。必要に応じ手動でアクセス。