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

IDot11AdHocManager

COM
IID8f10cc26-cf0d-42a0-acbe-e2de7007384d継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

802.11 アドホック ネットワークを作成および管理します。

メソッド 5

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT CreateNetwork(LPWSTR Name, LPWSTR Password, INT GeographicalId, IDot11AdHocInterface* pInterface, IDot11AdHocSecuritySettings* pSecurity, GUID* pContextGuid, IDot11AdHocNetwork** pIAdHoc)

ワイヤレス アドホック ネットワークを作成します。

NameLPWSTRinネットワークのフレンドリ名です。この文字列は 32 文字以内に制限してください。フレンドリ名には SSID を使用します。この名前はビーコンでブロードキャストされます。
PasswordLPWSTRin

ネットワーク上でのコンピューターまたはユーザーの認証に使用されるパスワードです。

パスワード文字列の長さは、pSecurity パラメーターで渡されるセキュリティ設定によって異なります。次の表は、各セキュリティ設定に対応するパスワードの長さを示しています。

セキュリティ設定 パスワードの長さ
Open-None 0
Open-WEP 5 文字または 13 文字。16 進数の場合は 10 桁または 26 桁
WPA2PSK 8 ~ 63 文字

上記のセキュリティ設定の組み合わせに対応する列挙値については、DOT11_ADHOC_AUTH_ALGORITHM および DOT11_ADHOC_CIPHER_ALGORITHM を参照してください。

GeographicalIdINTin

ネットワークを作成する地理的な場所です。指定可能な値の一覧については、Table of Geographical Locations を参照してください。

インターフェイスが 802.11d に準拠していない場合、この値は無視されます。つまり、IDot11AdHocInterface::IsDot11dFALSE を返す場合、この値は無視されます。

どの値を使用すべきか不明な場合は、GeographicalIdCTRY_DEFAULT を設定してください。CTRY_DEFAULT を使用すると、802.11d への準拠は強制されません。

pInterfaceIDot11AdHocInterface*in新しいネットワークを作成するネットワーク インターフェイスを指定する IDot11AdHocInterface への省略可能なポインターです。このパラメーターが NULL の場合、未使用の最初のインターフェイスが使用されます。すべてのインターフェイスが使用中の場合は、列挙された最初のインターフェイスが使用されます。その場合、そのインターフェイス上の以前のネットワークは切断されます。
pSecurityIDot11AdHocSecuritySettings*inネットワークで使用するセキュリティ設定を指定する IDot11AdHocSecuritySettings インターフェイスへのポインターです。
pContextGuidGUID*inネットワークを作成したアプリケーションの GUID を指定する省略可能なパラメーターです。アプリケーションはこの識別子を使用して、GetIEnumDot11AdHocNetworks で列挙されるネットワークを、自身が作成したネットワークに限定できます。このフィルター処理が正しく機能するには、すべてのコンピューター上のアプリケーションのすべてのインスタンスが同じ GUID を使用する必要があります。
pIAdHocIDot11AdHocNetwork**out作成されたネットワークを表す IDot11AdHocNetwork インターフェイスへのポインターです。

戻り値

戻り値には次のものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_FAIL
メソッドが失敗しました。
E_INVALIDARG
いずれかのパラメーターが無効です。
E_NOINTERFACE
指定されたインターフェイスはサポートされていません。
E_OUTOFMEMORY
この操作の実行に必要なメモリを割り当てられませんでした。
E_POINTER
パラメーターとして渡されたポインターが無効です。
HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS)
指定された Name を持つネットワークが既に存在します。
HRESULT_FROM_WIN32(ERROR_NOT_READY)
pInterface インターフェイスが、無線がオフになっていることを報告しています。
HRESULT_FROM_WIN32(ERROR_NOT_CAPABLE)
pInterface インターフェイスが、アドホック ネットワークを構成できないことを報告しています。この状態は、NIC がアドホック ネットワークをサポートしていない場合、または NIC が pSecurity で指定されたセキュリティ設定をサポートしていない場合に発生します。
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
pSecurity の設定は pInterface インターフェイスでサポートされていません。
HRESULT_FROM_WIN32(ERROR_ILL_FORMED_PASSWORD)
指定された Password が無効です。指定されたパスワードの長さが、pSecurity で指定されたセキュリティ設定に対して不正である可能性があります。
HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
コンピューター上にワイヤレス ネットワーク インターフェイス カードが見つかりませんでした。
HRESULT_FROM_WIN32(ERROR_CURRENT_DOMAIN_NOT_ALLOWED)
グループ ポリシーまたは管理設定によって、ネットワークの作成が禁止されています。

解説(Remarks)

CreateNetwork の呼び出しが成功すると、pIAdHoc で返されるネットワーク オブジェクトはプロビジョニングされますが、まだ構築されていません。続いて CommitCreatedNetwork を呼び出すことで、ネットワークが初期化されます。ネットワークがコミットされるまでビーコンは送信されません。

CreateNetwork の呼び出し直後は、ネットワークに接続されているクライアントやホストはありません。接続試行の成功と失敗のいずれも、IDot11AdHocManagerNotificationSink インターフェイスを通じてアプリケーションに通知されます。このインターフェイスでの通知の登録方法については、IDot11AdHocManager を参照してください。

vtbl 4 HRESULT CommitCreatedNetwork(IDot11AdHocNetwork* pIAdHoc, BOOLEAN fSaveProfile, BOOLEAN fMakeSavedProfileUserSpecific)

