WlanSaveTemporaryProfile 関数 (wlanapi.h)

WlanSaveTemporaryProfile 関数は、プロファイル ストアに一時プロファイルを保存します。

構文

DWORD WlanSaveTemporaryProfile(
  [in]           HANDLE     hClientHandle,
  [in]           const GUID *pInterfaceGuid,
  [in]           LPCWSTR    strProfileName,
  [in, optional] LPCWSTR    strAllUserProfileSecurity,
  [in]           DWORD      dwFlags,
  [in]           BOOL       bOverWrite,
                 PVOID      pReserved
);

パラメーター

[in] hClientHandle

WlanOpenHandle 関数の以前の呼び出しによって取得されたクライアントのセッション ハンドル。

[in] pInterfaceGuid

インターフェイスの GUID。

[in] strProfileName

保存するプロファイルの名前。 プロファイル名では大文字と小文字が区別されます。 この文字列は NULL で終わる必要があります。

[in, optional] strAllUserProfileSecurity

すべてのユーザー プロファイルのセキュリティ記述子文字列を設定します。 既定では、新しい全ユーザー プロファイルの場合、すべてのユーザーはプロファイルに対する書き込みアクセス権を持っています。 プロファイルのアクセス許可の詳細については、「解説」セクションを参照してください。

dwFlags が WLAN_PROFILE_USER に設定されている場合、このパラメーターは無視されます。

このパラメーターがすべてのユーザー プロファイルに 対して NULL に設定されている場合は、既定のアクセス許可が使用されます。

このパラメーターがすべてのユーザー プロファイルに 対して NULL でない場合は、セキュリティ記述子オブジェクトが作成され、文字列として解析された後に、プロファイルに関連付けられているセキュリティ記述子文字列が作成または変更されます。

[in] dwFlags

プロファイルに設定するフラグを指定します。 フラグを組み合わせることができます。

意味
0
プロファイルは、すべてのユーザー プロファイルです。
WLAN_PROFILE_USER
0x00000002
プロファイルはユーザーごとのプロファイルです。
WLAN_PROFILE_CONNECTION_MODE_SET_BY_CLIENT
0x00010000
プロファイルはクライアントによって作成されました。
WLAN_PROFILE_CONNECTION_MODE_AUTO
0x00020000
プロファイルは、自動構成モジュールによって作成されました。

[in] bOverWrite

このプロファイルが既存のプロファイルを上書きするかどうかを指定します。 このパラメーターが FALSE で、プロファイルが既に存在する場合、既存のプロファイルは上書きされず、エラーが返されます。

pReserved

将来利用するために予約されています。 NULL に設定する必要があります。

戻り値

関数が成功した場合、戻り値は ERROR_SUCCESS です。

関数が失敗した場合、戻り値は次のいずれかのリターン コードになります。

リターン コード 説明
ERROR_INVALID_PARAMETER
次のいずれかの条件が発生しました。
  • hClientHandleNULL または無効です。
  • pInterfaceGuidNULL です
  • pReservedNULL ではありません。
  • dwFlags は、上記の表で指定された 1 つ以上の値の組み合わせに設定されていません。
  • dwFlags は WLAN_PROFILE_CONNECTION_MODE_AUTO に設定され、 strProfileNameNULL です
ERROR_INVALID_HANDLE
ハンドル テーブルにハンドル hClientHandle が見つかりませんでした。
ERROR_NOT_SUPPORTED
この関数は、サポートされていないプラットフォームから呼び出されました。 この値は、SP3 の Windows XP または SP2 クライアントを使用した Windows XP 用ワイヤレス LAN API からこの関数が呼び出された場合に返されます。
RPC_STATUS
さまざまなエラー コード。
ERROR_INVALID_STATE
インターフェイスは現在、一時プロファイルを使用して接続されていません。

注釈

一時的なプロファイルとは、 WlanConnect に渡されるか、検出エンジンによって生成されるプロファイルです。 ネットワーク接続は、一時プロファイルを使用して確立できます。 この API を使用すると、一時的なプロファイルと関連付けられているユーザー データがプロファイル ストアに保存されます。

新しいプロファイルは、グループ ポリシー プロファイルの後の一覧の上部に追加されます。 既存のプロファイルが上書きされた場合、リスト内のプロファイルの位置は変更されません。

すべてのユーザー プロファイルには、読み取り、書き込み、実行の 3 つのアクセス許可が関連付けられています。 ユーザーが読み取りアクセス権を持っている場合、ユーザーはプロファイルのアクセス許可を表示できます。 ユーザーが実行アクセス権を持っている場合、ユーザーは読み取りアクセス権を持ち、ユーザーはプロファイルを使用してネットワークに接続して切断することもできます。 ユーザーが書き込みアクセス権を持っている場合、ユーザーは実行アクセス権を持ち、ユーザーはプロファイルに関連付けられているアクセス許可を変更および削除することもできます。

次に、セキュリティ記述子オブジェクトを作成し、それを文字列として解析する手順について説明します。

  1. InitializeSecurityDescriptor を呼び出して、メモリ内にセキュリティ記述子を作成します。
  2. SetSecurityDescriptorOwner を呼び出します。
  3. InitializeAcl を呼び出して、メモリ内に随意アクセス制御リスト (DACL) を作成します。
  4. AddAccessAllowedAce または AddAccessDeniedAce を呼び出して、DACL にアクセス制御エントリ (ACE) を追加します。 必要に応じて、 AccessMask パラメーターを次のビットごとの OR の組み合わせのいずれかに設定します。
    • WLAN_READ_ACCESS
    • WLAN_READ_ACCESS |WLAN_EXECUTE_ACCESS
    • WLAN_READ_ACCESS |WLAN_EXECUTE_ACCESS |WLAN_WRITE_ACCESS
  5. SetSecurityDescriptorDacl を呼び出して、DACL をセキュリティ記述子に追加します。
  6. 記述子を文字列に変換するには、 ConvertSecurityDescriptorToStringSecurityDescriptor を呼び出します。
ConvertSecurityDescriptorToStringSecurityDescriptor によって返される文字列は、WlanSaveTemporaryProfile を呼び出すときに strAllUserProfileSecurity パラメーター値として使用できます。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wlanapi.h (Wlanapi.h を含む)
Library Wlanapi.lib
[DLL] Wlanapi.dll

こちらもご覧ください

ネイティブ Wifi API のアクセス許可