Win32 API 日本語リファレンス
ホームStorage.FileSystem › NTMS_COMPUTERINFORMATION

NTMS_COMPUTERINFORMATION

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

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

フィールド

フィールドサイズx64x86説明
dwLibRequestPurgeTimeDWORD4+0+0完了したライブラリ要求を作業キューに保持する秒数です。
dwOpRequestPurgeTimeDWORD4+4+4完了したオペレーター要求をオペレーター要求キューに保持する秒数です。
dwLibRequestFlagsDWORD4+8+8

ライブラリ要求のオプションです。

意味
NTMS_LIBREQFLAGS_NOAUTOPURGE
ライブラリ要求は作業キューから消去されません。既定では NULL に設定されます。
NTMS_LIBREQFLAGS_NOFAILEDPURGE
失敗した作業項目は作業キューから消去されません。既定では NULL に設定されます。
dwOpRequestFlagsDWORD4+12+12

オペレーター要求のオプションです。

意味
NTMS_OPREQFLAGS_NOAUTOPURGE
オペレーター要求は作業キューから消去されません。既定では NULL に設定されます。
NTMS_OPREQFLAGS_NOFAILEDPURGE
オペレーター要求はキューから消去されません。既定では NULL に設定されます。
NTMS_OPREQFLAGS_NOALERTS
オペレーター要求のアラートのポップアップが無効になります。
NTMS_OPREQFLAGS_NOTRAYICON
オペレーター要求のタスクバーアイコンが無効になります。
dwMediaPoolPolicyDWORD4+16+16

メディアプールのポリシーです。

意味
NTMS_POOLPOLICY_PURGEOFFLINESCRATCH
取り出された空き (Free) メディアは自動的に削除されます。既定では NULL に設定されます。
NTMS_POOLPOLICY_KEEPOFFLINEIMPORT
取り出されたインポート (Import) メディアは自動的には削除されません。既定では NULL に設定されます。

公式ドキュメント

[Removable Storage Manager は、Windows 7 および Windows Server 2008 R2 以降では利用できません。]

NTMS_COMPUTERINFORMATION 構造体は、RSM サーバーに固有のプロパティを定義します。

解説(Remarks)

NTMS_COMPUTERINFORMATION 構造体は、 NTMS_OBJECTINFORMATION 構造体に含まれます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

#include <windows.h>

// NTMS_COMPUTERINFORMATION  (x64 20 / x86 20 バイト)
typedef struct NTMS_COMPUTERINFORMATION {
    DWORD dwLibRequestPurgeTime;
    DWORD dwOpRequestPurgeTime;
    DWORD dwLibRequestFlags;
    DWORD dwOpRequestFlags;
    DWORD dwMediaPoolPolicy;
} NTMS_COMPUTERINFORMATION;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NTMS_COMPUTERINFORMATION
{
    public uint dwLibRequestPurgeTime;
    public uint dwOpRequestPurgeTime;
    public uint dwLibRequestFlags;
    public uint dwOpRequestFlags;
    public uint dwMediaPoolPolicy;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NTMS_COMPUTERINFORMATION
    Public dwLibRequestPurgeTime As UInteger
    Public dwOpRequestPurgeTime As UInteger
    Public dwLibRequestFlags As UInteger
    Public dwOpRequestFlags As UInteger
    Public dwMediaPoolPolicy As UInteger
End Structure
import ctypes
from ctypes import wintypes

class NTMS_COMPUTERINFORMATION(ctypes.Structure):
    _fields_ = [
        ("dwLibRequestPurgeTime", wintypes.DWORD),
        ("dwOpRequestPurgeTime", wintypes.DWORD),
        ("dwLibRequestFlags", wintypes.DWORD),
        ("dwOpRequestFlags", wintypes.DWORD),
        ("dwMediaPoolPolicy", wintypes.DWORD),
    ]
#[repr(C)]
pub struct NTMS_COMPUTERINFORMATION {
    pub dwLibRequestPurgeTime: u32,
    pub dwOpRequestPurgeTime: u32,
    pub dwLibRequestFlags: u32,
    pub dwOpRequestFlags: u32,
    pub dwMediaPoolPolicy: u32,
}
import "golang.org/x/sys/windows"

type NTMS_COMPUTERINFORMATION struct {
	dwLibRequestPurgeTime uint32
	dwOpRequestPurgeTime uint32
	dwLibRequestFlags uint32
	dwOpRequestFlags uint32
	dwMediaPoolPolicy uint32
}
type
  NTMS_COMPUTERINFORMATION = record
    dwLibRequestPurgeTime: DWORD;
    dwOpRequestPurgeTime: DWORD;
    dwLibRequestFlags: DWORD;
    dwOpRequestFlags: DWORD;
    dwMediaPoolPolicy: DWORD;
  end;
const NTMS_COMPUTERINFORMATION = extern struct {
    dwLibRequestPurgeTime: u32,
    dwOpRequestPurgeTime: u32,
    dwLibRequestFlags: u32,
    dwOpRequestFlags: u32,
    dwMediaPoolPolicy: u32,
};
type
  NTMS_COMPUTERINFORMATION {.bycopy.} = object
    dwLibRequestPurgeTime: uint32
    dwOpRequestPurgeTime: uint32
    dwLibRequestFlags: uint32
    dwOpRequestFlags: uint32
    dwMediaPoolPolicy: uint32
struct NTMS_COMPUTERINFORMATION
{
    uint dwLibRequestPurgeTime;
    uint dwOpRequestPurgeTime;
    uint dwLibRequestFlags;
    uint dwOpRequestFlags;
    uint dwMediaPoolPolicy;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; NTMS_COMPUTERINFORMATION サイズ: 20 バイト(x64)
dim st, 5    ; 4byte整数×5(構造体サイズ 20 / 4 切り上げ)
; dwLibRequestPurgeTime : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; dwOpRequestPurgeTime : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; dwLibRequestFlags : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; dwOpRequestFlags : DWORD (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; dwMediaPoolPolicy : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global NTMS_COMPUTERINFORMATION
    #field int dwLibRequestPurgeTime
    #field int dwOpRequestPurgeTime
    #field int dwLibRequestFlags
    #field int dwOpRequestFlags
    #field int dwMediaPoolPolicy
#endstruct

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