作成されたネットワークを初期化し、必要に応じてそのネットワークのプロファイルをプロファイル ストアにコミットします。

pIAdHocIDot11AdHocNetwork*in初期化してコミットするネットワークを指定する IDot11AdHocNetwork インターフェイスへのポインターです。
fSaveProfileBOOLEANin

ワイヤレス プロファイルを保存するかどうかを指定する省略可能なパラメーターです。TRUE の場合、プロファイルはプロファイル ストアに保存されます。プロファイルが保存されると、ユーザーは [ワイヤレス ネットワークの管理] ユーザー インターフェイスを使用してプロファイルを変更できます。プロファイルは Native Wifi Functions を使用して変更することもできます。

プロファイルを保存すると、IDot11AdHocNetwork::GetSignature が返すネットワーク シグネチャが変化します。

fMakeSavedProfileUserSpecificBOOLEANin

保存するプロファイルを全ユーザー用プロファイルとするかどうかを指定する省略可能なパラメーターです。TRUE を設定した場合、プロファイルは現在のユーザー専用になります。FALSE を設定した場合、プロファイルは全ユーザー用プロファイルとなり、そのコンピューターにログオンした任意のユーザーが使用できます。fSaveProfileFALSE の場合、このパラメーターは無視されます。

既定では、全ユーザー用プロファイルを永続化できるのは Administrators グループのメンバーだけです。これらのセキュリティ設定は WlanSetSecuritySettings 関数を使用して変更できます。全ユーザー用プロファイルを正常に永続化するには、十分な特権を持つユーザーがアプリケーションを起動する必要があります。

アプリケーションがリモート デスクトップ ウィンドウ内で実行されている場合、保存できるのは全ユーザー用プロファイルのみです。リモートで実行中のアプリケーションからユーザー固有のプロファイルを保存することはできません。

戻り値

戻り値には次のものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_FAIL
メソッドが失敗しました。
E_INVALIDARG
いずれかのパラメーターが無効です。
E_NOINTERFACE
指定されたインターフェイスはサポートされていません。
E_OUTOFMEMORY
この操作の実行に必要なメモリを割り当てられませんでした。
E_POINTER
パラメーターとして渡されたポインターが無効です。
vtbl 5 HRESULT GetIEnumDot11AdHocNetworks(GUID* pContextGuid, IEnumDot11AdHocNetworks** ppEnum)

接続範囲内で利用可能なアドホック ネットワークの接続先一覧を返します。

pContextGuidGUID*inネットワークを作成したアプリケーションの GUID を指定する省略可能なパラメーターです。アプリケーションはこの識別子を使用して、列挙されるネットワークを自身が作成したネットワークに限定できます。このフィルター処理が正しく機能するには、すべてのコンピューター上のアプリケーションのすべてのインスタンスが同じ GUID を使用する必要があります。
ppEnumIEnumDot11AdHocNetworks**out列挙されたネットワークを格納する IEnumDot11AdHocNetworks インターフェイスへのポインターです。

戻り値

戻り値には次のものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_FAIL
メソッドが失敗しました。
E_INVALIDARG
いずれかのパラメーターが無効です。
E_NOINTERFACE
指定されたインターフェイスはサポートされていません。
E_OUTOFMEMORY
この操作の実行に必要なメモリを割り当てられませんでした。
E_POINTER
パラメーターとして渡されたポインターが無効です。
vtbl 6 HRESULT GetIEnumDot11AdHocInterfaces(IEnumDot11AdHocInterfaces** ppEnum)

コンピューター上で利用可能なワイヤレス ネットワーク インターフェイス カード (NIC) の集合を返します。

ppEnumIEnumDot11AdHocInterfaces**outNIC の一覧を格納する IEnumDot11AdHocInterfaces インターフェイスへのポインターです。

戻り値

戻り値には次のものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_FAIL
メソッドが失敗しました。
E_INVALIDARG
いずれかのパラメーターが無効です。
E_NOINTERFACE
指定されたインターフェイスはサポートされていません。
E_OUTOFMEMORY
この操作の実行に必要なメモリを割り当てられませんでした。
E_POINTER
パラメーターとして渡されたポインターが無効です。
vtbl 7 HRESULT GetNetwork(GUID* NetworkSignature, IDot11AdHocNetwork** pNetwork)

シグネチャに関連付けられたネットワークを返します。

NetworkSignatureGUID*inアドホック ネットワークを一意に識別するシグネチャです。このシグネチャは、特定のネットワーク属性から生成されます。
pNetworkIDot11AdHocNetwork**outシグネチャに関連付けられたネットワークを表す IDot11AdHocNetwork インターフェイスへのポインターです。

戻り値

戻り値には次のものが含まれますが、これらに限定されません。

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

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDot11AdHocManager "{8F10CC26-CF0D-42A0-ACBE-E2DE7007384D}"
#usecom global IDot11AdHocManager IID_IDot11AdHocManager "{DD06A84F-83BD-4D01-8AB9-2389FEA0869E}"
#comfunc global IDot11AdHocManager_CreateNetwork                 3 wstr,wstr,int,sptr,sptr,var,sptr
#comfunc global IDot11AdHocManager_CommitCreatedNetwork          4 sptr,int,int
#comfunc global IDot11AdHocManager_GetIEnumDot11AdHocNetworks    5 var,sptr
#comfunc global IDot11AdHocManager_GetIEnumDot11AdHocInterfaces  6 sptr
#comfunc global IDot11AdHocManager_GetNetwork                    7 var,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。