Win32 API 日本語リファレンス
ホームNetworkManagement.NetManagement › NetCreateProvisioningPackage

NetCreateProvisioningPackage

関数
ドメイン参加用のプロビジョニングパッケージを作成する。
DLLNETAPI32.dll呼出規約winapi対応OSwindows8.0

シグネチャ

// NETAPI32.dll
#include <windows.h>

DWORD NetCreateProvisioningPackage(
    NETSETUP_PROVISIONING_PARAMS* pProvisioningParams,
    BYTE** ppPackageBinData,   // optional
    DWORD* pdwPackageBinDataSize,   // optional
    LPWSTR* ppPackageTextData   // optional
);

パラメーター

名前方向
pProvisioningParamsNETSETUP_PROVISIONING_PARAMS*in
ppPackageBinDataBYTE**outoptional
pdwPackageBinDataSizeDWORD*outoptional
ppPackageTextDataLPWSTR*outoptional

戻り値の型: DWORD

各言語での呼び出し定義

// NETAPI32.dll
#include <windows.h>

DWORD NetCreateProvisioningPackage(
    NETSETUP_PROVISIONING_PARAMS* pProvisioningParams,
    BYTE** ppPackageBinData,   // optional
    DWORD* pdwPackageBinDataSize,   // optional
    LPWSTR* ppPackageTextData   // optional
);
[DllImport("NETAPI32.dll", ExactSpelling = true)]
static extern uint NetCreateProvisioningPackage(
    IntPtr pProvisioningParams,   // NETSETUP_PROVISIONING_PARAMS*
    IntPtr ppPackageBinData,   // BYTE** optional, out
    IntPtr pdwPackageBinDataSize,   // DWORD* optional, out
    IntPtr ppPackageTextData   // LPWSTR* optional, out
);
<DllImport("NETAPI32.dll", ExactSpelling:=True)>
Public Shared Function NetCreateProvisioningPackage(
    pProvisioningParams As IntPtr,   ' NETSETUP_PROVISIONING_PARAMS*
    ppPackageBinData As IntPtr,   ' BYTE** optional, out
    pdwPackageBinDataSize As IntPtr,   ' DWORD* optional, out
    ppPackageTextData As IntPtr   ' LPWSTR* optional, out
) As UInteger
End Function
' pProvisioningParams : NETSETUP_PROVISIONING_PARAMS*
' ppPackageBinData : BYTE** optional, out
' pdwPackageBinDataSize : DWORD* optional, out
' ppPackageTextData : LPWSTR* optional, out
Declare PtrSafe Function NetCreateProvisioningPackage Lib "netapi32" ( _
    ByVal pProvisioningParams As LongPtr, _
    ByVal ppPackageBinData As LongPtr, _
    ByVal pdwPackageBinDataSize As LongPtr, _
    ByVal ppPackageTextData As LongPtr) As Long
' VBA7前提(PtrSafe)。32bit Office では LongPtr→Long。Integer=16bit / Long=32bit / LongLong=64bit。
import ctypes
from ctypes import wintypes

NetCreateProvisioningPackage = ctypes.windll.netapi32.NetCreateProvisioningPackage
NetCreateProvisioningPackage.restype = wintypes.DWORD
NetCreateProvisioningPackage.argtypes = [
    ctypes.c_void_p,  # pProvisioningParams : NETSETUP_PROVISIONING_PARAMS*
    ctypes.c_void_p,  # ppPackageBinData : BYTE** optional, out
    ctypes.POINTER(wintypes.DWORD),  # pdwPackageBinDataSize : DWORD* optional, out
    ctypes.c_void_p,  # ppPackageTextData : LPWSTR* optional, out
]
require 'fiddle'
require 'fiddle/import'

lib = Fiddle.dlopen('NETAPI32.dll')
NetCreateProvisioningPackage = Fiddle::Function.new(
  lib['NetCreateProvisioningPackage'],
  [
    Fiddle::TYPE_VOIDP,  # pProvisioningParams : NETSETUP_PROVISIONING_PARAMS*
    Fiddle::TYPE_VOIDP,  # ppPackageBinData : BYTE** optional, out
    Fiddle::TYPE_VOIDP,  # pdwPackageBinDataSize : DWORD* optional, out
    Fiddle::TYPE_VOIDP,  # ppPackageTextData : LPWSTR* optional, out
  ],
  -Fiddle::TYPE_INT)
