ホーム › Networking.ActiveDirectory › DS_REPSYNCALL_UPDATEW
DS_REPSYNCALL_UPDATEW
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| event | DS_REPSYNCALL_EVENT | 4 | +0 | +0 | DS_REPSYNCALL_UPDATE 構造体が表すイベントを示す DS_REPSYNCALL_EVENT の値が格納されます。 |
| pErrInfo | DS_REPSYNCALL_ERRINFOW* | 8/4 | +8 | +4 | DsReplicaSyncAll 関数によって実行されたレプリケーションに関するエラー情報が格納された DS_REPSYNCALL_ERRINFO 構造体へのポインターです。 |
| pSync | DS_REPSYNCALL_SYNCW* | 8/4 | +16 | +8 | 同期を開始した、または同期を完了したソースサーバーと宛先サーバーを識別する DS_REPSYNCALL_SYNC 構造体へのポインターです。 |
公式ドキュメント
DS_REPSYNCALL_UPDATE 構造体には、 DsReplicaSyncAll 関数によって実行されたレプリケーションに関する状態データが格納されます。DsReplicaSyncAll 関数は、この構造体を pFnCallBack パラメーターに指定されたコールバック関数に渡します。コールバック関数の詳細については、 SyncUpdateProc を参照してください。
解説(Remarks)
メモ
ntdsapi.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI 版または Unicode 版を自動的に選択するエイリアスとして DS_REPSYNCALL_UPDATE を定義します。エンコードに依存しないこのエイリアスを、エンコードに依存するコードと混在させて使用すると、不一致が生じ、コンパイルエラーや実行時エラーの原因となることがあります。詳細については、関数プロトタイプの規則を参照してください。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
#include <windows.h>
// DS_REPSYNCALL_UPDATEW (x64 24 / x86 12 バイト)
typedef struct DS_REPSYNCALL_UPDATEW {
DS_REPSYNCALL_EVENT event;
DS_REPSYNCALL_ERRINFOW* pErrInfo;
DS_REPSYNCALL_SYNCW* pSync;
} DS_REPSYNCALL_UPDATEW;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DS_REPSYNCALL_UPDATEW
{
public int event;
public IntPtr pErrInfo;
public IntPtr pSync;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DS_REPSYNCALL_UPDATEW
Public event As Integer
Public pErrInfo As IntPtr
Public pSync As IntPtr
End Structureimport ctypes
from ctypes import wintypes
class DS_REPSYNCALL_UPDATEW(ctypes.Structure):
_fields_ = [
("event", ctypes.c_int),
("pErrInfo", ctypes.c_void_p),
("pSync", ctypes.c_void_p),
]#[repr(C)]
pub struct DS_REPSYNCALL_UPDATEW {
pub event: i32,
pub pErrInfo: *mut core::ffi::c_void,
pub pSync: *mut core::ffi::c_void,
}import "golang.org/x/sys/windows"
type DS_REPSYNCALL_UPDATEW struct {
event int32
pErrInfo uintptr
pSync uintptr
}type
DS_REPSYNCALL_UPDATEW = record
event: Integer;
pErrInfo: Pointer;
pSync: Pointer;
end;const DS_REPSYNCALL_UPDATEW = extern struct {
event: i32,
pErrInfo: ?*anyopaque,
pSync: ?*anyopaque,
};type
DS_REPSYNCALL_UPDATEW {.bycopy.} = object
event: int32
pErrInfo: pointer
pSync: pointerstruct DS_REPSYNCALL_UPDATEW
{
int event;
void* pErrInfo;
void* pSync;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; DS_REPSYNCALL_UPDATEW サイズ: 12 バイト(x86)
dim st, 3 ; 4byte整数×3(構造体サイズ 12 / 4 切り上げ)
; event : DS_REPSYNCALL_EVENT (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; pErrInfo : DS_REPSYNCALL_ERRINFOW* (+4, 4byte) varptr(st)+4 を基点に操作(4byte:入れ子/配列)
; pSync : DS_REPSYNCALL_SYNCW* (+8, 4byte) varptr(st)+8 を基点に操作(4byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; DS_REPSYNCALL_UPDATEW サイズ: 24 バイト(x64)
dim st, 6 ; 4byte整数×6(構造体サイズ 24 / 4 切り上げ)
; event : DS_REPSYNCALL_EVENT (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; pErrInfo : DS_REPSYNCALL_ERRINFOW* (+8, 8byte) varptr(st)+8 を基点に操作(8byte:入れ子/配列)
; pSync : DS_REPSYNCALL_SYNCW* (+16, 8byte) varptr(st)+16 を基点に操作(8byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global DS_REPSYNCALL_UPDATEW
#field int event
#field intptr pErrInfo
#field intptr pSync
#endstruct
stdim st, DS_REPSYNCALL_UPDATEW ; NSTRUCT 変数を確保
st->event = 100
mes "event=" + st->event