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

DFS_INFO_105

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

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

フィールド

フィールドサイズx64x86説明
CommentLPWSTR8/4+0+0DFS ルートまたはリンクに関連付けられたコメントを格納する、NULL で終わる Unicode 文字列へのポインターです。
StateDWORD4+8+4

DFS ルートまたはリンクの状態を表すビット フラグのセットを指定します。DFS 名前空間ルートの状態は変更できません。DFS_VOLUME_STATE フラグが 1 つ設定され、DFS_VOLUME_FLAVOR フラグが 1 つ設定されます。これらのフラグの解釈を説明する例については、DFS_INFO_2 の解説セクションを参照してください。

Default (0x00000000)

既存の状態を維持します。

DFS_VOLUME_STATE_OK (0x00000001)

指定された DFS ルートまたはリンクは正常な状態です。

DFS_VOLUME_STATE_OFFLINE (0x00000003)

指定された DFS ルートまたはリンクはオフライン、または利用できません。

DFS_VOLUME_STATE_ONLINE (0x00000004)

指定された DFS ルートまたはリンクは利用可能です。

TimeoutDWORD4+12+8DFS ルートまたはリンクのタイムアウトを秒単位で指定します。
PropertyFlagMaskDWORD4+16+12PropertyFlags フィールドのうち、評価対象として有効なフラグを示すマスク値を指定します。
PropertyFlagsDWORD4+20+16

ビット フィールドです。各ビットは、対象となるプロパティに応じて、DFS 名前空間全体、DFS ルート、または個々の DFS リンクに適用される特定のプロパティを表します。特に記載がない限り、ビットの任意の組み合わせを指定できます。

DFS_PROPERTY_FLAG_INSITE_REFERRALS (0x00000001)

DFS ルートまたはリンクに対する DFS サーバーからの参照応答に、参照を要求しているクライアントと同じサイト内のターゲットのみを含めます。2 つのグローバル優先度クラスに属するターゲットは、サイトの場所に関係なく常に返されます。このフラグは、ドメインベースの DFS ルート、スタンドアロン ルート、およびリンクに適用されます。このフラグが DFS ルートで設定されている場合はすべてのリンクに適用され、それ以外の場合は個々のリンクに適用されます。リンクでの設定がルートの設定を上書きすることはありません。

DFS_PROPERTY_FLAG_ROOT_SCALABILITY (0x00000002)

このフラグが設定されている場合、DFS サーバーは、その名前空間における DFS 名前空間の変更を確認するために、プライマリ ドメイン コントローラー (PDC) ではなく最も近いドメイン コントローラー (DC) をポーリングします。DFS サーバーによる DFS メタデータの変更はこのフラグの制御対象ではなく、自動的に PDC に送信されます。このフラグは名前空間全体に適用され、ドメインベースの DFS 名前空間でのみ有効です。

DFS_PROPERTY_FLAG_SITE_COSTING (0x00000004)

ターゲットに対する Active Directory のサイト コスト計算を有効にするには、このフラグを設定します。DFS サーバーから要求元の DFS クライアントに返されるターゲットは、その DFS クライアントを基準としたサイト間コストごとにグループ化されます。グループはサイト コストの昇順に並べられ、最初のグループはクライアントと同じサイト内のターゲットで構成されます。各グループ内のターゲットはランダムに並べられます。

このフラグが有効でない場合、既定では 2 つのセットが返されます。1 つはクライアントと同じサイト内のターゲットのセットで、もう 1 つは残りすべてのターゲットのセットです。このフラグは DFS 名前空間全体に適用され、ドメインベースとスタンドアロンのどちらの DFS 名前空間でも有効です。

ターゲットの優先度によって、ターゲットの順序をさらに調整できます。サイト コスト計算を使用してターゲットに優先度を付ける方法の詳細については、DFS Server Target Prioritization を参照してください。

DFS_PROPERTY_FLAG_TARGET_FAILBACK (0x00000008)