#[link(name = "netapi32")]
extern "system" {
    fn NetCreateProvisioningPackage(
        pProvisioningParams: *mut NETSETUP_PROVISIONING_PARAMS,  // NETSETUP_PROVISIONING_PARAMS*
        ppPackageBinData: *mut *mut u8,  // BYTE** optional, out
        pdwPackageBinDataSize: *mut u32,  // DWORD* optional, out
        ppPackageTextData: *mut *mut u16  // LPWSTR* optional, out
    ) -> u32;
}
// crates: windows-sys provides ready-made bindings for this API.
$sig = @"
[DllImport("NETAPI32.dll")]
public static extern uint NetCreateProvisioningPackage(IntPtr pProvisioningParams, IntPtr ppPackageBinData, IntPtr pdwPackageBinDataSize, IntPtr ppPackageTextData);
"@
$api = Add-Type -MemberDefinition $sig -Name 'NETAPI32_NetCreateProvisioningPackage' -Namespace Win32 -PassThru
# $api::NetCreateProvisioningPackage(pProvisioningParams, ppPackageBinData, pdwPackageBinDataSize, ppPackageTextData)
#uselib "NETAPI32.dll"
#func global NetCreateProvisioningPackage "NetCreateProvisioningPackage" sptr, sptr, sptr, sptr
; NetCreateProvisioningPackage varptr(pProvisioningParams), varptr(ppPackageBinData), varptr(pdwPackageBinDataSize), varptr(ppPackageTextData)   ; 戻り値は stat
; pProvisioningParams : NETSETUP_PROVISIONING_PARAMS* -> "sptr"
; ppPackageBinData : BYTE** optional, out -> "sptr"
; pdwPackageBinDataSize : DWORD* optional, out -> "sptr"
; ppPackageTextData : LPWSTR* optional, out -> "sptr"
; ※HSP3.7は #func のため戻り値はシステム変数 stat に格納されます。
出力引数:
#uselib "NETAPI32.dll"
#cfunc global NetCreateProvisioningPackage "NetCreateProvisioningPackage" var, var, var, var
; res = NetCreateProvisioningPackage(pProvisioningParams, ppPackageBinData, pdwPackageBinDataSize, ppPackageTextData)
; pProvisioningParams : NETSETUP_PROVISIONING_PARAMS* -> "var"
; ppPackageBinData : BYTE** optional, out -> "var"
; pdwPackageBinDataSize : DWORD* optional, out -> "var"
; ppPackageTextData : LPWSTR* optional, out -> "var"
; ※出力/バッファ引数は var 方式(変数を直接渡す)。varptr 方式にも切替可。
出力引数:
; DWORD NetCreateProvisioningPackage(NETSETUP_PROVISIONING_PARAMS* pProvisioningParams, BYTE** ppPackageBinData, DWORD* pdwPackageBinDataSize, LPWSTR* ppPackageTextData)
#uselib "NETAPI32.dll"
#cfunc global NetCreateProvisioningPackage "NetCreateProvisioningPackage" var, var, var, var
; res = NetCreateProvisioningPackage(pProvisioningParams, ppPackageBinData, pdwPackageBinDataSize, ppPackageTextData)
; pProvisioningParams : NETSETUP_PROVISIONING_PARAMS* -> "var"
; ppPackageBinData : BYTE** optional, out -> "var"
; pdwPackageBinDataSize : DWORD* optional, out -> "var"
; ppPackageTextData : LPWSTR* optional, out -> "var"
; ※出力/バッファ引数は var 方式(変数を直接渡す)。varptr 方式にも切替可。
import (
	"golang.org/x/sys/windows"
	"unsafe"
)

var (
	netapi32 = windows.NewLazySystemDLL("NETAPI32.dll")
	procNetCreateProvisioningPackage = netapi32.NewProc("NetCreateProvisioningPackage")
)

// pProvisioningParams (NETSETUP_PROVISIONING_PARAMS*), ppPackageBinData (BYTE** optional, out), pdwPackageBinDataSize (DWORD* optional, out), ppPackageTextData (LPWSTR* optional, out)
r1, _, err := procNetCreateProvisioningPackage.Call(
	uintptr(pProvisioningParams),
	uintptr(ppPackageBinData),
	uintptr(pdwPackageBinDataSize),
	uintptr(ppPackageTextData),
)
_ = err  // syscall.Errno (valid when the call sets last-error)
_ = r1   // DWORD
function NetCreateProvisioningPackage(
  pProvisioningParams: Pointer;   // NETSETUP_PROVISIONING_PARAMS*
  ppPackageBinData: Pointer;   // BYTE** optional, out
  pdwPackageBinDataSize: Pointer;   // DWORD* optional, out
  ppPackageTextData: PPWideChar   // LPWSTR* optional, out
): DWORD; stdcall;
  external 'NETAPI32.dll' name 'NetCreateProvisioningPackage';
result := DllCall("NETAPI32\NetCreateProvisioningPackage"
    , "Ptr", pProvisioningParams   ; NETSETUP_PROVISIONING_PARAMS*
    , "Ptr", ppPackageBinData   ; BYTE** optional, out
    , "Ptr", pdwPackageBinDataSize   ; DWORD* optional, out
    , "Ptr", ppPackageTextData   ; LPWSTR* optional, out
    , "UInt")   ; return: DWORD
●NetCreateProvisioningPackage(pProvisioningParams, ppPackageBinData, pdwPackageBinDataSize, ppPackageTextData) = DLL("NETAPI32.dll", "dword NetCreateProvisioningPackage(void*, void*, void*, void*)")
# 呼び出し: NetCreateProvisioningPackage(pProvisioningParams, ppPackageBinData, pdwPackageBinDataSize, ppPackageTextData)
# pProvisioningParams : NETSETUP_PROVISIONING_PARAMS* -> "void*"
# ppPackageBinData : BYTE** optional, out -> "void*"
# pdwPackageBinDataSize : DWORD* optional, out -> "void*"
# ppPackageTextData : LPWSTR* optional, out -> "void*"
# なでしこ1は32bit・ANSI(Shift_JIS)。文字列=char*(ANSI)、ポインタ/ハンドル=void*(4byte)。