次の方法で共有


IGameInputDevice::AcquireExclusiveRawDeviceAccess

注意

この関数はまだ実装されていません。

プロセスがフォーカスを失った場合でも、タイトル プロセスにデバイスへの排他的アクセス権を与えます。

構文

bool AcquireExclusiveRawDeviceAccess(  
         uint64_t timeoutInMicroseconds  
)  

パラメーター

timeoutInMicroseconds _In_
型: uint64_t

アクセス要求がタイムアウトになる前にデバイスへのアクセスを待機する時間。

戻り値

型: bool

この関数はまだ実装されていません。

実装後、指定された timeoutInMicroseconds 時間間隔内に排他アクセスが許可されない場合、関数は false の結果を返します。

解説

未加工デバイスの排他的アクセス権を取得すると、デバイスとの間の未加工デバイス I/O のみが有効になります。通常の入力は、現在フォーカスがあるプロセスに引き続き送信されます (この動作を無効化する方法はありません)。 プロセスにデバイスへの排他的な生アクセスがある場合、通常の出力メソッド (触覚/フォース フィードバックなど) は引き続き任意のプロセスによって呼び出すことができますが、排他的アクセスが解放されるまで (フォーカスされているプロセスからでも、フォーカスのプロセスが排他的な生デバイス アクセスを持つプロセスであっても)、出力はデバイスに送信されません。 これにより、低レベルの I/O トランザクションの途中でデバイスに予期しないメッセージが送信されることがなくなります。
プロセスは、排他的デバイスの I/O の実行を完了したら、ReleaseExclusiveRawDeviceAccess を呼び出してデバイスとの通常 (フォーカス ベース) の通信を再開する必要があります。 取得と解放のメソッドは、参照カウント モデルに従うので、毎回取得メソッドが呼び出された後に解放メソッドを呼び出す必要があります。 排他的アクセス権を保持したままプロセスが終了した場合、排他的アクセス権は自動的に解放されます。
排他的アクセス権を持つことができるアプリケーションは一度に 1 つだけです。 指定されたタイムアウト間隔内に排他的アクセス権を取得できない場合、他のプロセスが AcquireExclusiveRawDeviceAccess メソッドを呼び出そうとすると失敗 HRESULT が返されます。

この関数の後に IGameInputDevice::ReleaseExclusiveRawDeviceAccess を呼び出す必要があります。 取得と解放のメソッドは、参照カウント モデルに従うので、毎回取得メソッドが呼び出された後に解放メソッドを呼び出す必要があります。 排他的アクセス権を保持したままプロセスが終了した場合、排他的アクセス権は自動的に解放されます。

要件

ヘッダー: GameInput.h

ライブラリ: xgameruntime.lib

サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体

関連項目

入力 API の概要
IGameInputDevice