ホーム › NetworkManagement.WindowsFirewall › NETCON_PROPERTIES
NETCON_PROPERTIES
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| guidId | GUID | 16 | +0 | +0 | この接続のグローバル一意識別子 (GUID) です。 |
| pszwName | LPWSTR | 8/4 | +16 | +16 | 接続自体の名前です。 |
| pszwDeviceName | LPWSTR | 8/4 | +24 | +20 | 接続に関連付けられたデバイスの名前です。 |
| Status | NETCON_STATUS | 4 | +32 | +24 | 接続の現在の状態です。 |
| MediaType | NETCON_MEDIATYPE | 4 | +36 | +28 | この接続に関連付けられたメディアの種類です。 |
| dwCharacter | DWORD | 4 | +40 | +32 | この接続の特性です。 |
| clsidThisObject | GUID | 16 | +44 | +36 | 接続オブジェクトのクラス識別子です。 |
| clsidUiObject | GUID | 16 | +60 | +52 | ユーザーインターフェイスオブジェクトのクラス識別子です。 |
公式ドキュメント
[インターネット接続ファイアウォールは、以降のバージョンで変更されるか、利用できなくなる可能性があります。代わりに Windows ファイアウォール API を使用してください。]
NETCON_PROPERTIES 構造体は、ネットワーク接続のプロパティを表す値を格納します。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
#include <windows.h>
// NETCON_PROPERTIES (x64 80 / x86 68 バイト)
typedef struct NETCON_PROPERTIES {
GUID guidId;
LPWSTR pszwName;
LPWSTR pszwDeviceName;
NETCON_STATUS Status;
NETCON_MEDIATYPE MediaType;
DWORD dwCharacter;
GUID clsidThisObject;
GUID clsidUiObject;
} NETCON_PROPERTIES;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NETCON_PROPERTIES
{
public Guid guidId;
public IntPtr pszwName;
public IntPtr pszwDeviceName;
public int Status;
public int MediaType;
public uint dwCharacter;
public Guid clsidThisObject;
public Guid clsidUiObject;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NETCON_PROPERTIES
Public guidId As Guid
Public pszwName As IntPtr
Public pszwDeviceName As IntPtr
Public Status As Integer
Public MediaType As Integer
Public dwCharacter As UInteger
Public clsidThisObject As Guid
Public clsidUiObject As Guid
End Structureimport ctypes
from ctypes import wintypes
class NETCON_PROPERTIES(ctypes.Structure):
_fields_ = [
("guidId", GUID),
("pszwName", ctypes.c_void_p),
("pszwDeviceName", ctypes.c_void_p),
("Status", ctypes.c_int),
("MediaType", ctypes.c_int),
("dwCharacter", wintypes.DWORD),
("clsidThisObject", GUID),
("clsidUiObject", GUID),
]#[repr(C)]
pub struct NETCON_PROPERTIES {
pub guidId: GUID,
pub pszwName: *mut core::ffi::c_void,
pub pszwDeviceName: *mut core::ffi::c_void,
pub Status: i32,
pub MediaType: i32,
pub dwCharacter: u32,
pub clsidThisObject: GUID,
pub clsidUiObject: GUID,
}import "golang.org/x/sys/windows"
type NETCON_PROPERTIES struct {
guidId windows.GUID
pszwName uintptr
pszwDeviceName uintptr
Status int32
MediaType int32
dwCharacter uint32
clsidThisObject windows.GUID
clsidUiObject windows.GUID
}type
NETCON_PROPERTIES = record
guidId: TGUID;
pszwName: Pointer;
pszwDeviceName: Pointer;
Status: Integer;
MediaType: Integer;
dwCharacter: DWORD;
clsidThisObject: TGUID;
clsidUiObject: TGUID;
end;const NETCON_PROPERTIES = extern struct {
guidId: GUID,
pszwName: ?*anyopaque,
pszwDeviceName: ?*anyopaque,
Status: i32,
MediaType: i32,
dwCharacter: u32,
clsidThisObject: GUID,
clsidUiObject: GUID,
};type
NETCON_PROPERTIES {.bycopy.} = object
guidId: GUID
pszwName: pointer
pszwDeviceName: pointer
Status: int32
MediaType: int32
dwCharacter: uint32
clsidThisObject: GUID
clsidUiObject: GUIDstruct NETCON_PROPERTIES
{
GUID guidId;
void* pszwName;
void* pszwDeviceName;
int Status;
int MediaType;
uint dwCharacter;
GUID clsidThisObject;
GUID clsidUiObject;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; NETCON_PROPERTIES サイズ: 68 バイト(x86)
dim st, 17 ; 4byte整数×17(構造体サイズ 68 / 4 切り上げ)
; guidId : GUID (+0, 16byte) varptr(st)+0 を基点に操作(16byte:入れ子/配列)
; pszwName : LPWSTR (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; pszwDeviceName : LPWSTR (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; Status : NETCON_STATUS (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; MediaType : NETCON_MEDIATYPE (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; dwCharacter : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; clsidThisObject : GUID (+36, 16byte) varptr(st)+36 を基点に操作(16byte:入れ子/配列)
; clsidUiObject : GUID (+52, 16byte) varptr(st)+52 を基点に操作(16byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; NETCON_PROPERTIES サイズ: 80 バイト(x64)
dim st, 20 ; 4byte整数×20(構造体サイズ 80 / 4 切り上げ)
; guidId : GUID (+0, 16byte) varptr(st)+0 を基点に操作(16byte:入れ子/配列)
; pszwName : LPWSTR (+16, 8byte) qpoke st,16,値 / qpeek(st,16) ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; pszwDeviceName : LPWSTR (+24, 8byte) qpoke st,24,値 / qpeek(st,24) ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; Status : NETCON_STATUS (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; MediaType : NETCON_MEDIATYPE (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; dwCharacter : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; clsidThisObject : GUID (+44, 16byte) varptr(st)+44 を基点に操作(16byte:入れ子/配列)
; clsidUiObject : GUID (+60, 16byte) varptr(st)+60 を基点に操作(16byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global GUID, pack=1
#field int Data1
#field short Data2
#field short Data3
#field byte Data4 8
#endstruct
#defstruct global NETCON_PROPERTIES
#field GUID guidId
#field intptr pszwName
#field intptr pszwDeviceName
#field int Status
#field int MediaType
#field int dwCharacter
#field GUID clsidThisObject
#field GUID clsidUiObject
#endstruct
stdim st, NETCON_PROPERTIES ; NSTRUCT 変数を確保
st->Status = 100
mes "Status=" + st->Status