Win32 API 日本語リファレンス
ホームNetworkManagement.NetManagement › WKSTA_INFO_302

WKSTA_INFO_302

構造体
サイズx64: 88 バイト / x86: 80 バイト

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
wki302_char_waitDWORD4+0+0通信デバイスが利用可能になるまで待機する時間をミリ秒単位で示す。
wki302_collection_timeDWORD4+4+4文字データをバッファに蓄積する待機時間をミリ秒単位で示す。
wki302_maximum_collection_countDWORD4+8+8送信前にバッファに蓄積する文字数の上限を示す。
wki302_keep_connDWORD4+12+12未使用接続を維持する時間を秒単位で示す。
wki302_keep_searchDWORD4+16+16未使用の検索ハンドルを維持する時間を秒単位で示す。
wki302_max_cmdsDWORD4+20+20サーバーへ同時送信可能なコマンド(SMB)の最大数を示す。
wki302_num_work_bufDWORD4+24+24ワークステーションが使用する作業バッファの数を示す。
wki302_siz_work_bufDWORD4+28+28各作業バッファのサイズをバイト単位で示す。
wki302_max_wrk_cacheDWORD4+32+32内部キャッシュ用バッファの最大サイズをバイト単位で示す。
wki302_sess_timeoutDWORD4+36+36応答のないセッションを切断するまでの時間を秒単位で示す。
wki302_siz_errorDWORD4+40+40内部エラーログバッファのサイズをバイト単位で示す。
wki302_num_alertsDWORD4+44+44登録可能なアラート受信クライアントの最大数を示す。
wki302_num_servicesDWORD4+48+48ワークステーションが起動可能なサービスの数を示す。
wki302_errlog_szDWORD4+52+52エラーログファイルの最大サイズをキロバイト単位で示す。
wki302_print_buf_timeDWORD4+56+56印刷バッファをフラッシュするまでの待機時間を秒単位で示す。
wki302_num_char_bufDWORD4+60+60文字パイプ・通信デバイス用バッファの数を示す。
wki302_siz_char_bufDWORD4+64+64各文字バッファのサイズをバイト単位で示す。
wki302_wrk_heuristicsLPWSTR8/4+72+68ワークステーションの動作を調整するヒューリスティック文字列へのポインタ。
wki302_mailslotsDWORD4+80+72ワークステーションが使用可能なメールスロットの最大数を示す。
wki302_num_dgram_bufDWORD4+84+76受信データグラム用バッファの数を示す。

各言語での定義

#include <windows.h>

