次の方法で共有


LoginIScsiTargetW 関数 (iscsidsc.h)

LoginIscsiTarget 関数は、指定されたターゲットとの完全な機能を備えたログイン セッションを確立します。

構文

ISDSC_STATUS ISDSC_API LoginIScsiTargetW(
  [in]           PWSTR                       TargetName,
  [in]           BOOLEAN                     IsInformationalSession,
  [in, optional] PWSTR                       InitiatorInstance,
  [in, optional] ULONG                       InitiatorPortNumber,
  [in, optional] PISCSI_TARGET_PORTALW       TargetPortal,
  [in, optional] ISCSI_SECURITY_FLAGS        SecurityFlags,
  [in, optional] PISCSI_TARGET_MAPPINGW      Mappings,
  [in, optional] PISCSI_LOGIN_OPTIONS        LoginOptions,
  [in, optional] ULONG                       KeySize,
  [in, optional] PCHAR                       Key,
  [in]           BOOLEAN                     IsPersistent,
  [out]          PISCSI_UNIQUE_SESSION_ID    UniqueSessionId,
  [out]          PISCSI_UNIQUE_CONNECTION_ID UniqueConnectionId
);

パラメーター

[in] TargetName

ログイン セッションを確立するターゲットの名前。 ターゲットは、iSCSI イニシエーター サービスの検出されたターゲットの一覧に既に存在している必要があります。

[in] IsInformationalSession

true場合、LoginIscsiTarget 関数はログイン セッションを確立しますが、操作ではターゲット上の LUN は "プラグ アンド プレイ" マネージャーに報告されません。 ログインが成功した場合、管理アプリケーションは、SendScsiReportLuns と SendScsiReadCapacity 関数 を使用してターゲットに情報を照会できますが、ストレージ スタックはターゲットを列挙したり、それに対するドライバーを読み込んだりしません。

IsInformationalSession が false場合、LoginIscsiTarget はターゲットに関連付けられている LUN を "プラグ アンド プレイ" マネージャーに報告し、システムは LUN のドライバーを読み込みます。

[in, optional] InitiatorInstance

ターゲットにログインするイニシエーターの名前。 InitiatorName が null場合、iSCSI イニシエーター サービスはイニシエーターを選択します。

[in, optional] InitiatorPortNumber

ログイン セッションを開始するホスト バス アダプター (HBA) のポート番号。 このパラメーターが ISCSI_ANY_INITIATOR_PORTの場合、呼び出し元は、ターゲットにログインするときに使用するイニシエーター HBA のポートを指定しませんでした。

InitiatorName null場合は、InitiatorPortNumber ISCSI_ANY_INITIATOR_PORTする必要があります。

[in, optional] TargetPortal

イニシエーターがセッションを開くために使用するポータルを示す ISCSI_TARGET_PORTAL 型の構造体へのポインター。 指定したポータルは、TargetNameに関連付けられているポータル グループに属している必要があります。 TargetPortal が null場合、iSCSI イニシエーター サービスは、イニシエーターがアクセスできる任意のポータルを使用するようにイニシエーターに指示します。 呼び出し元 TargetPortalの値を指定した場合、iSCSI イニシエーター サービスは、TargetPortal がイニシエーター HBA にアクセスできるかどうかを確認しません。

[in, optional] SecurityFlags

イニシエーターがセッションに追加する IPsec 接続の特性を指定するビットマップ。 イニシエーターとターゲット ポータルの間の IPsec セキュリティ ポリシーが、現在のポータル グループ ポリシーまたはターゲットへの以前の接続の結果として既に構成されている場合、既存の構成は、SecurityFlagsで指定された構成よりも優先されます。

ISCSI_SECURITY_FLAG_VALID フラグが 0 に設定されている場合、iSCSI イニシエーター サービスは、レジストリで定義されているセキュリティ フラグに既定値を使用します。

呼び出し元は、ビットマップで次のいずれかのフラグを設定できます。