V4 DFS クライアントが、より最適な (コストが低い、または優先度が高い) ターゲットにフェールバックできるようにするには、このフラグを設定します。このフラグが DFS ルートで設定されている場合はすべてのリンクに適用され、それ以外の場合は個々のリンクに適用されます。個々のリンクの設定がルートの設定を上書きすることはありません。ターゲット フェールバックの設定は、DFS サーバーから V4 参照応答で DFS クライアントに提供されます。このフラグは、ドメインベースの DFS ルート、スタンドアロン ルート、およびリンクに適用されます。

DFS_PROPERTY_FLAG_CLUSTER_ENABLED (0x00000010)

スコープ: スタンドアロン ルートおよびリンクのみ。

このフラグが設定されている場合、DFS ルートはクラスター化されており、ストレージのフェールオーバーによる高可用性が提供されます。このフラグを NetDfsSetInfo 関数で設定することはできません。

DFS_PROPERTY_FLAG_ABDE (0x00000020)

スコープ: ドメインベースの DFS ルートおよびスタンドアロン DFS ルート。

このフラグが設定されている場合、DFS 名前空間の DFS ルート ターゲット共有全体で、アクセス ベースのディレクトリ列挙 (ABDE) モードのサポートが有効になります。このフラグは、DFS_NAMESPACE_CAPABILITY_ABDE 機能フラグが設定されている DFS 名前空間でのみ有効です。詳細については、DFS_INFO_50 および DFS_SUPPORTED_NAMESPACE_VERSION_INFO を参照してください。

DFS_PROPERTY_FLAG_ABDE フラグは DFS 名前空間ルートでのみ有効であり、ルート ターゲット、リンク、リンク ターゲットでは無効です。DFS リンクにセキュリティ記述子を関連付けるには、このフラグを有効にする必要があります。

公式ドキュメント

DFS ルートまたはリンクに関する情報 (コメント、状態、タイムアウト、およびプロパティ フラグで指定される DFS の動作) を格納します。この構造体は NetDfsSetInfo 関数でのみ使用します。

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

各言語での定義

#include <windows.h>

// DFS_INFO_105  (x64 24 / x86 20 バイト)
typedef struct DFS_INFO_105 {
    LPWSTR Comment;
    DWORD State;
    DWORD Timeout;
    DWORD PropertyFlagMask;
    DWORD PropertyFlags;
} DFS_INFO_105;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DFS_INFO_105
{
    public IntPtr Comment;
    public uint State;
    public uint Timeout;
    public uint PropertyFlagMask;
    public uint PropertyFlags;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DFS_INFO_105
    Public Comment As IntPtr
    Public State As UInteger
    Public Timeout As UInteger
    Public PropertyFlagMask As UInteger
    Public PropertyFlags As UInteger
End Structure
import ctypes
from ctypes import wintypes

class DFS_INFO_105(ctypes.Structure):
    _fields_ = [
        ("Comment", ctypes.c_void_p),
        ("State", wintypes.DWORD),
        ("Timeout", wintypes.DWORD),
        ("PropertyFlagMask", wintypes.DWORD),
        ("PropertyFlags", wintypes.DWORD),
    ]
#[repr(C)]
pub struct DFS_INFO_105 {
    pub Comment: *mut core::ffi::c_void,
    pub State: u32,
    pub Timeout: u32,
    pub PropertyFlagMask: u32,
    pub PropertyFlags: u32,
}
import "golang.org/x/sys/windows"

type DFS_INFO_105 struct {
	Comment uintptr
	State uint32
	Timeout uint32
	PropertyFlagMask uint32
	PropertyFlags uint32
}
type
  DFS_INFO_105 = record
    Comment: Pointer;
    State: DWORD;
    Timeout: DWORD;
    PropertyFlagMask: DWORD;
    PropertyFlags: DWORD;
  end;
const DFS_INFO_105 = extern struct {
    Comment: ?*anyopaque,
    State: u32,
    Timeout: u32,
    PropertyFlagMask: u32,
    PropertyFlags: u32,
};
type
  DFS_INFO_105 {.bycopy.} = object
    Comment: pointer
    State: uint32
    Timeout: uint32
    PropertyFlagMask: uint32
    PropertyFlags: uint32
struct DFS_INFO_105
{
    void* Comment;
    uint State;
    uint Timeout;
    uint PropertyFlagMask;
    uint PropertyFlags;
}

HSP用 定義

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

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

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