// WKSTA_INFO_302  (x64 88 / x86 80 バイト)
typedef struct WKSTA_INFO_302 {
    DWORD wki302_char_wait;
    DWORD wki302_collection_time;
    DWORD wki302_maximum_collection_count;
    DWORD wki302_keep_conn;
    DWORD wki302_keep_search;
    DWORD wki302_max_cmds;
    DWORD wki302_num_work_buf;
    DWORD wki302_siz_work_buf;
    DWORD wki302_max_wrk_cache;
    DWORD wki302_sess_timeout;
    DWORD wki302_siz_error;
    DWORD wki302_num_alerts;
    DWORD wki302_num_services;
    DWORD wki302_errlog_sz;
    DWORD wki302_print_buf_time;
    DWORD wki302_num_char_buf;
    DWORD wki302_siz_char_buf;
    LPWSTR wki302_wrk_heuristics;
    DWORD wki302_mailslots;
    DWORD wki302_num_dgram_buf;
} WKSTA_INFO_302;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct WKSTA_INFO_302
{
    public uint wki302_char_wait;
    public uint wki302_collection_time;
    public uint wki302_maximum_collection_count;
    public uint wki302_keep_conn;
    public uint wki302_keep_search;
    public uint wki302_max_cmds;
    public uint wki302_num_work_buf;
    public uint wki302_siz_work_buf;
    public uint wki302_max_wrk_cache;
    public uint wki302_sess_timeout;
    public uint wki302_siz_error;
    public uint wki302_num_alerts;
    public uint wki302_num_services;
    public uint wki302_errlog_sz;
    public uint wki302_print_buf_time;
    public uint wki302_num_char_buf;
    public uint wki302_siz_char_buf;
    public IntPtr wki302_wrk_heuristics;
    public uint wki302_mailslots;
    public uint wki302_num_dgram_buf;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure WKSTA_INFO_302
    Public wki302_char_wait As UInteger
    Public wki302_collection_time As UInteger
    Public wki302_maximum_collection_count As UInteger
    Public wki302_keep_conn As UInteger
    Public wki302_keep_search As UInteger
    Public wki302_max_cmds As UInteger
    Public wki302_num_work_buf As UInteger
    Public wki302_siz_work_buf As UInteger
    Public wki302_max_wrk_cache As UInteger
    Public wki302_sess_timeout As UInteger
    Public wki302_siz_error As UInteger
    Public wki302_num_alerts As UInteger
    Public wki302_num_services As UInteger
    Public wki302_errlog_sz As UInteger
    Public wki302_print_buf_time As UInteger
    Public wki302_num_char_buf As UInteger
    Public wki302_siz_char_buf As UInteger
    Public wki302_wrk_heuristics As IntPtr
    Public wki302_mailslots As UInteger
    Public wki302_num_dgram_buf As UInteger
End Structure
import ctypes
from ctypes import wintypes

class WKSTA_INFO_302(ctypes.Structure):
    _fields_ = [
        ("wki302_char_wait", wintypes.DWORD),
        ("wki302_collection_time", wintypes.DWORD),
        ("wki302_maximum_collection_count", wintypes.DWORD),
        ("wki302_keep_conn", wintypes.DWORD),
        ("wki302_keep_search", wintypes.DWORD),
        ("wki302_max_cmds", wintypes.DWORD),
        ("wki302_num_work_buf", wintypes.DWORD),
        ("wki302_siz_work_buf", wintypes.DWORD),
        ("wki302_max_wrk_cache", wintypes.DWORD),
        ("wki302_sess_timeout", wintypes.DWORD),
        ("wki302_siz_error", wintypes.DWORD),
        ("wki302_num_alerts", wintypes.DWORD),
        ("wki302_num_services", wintypes.DWORD),
        ("wki302_errlog_sz", wintypes.DWORD),
        ("wki302_print_buf_time", wintypes.DWORD),
        ("wki302_num_char_buf", wintypes.DWORD),
        ("wki302_siz_char_buf", wintypes.DWORD),
        ("wki302_wrk_heuristics", ctypes.c_void_p),
        ("wki302_mailslots", wintypes.DWORD),
        ("wki302_num_dgram_buf", wintypes.DWORD),
    ]
#[repr(C)]
pub struct WKSTA_INFO_302 {
    pub wki302_char_wait: u32,
    pub wki302_collection_time: u32,
    pub wki302_maximum_collection_count: u32,
    pub wki302_keep_conn: u32,
    pub wki302_keep_search: u32,
    pub wki302_max_cmds: u32,
    pub wki302_num_work_buf: u32,
    pub wki302_siz_work_buf: u32,
    pub wki302_max_wrk_cache: u32,
    pub wki302_sess_timeout: u32,
    pub wki302_siz_error: u32,
    pub wki302_num_alerts: u32,
    pub wki302_num_services: u32,
    pub wki302_errlog_sz: u32,
    pub wki302_print_buf_time: u32,
    pub wki302_num_char_buf: u32,
    pub wki302_siz_char_buf: u32,
    pub wki302_wrk_heuristics: *mut core::ffi::c_void,
    pub wki302_mailslots: u32,
    pub wki302_num_dgram_buf: u32,
}
import "golang.org/x/sys/windows"

type WKSTA_INFO_302 struct {
	wki302_char_wait uint32
	wki302_collection_time uint32
	wki302_maximum_collection_count uint32
	wki302_keep_conn uint32
	wki302_keep_search uint32
	wki302_max_cmds uint32
	wki302_num_work_buf uint32
	wki302_siz_work_buf uint32
	wki302_max_wrk_cache uint32
	wki302_sess_timeout uint32
	wki302_siz_error uint32
	wki302_num_alerts uint32
	wki302_num_services uint32
	wki302_errlog_sz uint32
	wki302_print_buf_time uint32
	wki302_num_char_buf uint32
	wki302_siz_char_buf uint32
	wki302_wrk_heuristics uintptr
	wki302_mailslots uint32
	wki302_num_dgram_buf uint32
}
type
  WKSTA_INFO_302 = record
    wki302_char_wait: DWORD;
    wki302_collection_time: DWORD;
    wki302_maximum_collection_count: DWORD;
    wki302_keep_conn: DWORD;
    wki302_keep_search: DWORD;
    wki302_max_cmds: DWORD;
    wki302_num_work_buf: DWORD;
    wki302_siz_work_buf: DWORD;
    wki302_max_wrk_cache: DWORD;
    wki302_sess_timeout: DWORD;
    wki302_siz_error: DWORD;
    wki302_num_alerts: DWORD;
    wki302_num_services: DWORD;
    wki302_errlog_sz: DWORD;
    wki302_print_buf_time: DWORD;
    wki302_num_char_buf: DWORD;
    wki302_siz_char_buf: DWORD;
    wki302_wrk_heuristics: Pointer;
    wki302_mailslots: DWORD;
    wki302_num_dgram_buf: DWORD;
  end;
const WKSTA_INFO_302 = extern struct {
    wki302_char_wait: u32,
    wki302_collection_time: u32,
    wki302_maximum_collection_count: u32,
    wki302_keep_conn: u32,
    wki302_keep_search: u32,
    wki302_max_cmds: u32,
    wki302_num_work_buf: u32,
    wki302_siz_work_buf: u32,
    wki302_max_wrk_cache: u32,
    wki302_sess_timeout: u32,
    wki302_siz_error: u32,
    wki302_num_alerts: u32,
    wki302_num_services: u32,
    wki302_errlog_sz: u32,
    wki302_print_buf_time: u32,
    wki302_num_char_buf: u32,
    wki302_siz_char_buf: u32,
    wki302_wrk_heuristics: ?*anyopaque,
    wki302_mailslots: u32,
    wki302_num_dgram_buf: u32,
};
type
  WKSTA_INFO_302 {.bycopy.} = object
    wki302_char_wait: uint32
    wki302_collection_time: uint32
    wki302_maximum_collection_count: uint32
    wki302_keep_conn: uint32
    wki302_keep_search: uint32
    wki302_max_cmds: uint32
    wki302_num_work_buf: uint32
    wki302_siz_work_buf: uint32
    wki302_max_wrk_cache: uint32
    wki302_sess_timeout: uint32
    wki302_siz_error: uint32
    wki302_num_alerts: uint32
    wki302_num_services: uint32
    wki302_errlog_sz: uint32
    wki302_print_buf_time: uint32
    wki302_num_char_buf: uint32
    wki302_siz_char_buf: uint32
    wki302_wrk_heuristics: pointer
    wki302_mailslots: uint32
    wki302_num_dgram_buf: uint32
struct WKSTA_INFO_302
{
    uint wki302_char_wait;
    uint wki302_collection_time;
    uint wki302_maximum_collection_count;
    uint wki302_keep_conn;
    uint wki302_keep_search;
    uint wki302_max_cmds;
    uint wki302_num_work_buf;
    uint wki302_siz_work_buf;
    uint wki302_max_wrk_cache;
    uint wki302_sess_timeout;
    uint wki302_siz_error;
    uint wki302_num_alerts;
    uint wki302_num_services;
    uint wki302_errlog_sz;
    uint wki302_print_buf_time;
    uint wki302_num_char_buf;
    uint wki302_siz_char_buf;
    void* wki302_wrk_heuristics;
    uint wki302_mailslots;
    uint wki302_num_dgram_buf;
}

HSP用 定義

HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; WKSTA_INFO_302 サイズ: 80 バイト(x86)
dim st, 20    ; 4byte整数×20(構造体サイズ 80 / 4 切り上げ)
; wki302_char_wait : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; wki302_collection_time : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; wki302_maximum_collection_count : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; wki302_keep_conn : DWORD (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; wki302_keep_search : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; wki302_max_cmds : DWORD (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; wki302_num_work_buf : DWORD (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; wki302_siz_work_buf : DWORD (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; wki302_max_wrk_cache : DWORD (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; wki302_sess_timeout : DWORD (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; wki302_siz_error : DWORD (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; wki302_num_alerts : DWORD (+44, 4byte)  st.11 = 値  /  値 = st.11   (lpoke/lpeek も可)
; wki302_num_services : DWORD (+48, 4byte)  st.12 = 値  /  値 = st.12   (lpoke/lpeek も可)
; wki302_errlog_sz : DWORD (+52, 4byte)  st.13 = 値  /  値 = st.13   (lpoke/lpeek も可)
; wki302_print_buf_time : DWORD (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; wki302_num_char_buf : DWORD (+60, 4byte)  st.15 = 値  /  値 = st.15   (lpoke/lpeek も可)
; wki302_siz_char_buf : DWORD (+64, 4byte)  st.16 = 値  /  値 = st.16   (lpoke/lpeek も可)
; wki302_wrk_heuristics : LPWSTR (+68, 4byte)  st.17 = 値  /  値 = st.17   (lpoke/lpeek も可)
; wki302_mailslots : DWORD (+72, 4byte)  st.18 = 値  /  値 = st.18   (lpoke/lpeek も可)
; wki302_num_dgram_buf : DWORD (+76, 4byte)  st.19 = 値  /  値 = st.19   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; WKSTA_INFO_302 サイズ: 88 バイト(x64)
dim st, 22    ; 4byte整数×22(構造体サイズ 88 / 4 切り上げ)
; wki302_char_wait : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; wki302_collection_time : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; wki302_maximum_collection_count : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; wki302_keep_conn : DWORD (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; wki302_keep_search : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; wki302_max_cmds : DWORD (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; wki302_num_work_buf : DWORD (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; wki302_siz_work_buf : DWORD (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; wki302_max_wrk_cache : DWORD (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; wki302_sess_timeout : DWORD (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; wki302_siz_error : DWORD (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; wki302_num_alerts : DWORD (+44, 4byte)  st.11 = 値  /  値 = st.11   (lpoke/lpeek も可)
; wki302_num_services : DWORD (+48, 4byte)  st.12 = 値  /  値 = st.12   (lpoke/lpeek も可)
; wki302_errlog_sz : DWORD (+52, 4byte)  st.13 = 値  /  値 = st.13   (lpoke/lpeek も可)
; wki302_print_buf_time : DWORD (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; wki302_num_char_buf : DWORD (+60, 4byte)  st.15 = 値  /  値 = st.15   (lpoke/lpeek も可)
; wki302_siz_char_buf : DWORD (+64, 4byte)  st.16 = 値  /  値 = st.16   (lpoke/lpeek も可)
; wki302_wrk_heuristics : LPWSTR (+72, 8byte)  qpoke st,72,値 / qpeek(st,72)  ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; wki302_mailslots : DWORD (+80, 4byte)  st.20 = 値  /  値 = st.20   (lpoke/lpeek も可)
; wki302_num_dgram_buf : DWORD (+84, 4byte)  st.21 = 値  /  値 = st.21   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global WKSTA_INFO_302
    #field int wki302_char_wait
    #field int wki302_collection_time
    #field int wki302_maximum_collection_count
    #field int wki302_keep_conn
    #field int wki302_keep_search
    #field int wki302_max_cmds
    #field int wki302_num_work_buf
    #field int wki302_siz_work_buf
    #field int wki302_max_wrk_cache
    #field int wki302_sess_timeout
    #field int wki302_siz_error
    #field int wki302_num_alerts
    #field int wki302_num_services
    #field int wki302_errlog_sz
    #field int wki302_print_buf_time
    #field int wki302_num_char_buf
    #field int wki302_siz_char_buf
    #field intptr wki302_wrk_heuristics
    #field int wki302_mailslots
    #field int wki302_num_dgram_buf
#endstruct

stdim st, WKSTA_INFO_302        ; NSTRUCT 変数を確保
st->wki302_char_wait = 100
mes "wki302_char_wait=" + st->wki302_char_wait