ホーム › System.WinRT › ServerInformation
ServerInformation
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| dwServerPid | DWORD | 4 | +0 | +0 | アウトオブプロセスサーバーのプロセスID。 |
| dwServerTid | DWORD | 4 | +4 | +4 | サーバー呼び出しを処理するスレッドID。 |
| ui64ServerAddress | ULONGLONG | 8 | +8 | +8 | サーバーオブジェクトのアドレスを表す64ビット値。 |
各言語での定義
#include <windows.h>
// ServerInformation (x64 16 / x86 16 バイト)
typedef struct ServerInformation {
DWORD dwServerPid;
DWORD dwServerTid;
ULONGLONG ui64ServerAddress;
} ServerInformation;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct ServerInformation
{
public uint dwServerPid;
public uint dwServerTid;
public ulong ui64ServerAddress;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure ServerInformation
Public dwServerPid As UInteger
Public dwServerTid As UInteger
Public ui64ServerAddress As ULong
End Structureimport ctypes
from ctypes import wintypes
class ServerInformation(ctypes.Structure):
_fields_ = [
("dwServerPid", wintypes.DWORD),
("dwServerTid", wintypes.DWORD),
("ui64ServerAddress", ctypes.c_ulonglong),
]#[repr(C)]
pub struct ServerInformation {
pub dwServerPid: u32,
pub dwServerTid: u32,
pub ui64ServerAddress: u64,
}import "golang.org/x/sys/windows"
type ServerInformation struct {
dwServerPid uint32
dwServerTid uint32
ui64ServerAddress uint64
}type
ServerInformation = record
dwServerPid: DWORD;
dwServerTid: DWORD;
ui64ServerAddress: UInt64;
end;const ServerInformation = extern struct {
dwServerPid: u32,
dwServerTid: u32,
ui64ServerAddress: u64,
};type
ServerInformation {.bycopy.} = object
dwServerPid: uint32
dwServerTid: uint32
ui64ServerAddress: uint64struct ServerInformation
{
uint dwServerPid;
uint dwServerTid;
ulong ui64ServerAddress;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; ServerInformation サイズ: 16 バイト(x64)
dim st, 4 ; 4byte整数×4(構造体サイズ 16 / 4 切り上げ)
; dwServerPid : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; dwServerTid : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; ui64ServerAddress : ULONGLONG (+8, 8byte) qpoke st,8,値 / qpeek(st,8) ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global ServerInformation
#field int dwServerPid
#field int dwServerTid
#field int64 ui64ServerAddress
#endstruct
stdim st, ServerInformation ; NSTRUCT 変数を確保
st->dwServerPid = 100
mes "dwServerPid=" + st->dwServerPid