ホーム › Networking.Clustering › CLUSPROP_BUFFER_HELPER
CLUSPROP_BUFFER_HELPER
共用体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| pb | BYTE* | 8/4 | +0 | +0 | バッファをバイト列として参照するポインターである。 |
| pw | WORD* | 8/4 | +0 | +0 | バッファを16ビットワード列として参照するポインターである。 |
| pdw | DWORD* | 8/4 | +0 | +0 | バッファを32ビットDWORD列として参照するポインターである。 |
| pl | INT* | 8/4 | +0 | +0 | バッファを符号付き整数列として参照するポインターである。 |
| psz | LPWSTR | 8/4 | +0 | +0 | バッファをワイド文字列として参照するポインターである。 |
| pList | CLUSPROP_LIST* | 8/4 | +0 | +0 | バッファをCLUSPROP_LIST(プロパティリスト)として参照するポインターである。 |
| pSyntax | CLUSPROP_SYNTAX* | 8/4 | +0 | +0 | バッファをCLUSPROP_SYNTAX(構文値)として参照するポインターである。 |
| pName | CLUSPROP_SZ* | 8/4 | +0 | +0 | バッファをCLUSPROP_SZ(プロパティ名)として参照するポインターである。 |
| pValue | CLUSPROP_VALUE* | 8/4 | +0 | +0 | バッファをCLUSPROP_VALUE(値ヘッダー)として参照するポインターである。 |
| pBinaryValue | CLUSPROP_BINARY* | 8/4 | +0 | +0 | バッファをCLUSPROP_BINARY(バイナリ値)として参照するポインターである。 |
| pWordValue | CLUSPROP_WORD* | 8/4 | +0 | +0 | バッファをCLUSPROP_WORD(WORD値)として参照するポインターである。 |
| pDwordValue | CLUSPROP_DWORD* | 8/4 | +0 | +0 | バッファをCLUSPROP_DWORD(DWORD値)として参照するポインターである。 |
| pLongValue | CLUSPROP_LONG* | 8/4 | +0 | +0 | バッファをCLUSPROP_LONG(LONG値)として参照するポインターである。 |
| pULargeIntegerValue | CLUSPROP_ULARGE_INTEGER* | 8/4 | +0 | +0 | バッファをCLUSPROP_ULARGE_INTEGER(符号なし64ビット値)として参照するポインターである。 |
| pLargeIntegerValue | CLUSPROP_LARGE_INTEGER* | 8/4 | +0 | +0 | バッファをCLUSPROP_LARGE_INTEGER(符号付き64ビット値)として参照するポインターである。 |
| pStringValue | CLUSPROP_SZ* | 8/4 | +0 | +0 | バッファをCLUSPROP_SZ(文字列値)として参照するポインターである。 |
| pMultiSzValue | CLUSPROP_SZ* | 8/4 | +0 | +0 | バッファをマルチ文字列(CLUSPROP_SZ)として参照するポインターである。 |
| pSecurityDescriptor | CLUSPROP_SECURITY_DESCRIPTOR* | 8/4 | +0 | +0 | バッファをCLUSPROP_SECURITY_DESCRIPTOR(SD値)として参照するポインターである。 |
| pResourceClassValue | CLUSPROP_RESOURCE_CLASS* | 8/4 | +0 | +0 | バッファをCLUSPROP_RESOURCE_CLASS(リソースクラス値)として参照するポインターである。 |
| pResourceClassInfoValue | CLUSPROP_RESOURCE_CLASS_INFO* | 8/4 | +0 | +0 | バッファをCLUSPROP_RESOURCE_CLASS_INFO(リソースクラス情報)として参照するポインターである。 |
| pDiskSignatureValue | CLUSPROP_DWORD* | 8/4 | +0 | +0 | バッファをディスク署名のCLUSPROP_DWORD値として参照するポインターである。 |
| pScsiAddressValue | CLUSPROP_SCSI_ADDRESS* | 8/4 | +0 | +0 | バッファをCLUSPROP_SCSI_ADDRESS(SCSIアドレス値)として参照するポインターである。 |
| pDiskNumberValue | CLUSPROP_DWORD* | 8/4 | +0 | +0 | バッファをディスク番号のCLUSPROP_DWORD値として参照するポインターである。 |
| pPartitionInfoValue | CLUSPROP_PARTITION_INFO* | 8/4 | +0 | +0 | バッファをCLUSPROP_PARTITION_INFO(パーティション情報)として参照するポインターである。 |
| pRequiredDependencyValue | CLUSPROP_REQUIRED_DEPENDENCY* | 8/4 | +0 | +0 | バッファをCLUSPROP_REQUIRED_DEPENDENCY(必須依存関係)として参照するポインターである。 |
| pPartitionInfoValueEx | CLUSPROP_PARTITION_INFO_EX* | 8/4 | +0 | +0 | バッファをCLUSPROP_PARTITION_INFO_EX(拡張パーティション情報)として参照するポインターである。 |
| pPartitionInfoValueEx2 | CLUSPROP_PARTITION_INFO_EX2* | 8/4 | +0 | +0 | バッファをCLUSPROP_PARTITION_INFO_EX2(拡張パーティション情報2)として参照するポインターである。 |
| pFileTimeValue | CLUSPROP_FILETIME* | 8/4 | +0 | +0 | バッファをCLUSPROP_FILETIME(日時値)として参照するポインターである。 |
各言語での定義
#include <windows.h>
// CLUSPROP_BUFFER_HELPER (x64 8 / x86 4 バイト)
typedef struct CLUSPROP_BUFFER_HELPER {
BYTE* pb;
WORD* pw;
DWORD* pdw;
INT* pl;
LPWSTR psz;
CLUSPROP_LIST* pList;
CLUSPROP_SYNTAX* pSyntax;
CLUSPROP_SZ* pName;
CLUSPROP_VALUE* pValue;
CLUSPROP_BINARY* pBinaryValue;
CLUSPROP_WORD* pWordValue;
CLUSPROP_DWORD* pDwordValue;
CLUSPROP_LONG* pLongValue;
CLUSPROP_ULARGE_INTEGER* pULargeIntegerValue;
CLUSPROP_LARGE_INTEGER* pLargeIntegerValue;
CLUSPROP_SZ* pStringValue;
CLUSPROP_SZ* pMultiSzValue;
CLUSPROP_SECURITY_DESCRIPTOR* pSecurityDescriptor;
CLUSPROP_RESOURCE_CLASS* pResourceClassValue;
CLUSPROP_RESOURCE_CLASS_INFO* pResourceClassInfoValue;
CLUSPROP_DWORD* pDiskSignatureValue;
CLUSPROP_SCSI_ADDRESS* pScsiAddressValue;
CLUSPROP_DWORD* pDiskNumberValue;
CLUSPROP_PARTITION_INFO* pPartitionInfoValue;
CLUSPROP_REQUIRED_DEPENDENCY* pRequiredDependencyValue;
CLUSPROP_PARTITION_INFO_EX* pPartitionInfoValueEx;
CLUSPROP_PARTITION_INFO_EX2* pPartitionInfoValueEx2;
CLUSPROP_FILETIME* pFileTimeValue;
} CLUSPROP_BUFFER_HELPER;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct CLUSPROP_BUFFER_HELPER
{
public IntPtr pb;
public IntPtr pw;
public IntPtr pdw;
public IntPtr pl;
public IntPtr psz;
public IntPtr pList;
public IntPtr pSyntax;
public IntPtr pName;
public IntPtr pValue;
public IntPtr pBinaryValue;
public IntPtr pWordValue;
public IntPtr pDwordValue;
public IntPtr pLongValue;
public IntPtr pULargeIntegerValue;
public IntPtr pLargeIntegerValue;
public IntPtr pStringValue;
public IntPtr pMultiSzValue;
public IntPtr pSecurityDescriptor;
public IntPtr pResourceClassValue;
public IntPtr pResourceClassInfoValue;
public IntPtr pDiskSignatureValue;
public IntPtr pScsiAddressValue;
public IntPtr pDiskNumberValue;
public IntPtr pPartitionInfoValue;
public IntPtr pRequiredDependencyValue;
public IntPtr pPartitionInfoValueEx;
public IntPtr pPartitionInfoValueEx2;
public IntPtr pFileTimeValue;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure CLUSPROP_BUFFER_HELPER
Public pb As IntPtr
Public pw As IntPtr
Public pdw As IntPtr
Public pl As IntPtr
Public psz As IntPtr
Public pList As IntPtr
Public pSyntax As IntPtr
Public pName As IntPtr
Public pValue As IntPtr
Public pBinaryValue As IntPtr
Public pWordValue As IntPtr
Public pDwordValue As IntPtr
Public pLongValue As IntPtr
Public pULargeIntegerValue As IntPtr
Public pLargeIntegerValue As IntPtr
Public pStringValue As IntPtr
Public pMultiSzValue As IntPtr
Public pSecurityDescriptor As IntPtr
Public pResourceClassValue As IntPtr
Public pResourceClassInfoValue As IntPtr
Public pDiskSignatureValue As IntPtr
Public pScsiAddressValue As IntPtr
Public pDiskNumberValue As IntPtr
Public pPartitionInfoValue As IntPtr
Public pRequiredDependencyValue As IntPtr
Public pPartitionInfoValueEx As IntPtr
Public pPartitionInfoValueEx2 As IntPtr
Public pFileTimeValue As IntPtr
End Structureimport ctypes
from ctypes import wintypes
class CLUSPROP_BUFFER_HELPER(ctypes.Structure):
_fields_ = [
("pb", ctypes.c_void_p),
("pw", ctypes.c_void_p),
("pdw", ctypes.c_void_p),
("pl", ctypes.c_void_p),
("psz", ctypes.c_void_p),
("pList", ctypes.c_void_p),
("pSyntax", ctypes.c_void_p),
("pName", ctypes.c_void_p),
("pValue", ctypes.c_void_p),
("pBinaryValue", ctypes.c_void_p),
("pWordValue", ctypes.c_void_p),
("pDwordValue", ctypes.c_void_p),
("pLongValue", ctypes.c_void_p),
("pULargeIntegerValue", ctypes.c_void_p),
("pLargeIntegerValue", ctypes.c_void_p),
("pStringValue", ctypes.c_void_p),
("pMultiSzValue", ctypes.c_void_p),
("pSecurityDescriptor", ctypes.c_void_p),
("pResourceClassValue", ctypes.c_void_p),
("pResourceClassInfoValue", ctypes.c_void_p),
("pDiskSignatureValue", ctypes.c_void_p),
("pScsiAddressValue", ctypes.c_void_p),
("pDiskNumberValue", ctypes.c_void_p),
("pPartitionInfoValue", ctypes.c_void_p),
("pRequiredDependencyValue", ctypes.c_void_p),
("pPartitionInfoValueEx", ctypes.c_void_p),
("pPartitionInfoValueEx2", ctypes.c_void_p),
("pFileTimeValue", ctypes.c_void_p),
]#[repr(C)]
pub struct CLUSPROP_BUFFER_HELPER {
pub pb: *mut core::ffi::c_void,
pub pw: *mut core::ffi::c_void,
pub pdw: *mut core::ffi::c_void,
pub pl: *mut core::ffi::c_void,
pub psz: *mut core::ffi::c_void,
pub pList: *mut core::ffi::c_void,
pub pSyntax: *mut core::ffi::c_void,
pub pName: *mut core::ffi::c_void,
pub pValue: *mut core::ffi::c_void,
pub pBinaryValue: *mut core::ffi::c_void,
pub pWordValue: *mut core::ffi::c_void,
pub pDwordValue: *mut core::ffi::c_void,
pub pLongValue: *mut core::ffi::c_void,
pub pULargeIntegerValue: *mut core::ffi::c_void,
pub pLargeIntegerValue: *mut core::ffi::c_void,
pub pStringValue: *mut core::ffi::c_void,
pub pMultiSzValue: *mut core::ffi::c_void,
pub pSecurityDescriptor: *mut core::ffi::c_void,
pub pResourceClassValue: *mut core::ffi::c_void,
pub pResourceClassInfoValue: *mut core::ffi::c_void,
pub pDiskSignatureValue: *mut core::ffi::c_void,
pub pScsiAddressValue: *mut core::ffi::c_void,
pub pDiskNumberValue: *mut core::ffi::c_void,
pub pPartitionInfoValue: *mut core::ffi::c_void,
pub pRequiredDependencyValue: *mut core::ffi::c_void,
pub pPartitionInfoValueEx: *mut core::ffi::c_void,
pub pPartitionInfoValueEx2: *mut core::ffi::c_void,
pub pFileTimeValue: *mut core::ffi::c_void,
}import "golang.org/x/sys/windows"
type CLUSPROP_BUFFER_HELPER struct {
pb uintptr
pw uintptr
pdw uintptr
pl uintptr
psz uintptr
pList uintptr
pSyntax uintptr
pName uintptr
pValue uintptr
pBinaryValue uintptr
pWordValue uintptr
pDwordValue uintptr
pLongValue uintptr
pULargeIntegerValue uintptr
pLargeIntegerValue uintptr
pStringValue uintptr
pMultiSzValue uintptr
pSecurityDescriptor uintptr
pResourceClassValue uintptr
pResourceClassInfoValue uintptr
pDiskSignatureValue uintptr
pScsiAddressValue uintptr
pDiskNumberValue uintptr
pPartitionInfoValue uintptr
pRequiredDependencyValue uintptr
pPartitionInfoValueEx uintptr
pPartitionInfoValueEx2 uintptr
pFileTimeValue uintptr
}type
CLUSPROP_BUFFER_HELPER = record
pb: Pointer;
pw: Pointer;
pdw: Pointer;
pl: Pointer;
psz: Pointer;
pList: Pointer;
pSyntax: Pointer;
pName: Pointer;
pValue: Pointer;
pBinaryValue: Pointer;
pWordValue: Pointer;
pDwordValue: Pointer;
pLongValue: Pointer;
pULargeIntegerValue: Pointer;
pLargeIntegerValue: Pointer;
pStringValue: Pointer;
pMultiSzValue: Pointer;
pSecurityDescriptor: Pointer;
pResourceClassValue: Pointer;
pResourceClassInfoValue: Pointer;
pDiskSignatureValue: Pointer;
pScsiAddressValue: Pointer;
pDiskNumberValue: Pointer;
pPartitionInfoValue: Pointer;
pRequiredDependencyValue: Pointer;
pPartitionInfoValueEx: Pointer;
pPartitionInfoValueEx2: Pointer;
pFileTimeValue: Pointer;
end;const CLUSPROP_BUFFER_HELPER = extern struct {
pb: ?*anyopaque,
pw: ?*anyopaque,
pdw: ?*anyopaque,
pl: ?*anyopaque,
psz: ?*anyopaque,
pList: ?*anyopaque,
pSyntax: ?*anyopaque,
pName: ?*anyopaque,
pValue: ?*anyopaque,
pBinaryValue: ?*anyopaque,
pWordValue: ?*anyopaque,
pDwordValue: ?*anyopaque,
pLongValue: ?*anyopaque,
pULargeIntegerValue: ?*anyopaque,
pLargeIntegerValue: ?*anyopaque,
pStringValue: ?*anyopaque,
pMultiSzValue: ?*anyopaque,
pSecurityDescriptor: ?*anyopaque,
pResourceClassValue: ?*anyopaque,
pResourceClassInfoValue: ?*anyopaque,
pDiskSignatureValue: ?*anyopaque,
pScsiAddressValue: ?*anyopaque,
pDiskNumberValue: ?*anyopaque,
pPartitionInfoValue: ?*anyopaque,
pRequiredDependencyValue: ?*anyopaque,
pPartitionInfoValueEx: ?*anyopaque,
pPartitionInfoValueEx2: ?*anyopaque,
pFileTimeValue: ?*anyopaque,
};type
CLUSPROP_BUFFER_HELPER {.bycopy.} = object
pb: pointer
pw: pointer
pdw: pointer
pl: pointer
psz: pointer
pList: pointer
pSyntax: pointer
pName: pointer
pValue: pointer
pBinaryValue: pointer
pWordValue: pointer
pDwordValue: pointer
pLongValue: pointer
pULargeIntegerValue: pointer
pLargeIntegerValue: pointer
pStringValue: pointer
pMultiSzValue: pointer
pSecurityDescriptor: pointer
pResourceClassValue: pointer
pResourceClassInfoValue: pointer
pDiskSignatureValue: pointer
pScsiAddressValue: pointer
pDiskNumberValue: pointer
pPartitionInfoValue: pointer
pRequiredDependencyValue: pointer
pPartitionInfoValueEx: pointer
pPartitionInfoValueEx2: pointer
pFileTimeValue: pointerstruct CLUSPROP_BUFFER_HELPER
{
void* pb;
void* pw;
void* pdw;
void* pl;
void* psz;
void* pList;
void* pSyntax;
void* pName;
void* pValue;
void* pBinaryValue;
void* pWordValue;
void* pDwordValue;
void* pLongValue;
void* pULargeIntegerValue;
void* pLargeIntegerValue;
void* pStringValue;
void* pMultiSzValue;
void* pSecurityDescriptor;
void* pResourceClassValue;
void* pResourceClassInfoValue;
void* pDiskSignatureValue;
void* pScsiAddressValue;
void* pDiskNumberValue;
void* pPartitionInfoValue;
void* pRequiredDependencyValue;
void* pPartitionInfoValueEx;
void* pPartitionInfoValueEx2;
void* pFileTimeValue;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; CLUSPROP_BUFFER_HELPER サイズ: 4 バイト(x86)
dim st, 1 ; 4byte整数×1(構造体サイズ 4 / 4 切り上げ)
; pb : BYTE* (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; pw : WORD* (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; pdw : DWORD* (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; pl : INT* (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; psz : LPWSTR (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; pList : CLUSPROP_LIST* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pSyntax : CLUSPROP_SYNTAX* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pName : CLUSPROP_SZ* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pValue : CLUSPROP_VALUE* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pBinaryValue : CLUSPROP_BINARY* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pWordValue : CLUSPROP_WORD* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pDwordValue : CLUSPROP_DWORD* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pLongValue : CLUSPROP_LONG* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pULargeIntegerValue : CLUSPROP_ULARGE_INTEGER* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pLargeIntegerValue : CLUSPROP_LARGE_INTEGER* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pStringValue : CLUSPROP_SZ* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pMultiSzValue : CLUSPROP_SZ* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pSecurityDescriptor : CLUSPROP_SECURITY_DESCRIPTOR* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pResourceClassValue : CLUSPROP_RESOURCE_CLASS* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pResourceClassInfoValue : CLUSPROP_RESOURCE_CLASS_INFO* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pDiskSignatureValue : CLUSPROP_DWORD* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pScsiAddressValue : CLUSPROP_SCSI_ADDRESS* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pDiskNumberValue : CLUSPROP_DWORD* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pPartitionInfoValue : CLUSPROP_PARTITION_INFO* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pRequiredDependencyValue : CLUSPROP_REQUIRED_DEPENDENCY* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pPartitionInfoValueEx : CLUSPROP_PARTITION_INFO_EX* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pPartitionInfoValueEx2 : CLUSPROP_PARTITION_INFO_EX2* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; pFileTimeValue : CLUSPROP_FILETIME* (+0, 4byte) varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; CLUSPROP_BUFFER_HELPER サイズ: 8 バイト(x64)
dim st, 2 ; 4byte整数×2(構造体サイズ 8 / 4 切り上げ)
; pb : BYTE* (+0, 8byte) qpoke st,0,値 / qpeek(st,0) ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; pw : WORD* (+0, 8byte) qpoke st,0,値 / qpeek(st,0) ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; pdw : DWORD* (+0, 8byte) qpoke st,0,値 / qpeek(st,0) ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; pl : INT* (+0, 8byte) qpoke st,0,値 / qpeek(st,0) ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; psz : LPWSTR (+0, 8byte) qpoke st,0,値 / qpeek(st,0) ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; pList : CLUSPROP_LIST* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pSyntax : CLUSPROP_SYNTAX* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pName : CLUSPROP_SZ* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pValue : CLUSPROP_VALUE* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pBinaryValue : CLUSPROP_BINARY* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pWordValue : CLUSPROP_WORD* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pDwordValue : CLUSPROP_DWORD* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pLongValue : CLUSPROP_LONG* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pULargeIntegerValue : CLUSPROP_ULARGE_INTEGER* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pLargeIntegerValue : CLUSPROP_LARGE_INTEGER* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pStringValue : CLUSPROP_SZ* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pMultiSzValue : CLUSPROP_SZ* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pSecurityDescriptor : CLUSPROP_SECURITY_DESCRIPTOR* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pResourceClassValue : CLUSPROP_RESOURCE_CLASS* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pResourceClassInfoValue : CLUSPROP_RESOURCE_CLASS_INFO* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pDiskSignatureValue : CLUSPROP_DWORD* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pScsiAddressValue : CLUSPROP_SCSI_ADDRESS* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pDiskNumberValue : CLUSPROP_DWORD* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pPartitionInfoValue : CLUSPROP_PARTITION_INFO* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pRequiredDependencyValue : CLUSPROP_REQUIRED_DEPENDENCY* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pPartitionInfoValueEx : CLUSPROP_PARTITION_INFO_EX* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pPartitionInfoValueEx2 : CLUSPROP_PARTITION_INFO_EX2* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; pFileTimeValue : CLUSPROP_FILETIME* (+0, 8byte) varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global CLUSPROP_BUFFER_HELPER
#field intptr pb
#field intptr pw
#field intptr pdw
#field intptr pl
#field intptr psz
#field intptr pList
#field intptr pSyntax
#field intptr pName
#field intptr pValue
#field intptr pBinaryValue
#field intptr pWordValue
#field intptr pDwordValue
#field intptr pLongValue
#field intptr pULargeIntegerValue
#field intptr pLargeIntegerValue
#field intptr pStringValue
#field intptr pMultiSzValue
#field intptr pSecurityDescriptor
#field intptr pResourceClassValue
#field intptr pResourceClassInfoValue
#field intptr pDiskSignatureValue
#field intptr pScsiAddressValue
#field intptr pDiskNumberValue
#field intptr pPartitionInfoValue
#field intptr pRequiredDependencyValue
#field intptr pPartitionInfoValueEx
#field intptr pPartitionInfoValueEx2
#field intptr pFileTimeValue
#endstruct
stdim st, CLUSPROP_BUFFER_HELPER ; NSTRUCT 変数を確保