ホーム › NetworkManagement.Dhcp › DHCP_SERVER_CONFIG_INFO_V6
DHCP_SERVER_CONFIG_INFO_V6
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| UnicastFlag | BOOL | 4 | +0 | +0 | ユニキャスト通信を許可するかを示すブール値。 |
| RapidCommitFlag | BOOL | 4 | +4 | +4 | Rapid Commit(2メッセージ交換)を許可するかを示すブール値。 |
| PreferredLifetime | DWORD | 4 | +8 | +8 | IA_NAアドレスの優先有効期間を秒単位で示す。 |
| ValidLifetime | DWORD | 4 | +12 | +12 | IA_NAアドレスの絶対有効期間を秒単位で示す。 |
| T1 | DWORD | 4 | +16 | +16 | リース更新(Renew)開始までの時間を秒単位で示す。 |
| T2 | DWORD | 4 | +20 | +20 | リース再バインド(Rebind)開始までの時間を秒単位で示す。 |
| PreferredLifetimeIATA | DWORD | 4 | +24 | +24 | IA_TA(一時アドレス)の優先有効期間を秒単位で示す。 |
| ValidLifetimeIATA | DWORD | 4 | +28 | +28 | IA_TA(一時アドレス)の絶対有効期間を秒単位で示す。 |
| fAuditLog | BOOL | 4 | +32 | +32 | 監査ログ記録が有効かを示すブール値。 |
各言語での定義
#include <windows.h>
// DHCP_SERVER_CONFIG_INFO_V6 (x64 36 / x86 36 バイト)
typedef struct DHCP_SERVER_CONFIG_INFO_V6 {
BOOL UnicastFlag;
BOOL RapidCommitFlag;
DWORD PreferredLifetime;
DWORD ValidLifetime;
DWORD T1;
DWORD T2;
DWORD PreferredLifetimeIATA;
DWORD ValidLifetimeIATA;
BOOL fAuditLog;
} DHCP_SERVER_CONFIG_INFO_V6;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DHCP_SERVER_CONFIG_INFO_V6
{
[MarshalAs(UnmanagedType.Bool)] public bool UnicastFlag;
[MarshalAs(UnmanagedType.Bool)] public bool RapidCommitFlag;
public uint PreferredLifetime;
public uint ValidLifetime;
public uint T1;
public uint T2;
public uint PreferredLifetimeIATA;
public uint ValidLifetimeIATA;
[MarshalAs(UnmanagedType.Bool)] public bool fAuditLog;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DHCP_SERVER_CONFIG_INFO_V6
<MarshalAs(UnmanagedType.Bool)> Public UnicastFlag As Boolean
<MarshalAs(UnmanagedType.Bool)> Public RapidCommitFlag As Boolean
Public PreferredLifetime As UInteger
Public ValidLifetime As UInteger
Public T1 As UInteger
Public T2 As UInteger
Public PreferredLifetimeIATA As UInteger
Public ValidLifetimeIATA As UInteger
<MarshalAs(UnmanagedType.Bool)> Public fAuditLog As Boolean
End Structureimport ctypes
from ctypes import wintypes
class DHCP_SERVER_CONFIG_INFO_V6(ctypes.Structure):
_fields_ = [
("UnicastFlag", wintypes.BOOL),
("RapidCommitFlag", wintypes.BOOL),
("PreferredLifetime", wintypes.DWORD),
("ValidLifetime", wintypes.DWORD),
("T1", wintypes.DWORD),
("T2", wintypes.DWORD),
("PreferredLifetimeIATA", wintypes.DWORD),
("ValidLifetimeIATA", wintypes.DWORD),
("fAuditLog", wintypes.BOOL),
]#[repr(C)]
pub struct DHCP_SERVER_CONFIG_INFO_V6 {
pub UnicastFlag: i32,
pub RapidCommitFlag: i32,
pub PreferredLifetime: u32,
pub ValidLifetime: u32,
pub T1: u32,
pub T2: u32,
pub PreferredLifetimeIATA: u32,
pub ValidLifetimeIATA: u32,
pub fAuditLog: i32,
}import "golang.org/x/sys/windows"
type DHCP_SERVER_CONFIG_INFO_V6 struct {
UnicastFlag int32
RapidCommitFlag int32
PreferredLifetime uint32
ValidLifetime uint32
T1 uint32
T2 uint32
PreferredLifetimeIATA uint32
ValidLifetimeIATA uint32
fAuditLog int32
}type
DHCP_SERVER_CONFIG_INFO_V6 = record
UnicastFlag: BOOL;
RapidCommitFlag: BOOL;
PreferredLifetime: DWORD;
ValidLifetime: DWORD;
T1: DWORD;
T2: DWORD;
PreferredLifetimeIATA: DWORD;
ValidLifetimeIATA: DWORD;
fAuditLog: BOOL;
end;const DHCP_SERVER_CONFIG_INFO_V6 = extern struct {
UnicastFlag: i32,
RapidCommitFlag: i32,
PreferredLifetime: u32,
ValidLifetime: u32,
T1: u32,
T2: u32,
PreferredLifetimeIATA: u32,
ValidLifetimeIATA: u32,
fAuditLog: i32,
};type
DHCP_SERVER_CONFIG_INFO_V6 {.bycopy.} = object
UnicastFlag: int32
RapidCommitFlag: int32
PreferredLifetime: uint32
ValidLifetime: uint32
T1: uint32
T2: uint32
PreferredLifetimeIATA: uint32
ValidLifetimeIATA: uint32
fAuditLog: int32struct DHCP_SERVER_CONFIG_INFO_V6
{
int UnicastFlag;
int RapidCommitFlag;
uint PreferredLifetime;
uint ValidLifetime;
uint T1;
uint T2;
uint PreferredLifetimeIATA;
uint ValidLifetimeIATA;
int fAuditLog;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; DHCP_SERVER_CONFIG_INFO_V6 サイズ: 36 バイト(x64)
dim st, 9 ; 4byte整数×9(構造体サイズ 36 / 4 切り上げ)
; UnicastFlag : BOOL (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; RapidCommitFlag : BOOL (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; PreferredLifetime : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; ValidLifetime : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; T1 : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; T2 : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; PreferredLifetimeIATA : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; ValidLifetimeIATA : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; fAuditLog : BOOL (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global DHCP_SERVER_CONFIG_INFO_V6
#field bool UnicastFlag
#field bool RapidCommitFlag
#field int PreferredLifetime
#field int ValidLifetime
#field int T1
#field int T2
#field int PreferredLifetimeIATA
#field int ValidLifetimeIATA
#field bool fAuditLog
#endstruct
stdim st, DHCP_SERVER_CONFIG_INFO_V6 ; NSTRUCT 変数を確保
st->UnicastFlag = 100
mes "UnicastFlag=" + st->UnicastFlag