ホーム › NetworkManagement.NetManagement › DSREG_JOIN_INFO
DSREG_JOIN_INFO
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| joinType | DSREG_JOIN_TYPE | 4 | +0 | +0 | 参加の種類を指定する列挙値です。 |
| pJoinCertificate | CERT_CONTEXT* | 8/4 | +8 | +4 | 参加に使用される証明書の表現です。 |
| pszDeviceId | LPWSTR | 8/4 | +16 | +8 | デバイスの識別子です。 |
| pszIdpDomain | LPWSTR | 8/4 | +24 | +12 | Azure Active Directory (Azure AD) を表す文字列です。 |
| pszTenantId | LPWSTR | 8/4 | +32 | +16 | 参加先の Azure AD テナントの識別子です。 |
| pszJoinUserEmail | LPWSTR | 8/4 | +40 | +20 | 参加したアカウントのメールアドレスです。 |
| pszTenantDisplayName | LPWSTR | 8/4 | +48 | +24 | 参加したアカウントの表示名です。 |
| pszMdmEnrollmentUrl | LPWSTR | 8/4 | +56 | +28 | モバイル デバイス管理 (MDM) サービスへの登録に使用する URL です。 |
| pszMdmTermsOfUseUrl | LPWSTR | 8/4 | +64 | +32 | MDM サービスの利用規約に関する情報を提供する URL です。 |
| pszMdmComplianceUrl | LPWSTR | 8/4 | +72 | +36 | MDM サービスのコンプライアンスに関する情報を提供する URL です。 |
| pszUserSettingSyncUrl | LPWSTR | 8/4 | +80 | +40 | ユーザー設定を同期するための URL です。 |
| pUserInfo | DSREG_USER_INFO* | 8/4 | +88 | +44 | デバイスを Azure AD に参加させるために使用されたユーザー アカウントに関する情報です。 |
公式ドキュメント
デバイスが Microsoft Azure Active Directory にどのように参加しているかに関する情報を格納します。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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>
// DSREG_JOIN_INFO (x64 96 / x86 48 バイト)
typedef struct DSREG_JOIN_INFO {
DSREG_JOIN_TYPE joinType;
CERT_CONTEXT* pJoinCertificate;
LPWSTR pszDeviceId;
LPWSTR pszIdpDomain;
LPWSTR pszTenantId;
LPWSTR pszJoinUserEmail;
LPWSTR pszTenantDisplayName;
LPWSTR pszMdmEnrollmentUrl;
LPWSTR pszMdmTermsOfUseUrl;
LPWSTR pszMdmComplianceUrl;
LPWSTR pszUserSettingSyncUrl;
DSREG_USER_INFO* pUserInfo;
} DSREG_JOIN_INFO;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DSREG_JOIN_INFO
{
public int joinType;
public IntPtr pJoinCertificate;
public IntPtr pszDeviceId;
public IntPtr pszIdpDomain;
public IntPtr pszTenantId;
public IntPtr pszJoinUserEmail;
public IntPtr pszTenantDisplayName;
public IntPtr pszMdmEnrollmentUrl;
public IntPtr pszMdmTermsOfUseUrl;
public IntPtr pszMdmComplianceUrl;
public IntPtr pszUserSettingSyncUrl;
public IntPtr pUserInfo;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DSREG_JOIN_INFO
Public joinType As Integer
Public pJoinCertificate As IntPtr
Public pszDeviceId As IntPtr
Public pszIdpDomain As IntPtr
Public pszTenantId As IntPtr
Public pszJoinUserEmail As IntPtr
Public pszTenantDisplayName As IntPtr
Public pszMdmEnrollmentUrl As IntPtr
Public pszMdmTermsOfUseUrl As IntPtr
Public pszMdmComplianceUrl As IntPtr
Public pszUserSettingSyncUrl As IntPtr
Public pUserInfo As IntPtr
End Structureimport ctypes
from ctypes import wintypes
class DSREG_JOIN_INFO(ctypes.Structure):
_fields_ = [
("joinType", ctypes.c_int),
("pJoinCertificate", ctypes.c_void_p),
("pszDeviceId", ctypes.c_void_p),
("pszIdpDomain", ctypes.c_void_p),
("pszTenantId", ctypes.c_void_p),
("pszJoinUserEmail", ctypes.c_void_p),
("pszTenantDisplayName", ctypes.c_void_p),
("pszMdmEnrollmentUrl", ctypes.c_void_p),
("pszMdmTermsOfUseUrl", ctypes.c_void_p),
("pszMdmComplianceUrl", ctypes.c_void_p),
("pszUserSettingSyncUrl", ctypes.c_void_p),
("pUserInfo", ctypes.c_void_p),
]#[repr(C)]
pub struct DSREG_JOIN_INFO {
pub joinType: i32,
pub pJoinCertificate: *mut core::ffi::c_void,
pub pszDeviceId: *mut core::ffi::c_void,
pub pszIdpDomain: *mut core::ffi::c_void,
pub pszTenantId: *mut core::ffi::c_void,
pub pszJoinUserEmail: *mut core::ffi::c_void,
pub pszTenantDisplayName: *mut core::ffi::c_void,
pub pszMdmEnrollmentUrl: *mut core::ffi::c_void,
pub pszMdmTermsOfUseUrl: *mut core::ffi::c_void,
pub pszMdmComplianceUrl: *mut core::ffi::c_void,
pub pszUserSettingSyncUrl: *mut core::ffi::c_void,
pub pUserInfo: *mut core::ffi::c_void,
}import "golang.org/x/sys/windows"
type DSREG_JOIN_INFO struct {
joinType int32
pJoinCertificate uintptr
pszDeviceId uintptr
pszIdpDomain uintptr
pszTenantId uintptr
pszJoinUserEmail uintptr
pszTenantDisplayName uintptr
pszMdmEnrollmentUrl uintptr
pszMdmTermsOfUseUrl uintptr
pszMdmComplianceUrl uintptr
pszUserSettingSyncUrl uintptr
pUserInfo uintptr
}type
DSREG_JOIN_INFO = record
joinType: Integer;
pJoinCertificate: Pointer;
pszDeviceId: Pointer;
pszIdpDomain: Pointer;
pszTenantId: Pointer;
pszJoinUserEmail: Pointer;
pszTenantDisplayName: Pointer;
pszMdmEnrollmentUrl: Pointer;
pszMdmTermsOfUseUrl: Pointer;
pszMdmComplianceUrl: Pointer;
pszUserSettingSyncUrl: Pointer;
pUserInfo: Pointer;
end;const DSREG_JOIN_INFO = extern struct {
joinType: i32,
pJoinCertificate: ?*anyopaque,
pszDeviceId: ?*anyopaque,
pszIdpDomain: ?*anyopaque,
pszTenantId: ?*anyopaque,
pszJoinUserEmail: ?*anyopaque,
pszTenantDisplayName: ?*anyopaque,
pszMdmEnrollmentUrl: ?*anyopaque,
pszMdmTermsOfUseUrl: ?*anyopaque,
pszMdmComplianceUrl: ?*anyopaque,
pszUserSettingSyncUrl: ?*anyopaque,
pUserInfo: ?*anyopaque,
};type
DSREG_JOIN_INFO {.bycopy.} = object
joinType: int32
pJoinCertificate: pointer
pszDeviceId: pointer
pszIdpDomain: pointer
pszTenantId: pointer
pszJoinUserEmail: pointer
pszTenantDisplayName: pointer
pszMdmEnrollmentUrl: pointer
pszMdmTermsOfUseUrl: pointer
pszMdmComplianceUrl: pointer
pszUserSettingSyncUrl: pointer
pUserInfo: pointerstruct DSREG_JOIN_INFO
{
int joinType;
void* pJoinCertificate;
void* pszDeviceId;
void* pszIdpDomain;
void* pszTenantId;
void* pszJoinUserEmail;
void* pszTenantDisplayName;
void* pszMdmEnrollmentUrl;
void* pszMdmTermsOfUseUrl;
void* pszMdmComplianceUrl;
void* pszUserSettingSyncUrl;
void* pUserInfo;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; DSREG_JOIN_INFO サイズ: 48 バイト(x86)
dim st, 12 ; 4byte整数×12(構造体サイズ 48 / 4 切り上げ)
; joinType : DSREG_JOIN_TYPE (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; pJoinCertificate : CERT_CONTEXT* (+4, 4byte) varptr(st)+4 を基点に操作(4byte:入れ子/配列)
; pszDeviceId : LPWSTR (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; pszIdpDomain : LPWSTR (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; pszTenantId : LPWSTR (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; pszJoinUserEmail : LPWSTR (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; pszTenantDisplayName : LPWSTR (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; pszMdmEnrollmentUrl : LPWSTR (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; pszMdmTermsOfUseUrl : LPWSTR (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; pszMdmComplianceUrl : LPWSTR (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; pszUserSettingSyncUrl : LPWSTR (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; pUserInfo : DSREG_USER_INFO* (+44, 4byte) varptr(st)+44 を基点に操作(4byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; DSREG_JOIN_INFO サイズ: 96 バイト(x64)
dim st, 24 ; 4byte整数×24(構造体サイズ 96 / 4 切り上げ)
; joinType : DSREG_JOIN_TYPE (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; pJoinCertificate : CERT_CONTEXT* (+8, 8byte) varptr(st)+8 を基点に操作(8byte:入れ子/配列)
; pszDeviceId : LPWSTR (+16, 8byte) qpoke st,16,値 / qpeek(st,16) ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; pszIdpDomain : LPWSTR (+24, 8byte) qpoke st,24,値 / qpeek(st,24) ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; pszTenantId : LPWSTR (+32, 8byte) qpoke st,32,値 / qpeek(st,32) ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; pszJoinUserEmail : LPWSTR (+40, 8byte) qpoke st,40,値 / qpeek(st,40) ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; pszTenantDisplayName : LPWSTR (+48, 8byte) qpoke st,48,値 / qpeek(st,48) ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; pszMdmEnrollmentUrl : LPWSTR (+56, 8byte) qpoke st,56,値 / qpeek(st,56) ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; pszMdmTermsOfUseUrl : LPWSTR (+64, 8byte) qpoke st,64,値 / qpeek(st,64) ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; pszMdmComplianceUrl : LPWSTR (+72, 8byte) qpoke st,72,値 / qpeek(st,72) ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; pszUserSettingSyncUrl : LPWSTR (+80, 8byte) qpoke st,80,値 / qpeek(st,80) ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; pUserInfo : DSREG_USER_INFO* (+88, 8byte) varptr(st)+88 を基点に操作(8byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global DSREG_JOIN_INFO
#field int joinType
#field intptr pJoinCertificate
#field intptr pszDeviceId
#field intptr pszIdpDomain
#field intptr pszTenantId
#field intptr pszJoinUserEmail
#field intptr pszTenantDisplayName
#field intptr pszMdmEnrollmentUrl
#field intptr pszMdmTermsOfUseUrl
#field intptr pszMdmComplianceUrl
#field intptr pszUserSettingSyncUrl
#field intptr pUserInfo
#endstruct
stdim st, DSREG_JOIN_INFO ; NSTRUCT 変数を確保
st->joinType = 100
mes "joinType=" + st->joinType