価値 意味
ISCSI_SECURITY_FLAG_TUNNEL_MODE_PREFERRED
1 に設定すると、イニシエーターは IPsec トンネル モードで接続を確立する必要があります。 呼び出し元は、このフラグまたはISCSI_SECURITY_FLAG_TRANSPORT_MODE_PREFERRED フラグを設定する必要がありますが、両方を設定する必要はありません。
ISCSI_SECURITY_FLAG_TRANSPORT_MODE_PREFERRED
1 に設定すると、イニシエーターは IPsec トランスポート モードで接続を確立する必要があります。 呼び出し元は、このフラグまたはISCSI_SECURITY_FLAG_TUNNEL_MODE_PREFERRED フラグを設定する必要がありますが、両方を設定する必要はありません。
ISCSI_SECURITY_FLAG_PFS_ENABLED
1 に設定すると、イニシエーターは Perfect Forward Secrecy (PFS) モードを有効にして接続を確立する必要があります。それ以外の場合、イニシエーターは PFS モードを無効にして接続する必要があります。
ISCSI_SECURITY_FLAG_AGGRESSIVE_MODE_ENABLED
1 に設定すると、イニシエーターはアグレッシブ モードを有効にして接続を確立する必要があります。 呼び出し元は、このフラグまたはISCSI_SECURITY_FLAG_MAIN_MODE_ENABLED フラグを設定する必要がありますが、両方を設定する必要はありません。
Microsoft ソフトウェア イニシエーター ドライバーはアグレッシブ モードをサポートしていません。
 
ISCSI_SECURITY_FLAG_MAIN_MODE_ENABLED
1 に設定すると、イニシエーターはメイン モードを有効にして接続を確立する必要があります。 呼び出し元は、このフラグまたはISCSI_SECURITY_FLAG_AGGRESSIVE_MODE_ENABLED フラグを設定する必要がありますが、両方を設定する必要はありません。
ISCSI_SECURITY_FLAG_IKE_IPSEC_ENABLED
1 に設定すると、イニシエーターは IKE/IPsec プロトコルを有効にして接続する必要があります。それ以外の場合、IKE/IPsec プロトコルは無効になります。
ISCSI_SECURITY_FLAG_VALID
1 に設定すると、他のマスク値が有効になります。それ以外の場合、iSCSI イニシエーター サービスは、ターゲット ポータル用に以前に定義されたビットマップ値を使用するか、使用できない場合は、イニシエーター サービスがレジストリで定義されている既定値を使用します。

[in, optional] Mappings

ISCSI_TARGET_MAPPING型の構造体の配列。それぞれが、イニシエーターがターゲットに関連付けられているデバイスにバス、ターゲット、LUN 番号を割り当てるために使用する情報を保持します。 マッピング が null場合、イニシエーターはバス、ターゲット、LUN 番号を選択します。

[in, optional] LoginOptions

ログイン セッションの特性を指定するオプションを含む ISCSI_LOGIN_OPTIONS 型の構造体へのポインター。

[in, optional] KeySize

Key パラメーターで指定されたターゲットの事前共有キーのサイズ (バイト単位)。

[in, optional] Key

このターゲットを公開するターゲット ポータルにログインするときに使用する事前共有キー。

IPsec ポリシーが既にターゲット ポータルに関連付けられている場合、この呼び出しの IPsec 設定は無視されます。
 

[in] IsPersistent

true場合、イニシエーターは、非揮発性ストレージにログイン セッションの特性を保存し、イニシエーター デバイスの再起動とオペレーティング システムの再起動の間に情報が保持されるようにする必要があります。 イニシエーターは、永続データを保存するまでログイン セッションを確立しないでください。

イニシエーター デバイスが再起動するたびに、同じ特性を持つログイン セッションの再確立が自動的に試行されます。 false場合、イニシエーター デバイスは、ログイン セッションの特性を保存せずに、単にターゲットにログインします。

[out] UniqueSessionId

戻り値としてログイン セッションの一意のセッション識別子を含む ISCSI_UNIQUE_SESSION_ID 型の構造体へのポインター。

[out] UniqueConnectionId

戻り値にログイン セッションの一意の接続識別子が含まれる ISCSI_UNIQUE_CONNECTION_ID 型の構造体へのポインター。

戻り値

操作が成功した場合にERROR_SUCCESSを返します。 それ以外の場合は、適切な Win32 または iSCSI エラー コードが返されます。

備考

LoginIscsiTarget 関数は、ターゲットとの 1 つのログイン セッションを確立するか、ターゲットへの永続的なログインを作成します。 LoginIscsiTarget が永続的なログインを作成する場合、通常はシステム起動時に、イニシエーターが開始されるたびに、指定されたイニシエーターがターゲットにログインする必要があります。 LoginIscsiTargetする呼び出し元は、IsPersistent パラメーターを true設定することで、永続的ログインの作成を要求できます。

手記

iscsidsc.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして LoginIScsiTarget を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2008 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー iscsidsc.h
ライブラリ Iscsidsc.lib
DLL Iscsidsc.dll

関連項目

ISCSI_LOGIN_OPTIONS

ISCSI_TARGET_PORTAL

ISCSI_UNIQUE_CONNECTION_ID

ISCSI_UNIQUE_SESSION_ID