Platform SDK: DirectX

DirectPlay4.SecureOpen

DirectPlay4.SecureOpen メソッドは、保証セッションを作成するか、または参加する。保証セッションに参加するには、このメソッドを使用して、ログオン用の認証情報を渡す。

新しいセッションを作成する場合、ホスト コンピュータは、使用する別のセキュリティ パッケージを指定することができる。セッションに参加する場合、コンピュータは、ユーザー名とパスワードを指定することができる。

object.SecureOpen(sessionDesc DirectPlaySessionData, _
    flags As CONST_DPOPENFLAGS, _
    security As DPSECURITYDESC, 
    credentials As DPCREDENTIALS)) 

パラメータ

object
DirectPlay4 オブジェクトを表すオブジェクト式。
sessionDesc
作成または参加するセッションを記述するDirectPlaySessionData オブジェクト。セッションに参加する場合は、SetGuidInstance メソッドと SetSessionPassword メソッドだけを呼び出して、オブジェクトを初期化すればよい。パスワードを渡す必要があるのは、列挙されたセッションに DPSESSION_PASSWORDREQUIRED フラグが設定されている場合だけである。

セッションを作成する場合は、作成するセッションのプロパティ (ただし、DirectPlay が提供する、インスタンスの GUID を除く) を使用して、DirectPlaySessionData オブジェクトを完全に初期化する必要がある。

セッションを開くすべてのコンピュータを認証する必要があることを示すために、DPSESSION_SECURESERVER フラグを設定する。DPSESSION_SECURESERVER フラグを設定しない場合、SecureOpen は、DirectPlay4.Open を呼び出したときと同じように、非保証セッションを開く。

flags
CONST_DPOPENFLAGS 列挙型のフラグ。
security
使用するセキュリティ パッケージを含む DPSECURITYDESC 型。デフォルトのセキュリティ パッケージ (NTLM) と CryptoAPI パッケージ (Microsoft RSA Base Cryptographic Provider) を使用する場合は、この型のすべてのメンバを 0 に初期化する。このメンバは、セッションを作成する場合にのみ関係がある。セッションに参加する場合は、初期化されていない構造体を渡してもよい。
credentials
ログオン名、パスワード、およびサーバー上で認証するドメインを含む DPCREDENTIALS 型。信用情報が存在しない場合は、この型のメンバを 0 に初期化する。セッションを作成するときには、信用情報は無視される。

エラー コード

失敗すればエラーが発生し、Err.Number に次のいずれかの値が設定される。

DPERR_ACCESSDENIED
DPERR_ALREADYINITIALIZED
DPERR_AUTHENTICATIONFAILED
DPERR_CANNOTCREATESERVER
DPERR_CANTLOADCAPI
DPERR_CANTLOADSECURITYPACKAGE
DPERR_CANTLOADSSPI
DPERR_CONNECTING
DPERR_CONNECTIONLOST
DPERR_ENCRYPTIONFAILED
DPERR_INVALIDFLAGS
DPERR_INVALIDPARAMS
DPERR_INVALIDPASSWORD
DPERR_LOGONDENIED
DPERR_NOCONNECTION
DPERR_NONEWPLAYERS
DPERR_SIGNFAILED
DPERR_TIMEOUT
DPERR_UNINITIALIZED
DPERR_USERCANCEL

無効な信用情報を使用して呼び出された場合、または信用情報が必要な場合に信用情報なしで呼び出された場合は、DPERR_LOGONDENIED を返す。アプリケーションでは、ユーザーの信用情報を収集して、SecureOpen を再度呼び出す必要がある。

注意

セッションに参加する場合は、まず信用情報を使用せずに SecureOpen を呼び出す。DPERR_LOGONDENIED が返されたら、ユーザーからユーザー名とパスワードを取得して SecureOpen を再度呼び出し、credentials パラメータを介してユーザーに信用情報を渡す必要がある。DP_OK が返されたら、プレーヤーは、システムへのログオン時 (NTLMでは、ネットワーク ログオン) に指定した信用情報を使用して、ログオンできたことになる。