Class CriFs
CriFs API
Inherited Members
Namespace: CriWare
Assembly: CriWare.CriFs.dll
Syntax
public static class CriFs
Fields
DeviceDefault
デフォルトデバイスID
Declaration
public const CriFs.DeviceId DeviceDefault = _00
Field Value
Type | Description |
---|---|
CriFs.DeviceId |
DeviceMemory
メモリファイルシステムデバイスID
Declaration
public const CriFs.DeviceId DeviceMemory = _07
Field Value
Type | Description |
---|---|
CriFs.DeviceId |
GrouploaderNoPreparationLimit
準備ファイル数の制限を設定するAPIで「無制限」を示す特別値
Declaration
public const int GrouploaderNoPreparationLimit = 0
Field Value
Type | Description |
---|---|
int |
Remarks
説明: LimitNumPreparingFiles(int) 関数でこの値を指定した場合や、 LimitNumPreparingFiles(int) 関数を使用しない場合、準備処理は LoadBulk(IntPtr, long, GroupFileInfo[], int) 関数内で完結させます。
LoadlimiterSizeDefault
ロードリミッタサイズのデフォルト値(リミッタ制限なし)
Declaration
public const int LoadlimiterSizeDefault = 2147483647
Field Value
Type | Description |
---|---|
int |
Remarks
注意: ゲーム機向けではロードリミッタ機能は非サポートです。
LoadlimiterSizeUnlimited
Declaration
public const int LoadlimiterSizeUnlimited = 2147483647
Field Value
Type | Description |
---|---|
int |
ReadRequestNumUnlimited
リード要求回数の「制限なし」を示す特別値(デフォルト値)
Declaration
public const int ReadRequestNumUnlimited = 2147483647
Field Value
Type | Description |
---|---|
int |
Properties
SelectIoCallback
コールバックイベントオブジェクト
Declaration
public static CriFs.SelectIoCbFunc SelectIoCallback { get; }
Property Value
Type | Description |
---|---|
CriFs.SelectIoCbFunc |
See Also
Methods
AddressToPath(IntPtr, long, Span<byte>, int)
メモリファイルパスの作成
Declaration
public static CriErr.Error AddressToPath(IntPtr buffer, long bufferSize, Span<byte> path, int length)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | buffer | データアドレス |
long | bufferSize | データサイズ |
Span<byte> | path | パス文字列格納領域 |
int | length | パス文字列格納領域サイズ(単位はバイト) |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: メモリ上に配置されたデータをファイルとしてアクセスするためのパス文字列を作成します。 第1引数( buffer )と第2引数( buffer_size )にデータの格納アドレスとデータサイズを指定することで、 当該データをファイルとして扱うためのパスが第3引数( path )に格納されます。 尚、パス文字列を格納する領域のサイズは、第4引数( length )で指定します。
備考: 本関数は、メモリ上にロードされたCPKファイルをバインドする際に利用します。 CPKファイルをメモリ上にロード後、ロードした領域のアドレスとサイズを本関数でパス文字列に変換するし、 BindCpk(CriFsBinder, ArgString, out CriFsBind, IntPtr, int) 関数等に指定することで、オンメモリCPKデータのバインドが可能になります。
注意: パス文字列の格納領域サイズが小さい場合、本関数は失敗し、エラーを返します。 現状、32bitメモリ空間のみの環境では、パス文字列の格納領域は 28 バイト必要です。 64bitメモリ空間の環境では、 パス文字列の格納領域は 44 バイト必要です。
See Also
AttachLogOutput(LogOutputMode, IntPtr)
ログ出力機能の追加
Declaration
public static CriErr.Error AttachLogOutput(CriFs.LogOutputMode mode, IntPtr param)
Parameters
Type | Name | Description |
---|---|---|
CriFs.LogOutputMode | mode | ログ出力モード |
IntPtr | param | 拡張パラメータ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ログ出力機能を有効にし、ファイルアクセスログの出力を開始します。 本関数を実行すると、ファイルにアクセスするタイミングで、デバッガー等にファイルアクセスログが出力されるようになります。
注意: 本関数を実行後、必ず対になる DetachLogOutput() 関数を実行してください。 また、 DetachLogOutput() 関数を実行するまでは、本関数を再度実行することはできません。
See Also
BeginGroup(ArgString, ArgString)
グループ優先区間の開始
Declaration
public static CriErr.Error BeginGroup(ArgString groupname, ArgString attrname)
Parameters
Type | Name | Description |
---|---|---|
ArgString | groupname | グループ名 |
ArgString | attrname | アトリビュート名 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: グループ優先区間を開始します。 本関数実行後、 EndGroup() 関数を実行するまでの間、指定したグループ内のファイルが優先的にロードされるようになります。 (バインダー内に同じ名前のファイルが複数存在する場合でも、指定したグループ内のファイルが優先して選択されます。) 本関数を使用することにより、通常のローダーを使用する場合でも、グループ化の恩恵を受けることが可能になります。
注意: 複数のグループ優先区間を重複させることはできません。 本関数を実行後、必ず対になる EndGroup() 関数を実行してください。 本関数と BeginLoadRegion(IntPtr) 関数を併用することはできません。 (CRI File System Ver.2.02.00より、 BeginLoadRegion(IntPtr) 関数は本関数を呼び出すメソッドに変更されました。)
See Also
BeginLoadRegion(IntPtr)
ロード区間の開始
Declaration
public static CriErr.Error BeginLoadRegion(IntPtr name)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | name | ロード区間名 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ロード区間の開始を宣言します。 AttachLogOutput(LogOutputMode, IntPtr) 関数でファイルアクセスログの出力を有効にしている場合、本関数の引数(name)で指定したロード区間名がログに出力されます。 ロード区間は、ファイルを最適に配置するための目安として使用されます。 CPK File Builderでファイルアクセスログからグループを作成する場合、本関数で定義したロード区間がグループに変換されます。 (同一ロード区間内でロードするファイル同士は、最適配置時に近い場所に配置される可能性が高くなります。)
注意: 複数のロード区間を重複させることはできません。 本関数を実行後、必ず対になる EndLoadRegion() 関数を実行してください。 本関数と BeginGroup(ArgString, ArgString) 関数を併用することはできません。 (CRI File System Ver.2.02.00より、本関数の機能が BeginGroup(ArgString, ArgString) 関数に統合され、関数自体も BeginGroup(ArgString, ArgString) 関数を呼び出すメソッドに変更されました。)
See Also
CalculateWorkSizeForLibrary(in Config, out int)
ワーク領域サイズの計算
Declaration
public static CriErr.Error CalculateWorkSizeForLibrary(in CriFs.Config config, out int nbyte)
Parameters
Type | Name | Description |
---|---|---|
CriFs.Config | config | コンフィギュレーション |
int | nbyte | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: CRI File Systemライブラリを使用するために必要な、ワーク領域のサイズを取得します。
備考: ワーク領域のサイズはコンフィギュレーション( CriFs.Config )の内容によって変化します。 ライブラリに割り当てるメモリサイズを削減したい場合には、コンフィギュレーションのパラメータを適宜調節してください。 config に null を指定した場合、デフォルトのコンフィギュレーションが適用されます。
See Also
ControlFileIoMode(FileIoMode)
ファイルI/Oモードの設定
Declaration
public static CriErr.Error ControlFileIoMode(CriFs.FileIoMode ioMode)
Parameters
Type | Name | Description |
---|---|---|
CriFs.FileIoMode | ioMode | ファイルI/Oモード |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: CRI File Systemライブラリ全体のファイルI/Oモードを設定します。 ShareFileHandle を設定すると、ファイルオブジェクトをライブラリ内部で共有 し、ファイルアクセスを効率良く行います。 具体的には、BindCpk(CriFsBinder, ArgString, out CriFsBind, IntPtr, int) 関数、BindFile(CriFsBinder, ArgString, out CriFsBind, IntPtr, int) 関数を呼び出し時に作成 したファイルオブジェクトはアンバインドするまでライブラリ内部で保持し、保持中のファイルに対するアクセスでは ファイルオープンが発生しません。 OpenEveryTime を設定すると、ファイルオブジェクトの共有を行わずにファイル アクセスのたびにファイルオープンを行います。 ファイルオープン負荷の分だけファイル読み込みの性能は落ちますが、ファイルアクセスが必要な時のみ ファイルオブジェクトを作成するため、ファイルディスクリプタなどのリソース消費を最小限に抑えることが可能です。 未設定時(CRI File Systemライブラリのデフォルト設定)は、機種ごとに異なります。 機種固有マニュアルに記載がない限り、デフォルト設定は ShareFileHandle です。
注意: 本関数はライブラリ初期化前に呼び出してください。 ライブラリ初期化後に呼び出すことは出来ません。 *
See Also
DetachLogOutput()
ログ出力機能の削除
Declaration
public static CriErr.Error DetachLogOutput()
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ログ出力機能を無効にし、ファイルアクセスログの出力を停止します。 本関数を実行することで、デバッガー等へのファイルアクセスログの出力を停止することが可能です。
注意: DetachLogOutput() 関数実行前に本関数を実行することはできません。
See Also
DisableAssetsAccessANDROID()
Androidプロジェクト内のassetsフォルダーに対するアクセスの無効化
Declaration
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: assetフォルダーへのアクセスを無効化します。
EnableAssetsAccessANDROID(IntPtr, IntPtr)
Androidプロジェクト内のassetsフォルダーに対するアクセスの有効化
Declaration
Parameters
Type | Name | Description |
---|---|---|
IntPtr | vm | JavaVMオブジェクトへの参照 |
IntPtr | jobj | android.content.Contextオブジェクト |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: assetフォルダーへのアクセスを有効化します。 アクセスが終了した場合、 DisableAssetsAccessANDROID() 関数 を呼び出してください。
注意: : 本関数を呼び出す前に、CRI File Systemライブラリの初期化が完了済みである事を確認して下さい。
EndGroup()
グループ優先区間の終了
Declaration
public static CriErr.Error EndGroup()
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: グループ優先区間を終了します。
注意: 本関数と EndLoadRegion() 関数を併用することはできません。 (CRI File System Ver.2.02.00より、 EndLoadRegion() 関数は本関数を呼び出すメソッドに変更されました。)
See Also
EndLoadRegion()
ロード区間の終了
Declaration
public static CriErr.Error EndLoadRegion()
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ロード区間の終了を宣言します。
注意: 本関数と EndGroup() 関数を併用することはできません。 (CRI File System Ver.2.02.00より、本関数の機能が EndGroup() 関数に統合され、関数自体も EndGroup() 関数を呼び出すメソッドに変更されました。)
See Also
ExecuteDataDecompression()
データ展開処理の実行(非スレッド時環境向け)
Declaration
public static CriErr.Error ExecuteDataDecompression()
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: CRI File Systemライブラリのデータ展開処理を実行します。
注意: この関数は、スレッドを使用しない環境でCRI File Systemライブラリを使用する場合に呼び出す必要があります。 スレッドを使用する環境では、この関数の代わりに、 ExecuteMain() 関数を実行してください。
ExecuteFileAccess()
ファイルアクセス処理の実行(非スレッド時環境向け)
Declaration
public static CriErr.Error ExecuteFileAccess()
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: CRI File Systemライブラリのファイルアクセス処理を実行します。
注意: この関数は、スレッドを使用しない環境でCRI File Systemライブラリを使用する場合に呼び出す必要があります。 スレッドを使用する環境では、この関数の代わりに、 ExecuteMain() 関数を実行してください。
ExecuteMain()
サーバー処理の実行
Declaration
public static CriErr.Error ExecuteMain()
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: CRI File Systemライブラリの内部状態を更新します。 アプリケーションは、この関数を定期的(毎フレーム1回程度)に実行する必要があります。
注意: ExecuteMain() を実行しない場合、ファイルのロードが進まない等の問題が発生する可能性があります。
FinalizeLibrary()
CRI File Systemの終了
Declaration
public static CriErr.Error FinalizeLibrary()
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: CRI File Systemライブラリを終了します。
注意: InitializeLibrary(in Config, IntPtr, int) 関数実行前に本関数を実行することはできません。
See Also
GetDataDecompressionThreadAffinityMaskPC(out IntPtr)
データ展開スレッドのアフィニティマスク取得
Declaration
Parameters
Type | Name | Description |
---|---|---|
IntPtr | mask | アフィニティマスク |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: データ展開スレッドのアフィニティマスクを取得します。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラーを返します。 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラーを返します。
GetDataDecompressionThreadPriorityANDROID(out int)
データ展開スレッドのプライオリティ取得
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: データ展開スレッドのプライオリティを取得します。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラーを返します。 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラーを返します。
GetDataDecompressionThreadPriorityPC(out int)
データ展開スレッドのプライオリティ取得
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: データ展開スレッドのプライオリティを取得します。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラーを返します。 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラーを返します。
GetDefaultIoInterface(out NativeReference<IoInterface>)
デフォルトI/Oインターフェイスの取得
Declaration
public static CriErr.Error GetDefaultIoInterface(out NativeReference<CriFs.IoInterface> ioif)
Parameters
Type | Name | Description |
---|---|---|
NativeReference<CriFs.IoInterface> | ioif | I/Oインターフェイス |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: CRI File Systemライブラリがデフォルトで利用するI/Oインターフェイスを取得します。 I/O選択コールバック(CriFs.SelectIoCbFunc )内でデフォルトの処理をさせたい場合には、 本関数で取得したI/Oインターフェイスを、出力値として返してください。
See Also
GetDeviceInfo(DeviceId, out DeviceInfo)
デバイス情報の取得
Declaration
public static CriErr.Error GetDeviceInfo(CriFs.DeviceId id, out CriFs.DeviceInfo info)
Parameters
Type | Name | Description |
---|---|---|
CriFs.DeviceId | id | デバイスID |
CriFs.DeviceInfo | info | デバイス情報 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: 指定したデバイスの情報を取得します。 指定したデバイスがファイルの書き込みに対応しているかどうかや、 読み書きに使用するバッファーのアライメント調整が必要かどうかを確認することが可能です。
See Also
GetFileAccessThreadAffinityMaskPC(out IntPtr)
ファイルアクセススレッドのアフィニティマスク取得
Declaration
Parameters
Type | Name | Description |
---|---|---|
IntPtr | mask | アフィニティマスク |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ファイルアクセススレッドのアフィニティマスクを取得します。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラーを返します。 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラーを返します。
GetFileAccessThreadPriorityANDROID(out int)
ファイルアクセススレッドのプライオリティ取得
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ファイルアクセススレッドのプライオリティを取得します。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラーを返します。 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラーを返します。
GetFileAccessThreadPriorityPC(out int)
ファイルアクセススレッドのプライオリティ取得
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ファイルアクセススレッドのプライオリティを取得します。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラーを返します。 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラーを返します。
GetInstallerThreadAffinityMaskPC(out IntPtr)
インストーラースレッドのアフィニティマスク取得
Declaration
Parameters
Type | Name | Description |
---|---|---|
IntPtr | mask | アフィニティマスク |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: インストーラースレッドのアフィニティマスクを取得します。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラーを返します。 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラーを返します。
GetInstallerThreadPriorityPC(out int)
インストーラースレッドのプライオリティ取得
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: インストーラースレッドのプライオリティを取得します。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラーを返します。 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラーを返します。
GetMemoryFileSystemThreadAffinityMaskPC(out IntPtr)
メモリファイルシステムスレッドのアフィニティマスク取得
Declaration
Parameters
Type | Name | Description |
---|---|---|
IntPtr | mask | アフィニティマスク |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: メモリファイルシステムスレッドのアフィニティマスクを取得します。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラーを返します。 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラーを返します。
GetMemoryFileSystemThreadPriorityANDROID(out int)
メモリファイルシステムスレッドのプライオリティ取得
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: メモリファイルシステムスレッドのプライオリティを取得します。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラーを返します。 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラーを返します。
GetMemoryFileSystemThreadPriorityPC(out int)
メモリファイルシステムスレッドのプライオリティ取得
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: メモリファイルシステムスレッドのプライオリティを取得します。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラーを返します。 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラーを返します。
GetNumBinds(out int, out int, out int)
バインド数の取得
Declaration
public static CriErr.Error GetNumBinds(out int curNum, out int maxNum, out int limit)
Parameters
Type | Name | Description |
---|---|---|
int | curNum | 現在バインド中の数 |
int | maxNum | 過去に最大同時にバインドした数 |
int | limit | バインド可能回数の上限値 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: バインド数に関する情報を取得します。
GetNumOpenedFiles(out int, out int, out int)
オープンされたファイル数の取得
Declaration
public static CriErr.Error GetNumOpenedFiles(out int curNum, out int maxNum, out int limit)
Parameters
Type | Name | Description |
---|---|---|
int | curNum | 現在オープン中のファイルの数 |
int | maxNum | 過去に最大同時にオープンしたファイルの数 |
int | limit | オープン可能なファイルの上限値 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ファイルのオープン数に関する情報を取得します。
GetNumUsedBinders(out int, out int, out int)
バインダー使用数の取得
Declaration
public static CriErr.Error GetNumUsedBinders(out int curNum, out int maxNum, out int limit)
Parameters
Type | Name | Description |
---|---|---|
int | curNum | 現在使用中のバインダーの数 |
int | maxNum | 過去に最大同時に利用したバインダーの数 |
int | limit | 利用可能なバインダーの上限数 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: バインダーの使用数に関する情報を取得します。
GetNumUsedGroupLoaders(out int, out int, out int)
グループローダー使用数の取得
Declaration
public static CriErr.Error GetNumUsedGroupLoaders(out int curNum, out int maxNum, out int limit)
Parameters
Type | Name | Description |
---|---|---|
int | curNum | 現在使用中のグループローダーの数 |
int | maxNum | 過去に最大同時に利用したグループローダーの数 |
int | limit | 利用可能なグループローダーの上限数 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: グループローダーの使用数に関する情報を取得します。
GetNumUsedInstallers(out int, out int, out int)
インストーラー使用数の取得
Declaration
public static CriErr.Error GetNumUsedInstallers(out int curNum, out int maxNum, out int limit)
Parameters
Type | Name | Description |
---|---|---|
int | curNum | 現在使用中のインストーラーの数 |
int | maxNum | 過去に最大同時に利用したインストーラーの数 |
int | limit | 利用可能なインストーラーの上限数 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: インストーラーの使用数に関する情報を取得します。
GetNumUsedLoaders(out int, out int, out int)
ローダー使用数の取得
Declaration
public static CriErr.Error GetNumUsedLoaders(out int curNum, out int maxNum, out int limit)
Parameters
Type | Name | Description |
---|---|---|
int | curNum | 現在使用中のローダーの数 |
int | maxNum | 過去に最大同時に利用したローダーの数 |
int | limit | 利用可能なローダーの上限数 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ローダーの使用数に関する情報を取得します。
GetNumUsedStdioHandles(out int, out int, out int)
CriFsStdioオブジェクト使用数の取得
Declaration
public static CriErr.Error GetNumUsedStdioHandles(out int curNum, out int maxNum, out int limit)
Parameters
Type | Name | Description |
---|---|---|
int | curNum | 現在使用中のCriFsStdioオブジェクトの数 |
int | maxNum | 過去に最大同時に利用したCriFsStdioオブジェクトの数 |
int | limit | 利用可能なCriFsStdioオブジェクトの上限数 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: CriFsStdioオブジェクトの使用数に関する情報を取得します。
GetServerThreadAffinityMaskPC(out IntPtr)
サーバー処理スレッドのアフィニティマスク取得
Declaration
Parameters
Type | Name | Description |
---|---|---|
IntPtr | mask | アフィニティマスク |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: サーバー処理(ライブラリの内部処理)を行うスレッドのアフィニティマスクを取得します。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラーを返します。 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラーを返します。
GetServerThreadPriorityPC(out int)
サーバー処理スレッドのプライオリティ取得
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: サーバー処理(ライブラリの内部処理)を行うスレッドのプライオリティを取得します。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラーを返します。 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラーを返します。
InitializeLibrary(in Config, IntPtr, int)
CRI File Systemの初期化
Declaration
public static CriErr.Error InitializeLibrary(in CriFs.Config config, IntPtr buffer = default, int size = 0)
Parameters
Type | Name | Description |
---|---|---|
CriFs.Config | config | コンフィギュレーション |
IntPtr | buffer | ワーク領域 |
int | size | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: CRI File Systemライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizeLibrary() 関数を実行するまでの間、利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ワーク領域を確保する方法には、以下の2通りの方法があります。 (a) User Allocator方式:メモリの確保/解放に、ユーザーが用意した関数を使用する方法。 (b) Fixed Memory方式:必要なメモリ領域を直接ライブラリに渡す方法。 User Allocator方式を用いる場合、ユーザーはCRI File Systemライブラリにメモリ確保関数を登録しておきます。 workにnull、sizeに0を指定して本関数を呼び出すことで、 ライブラリは登録済みのメモリ確保関数を使用して必要なメモリを自動的に確保します。 ユーザーがワーク領域を用意する必要はありません。 初期化時に確保されたメモリは、終了処理時( FinalizeLibrary() 関数実行時)に解放されます。 Fixed Memory方式を用いる場合、ワーク領域として別途確保済みのメモリ領域を本関数に 設定する必要があります。 ワーク領域のサイズは CalculateWorkSizeForLibrary(in Config, out int) 関数で取得可能です。 初期化処理の前に CalculateWorkSizeForLibrary(in Config, out int) 関数で取得したサイズ分のメモリを予め 確保しておき、本関数に設定してください。 尚、Fixed Memory方式を用いた場合、ワーク領域はライブラリの終了処理( FinalizeLibrary() 関数) を行なうまでの間、ライブラリ内で利用され続けます。 ライブラリの終了処理を行なう前に、ワーク領域のメモリを解放しないでください。
例: 【User Allocator方式によるライブラリの初期化】 User Allocator方式を用いる場合、ライブラリの初期化/終了の手順は以下の通りです。 -# 初期化処理実行前に、 SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, IntPtr) 関数と SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) 関数を用いてメモリ確保/解放関数を登録する。 -# 初期化用コンフィグ構造体にパラメータをセットする。 -# InitializeLibrary(in Config, IntPtr, int) 関数で初期化処理を行う。 (workにはnull、sizeには0を指定する。) -# アプリケーション終了時に FinalizeLibrary() 関数で終了処理を行なう。
【Fixed Memory方式によるライブラリの初期化】 Fixed Memory方式を用いる場合、ライブラリの初期化/終了の手順は以下の以下の通りです。 -# 初期化用コンフィグ構造体にパラメータをセットする。 -# ライブラリの初期化に必要なワーク領域のサイズを、 CalculateWorkSizeForLibrary(in Config, out int) 関数を使って計算する。 -# ワーク領域サイズ分のメモリを確保する。 -# InitializeLibrary(in Config, IntPtr, int) 関数で初期化処理を行う。 (workには確保したメモリのアドレスを、sizeにはワーク領域のサイズを指定する。) -# アプリケーション終了時に FinalizeLibrary() 関数で終了処理を行なう。 -# ワーク領域のメモリを解放する。
備考: ライブラリ使用中に確保できるオブジェクトの数(CriFsBinderやCriFsLoaderの数)は、 初期化設定コンフィギュレーション(引数のconfig)で指定します。 ライブラリが必要とするワーク領域のサイズも、コンフィギュレーション内容に応じて変化します。 (オブジェクト数を増やせば、必要なメモリのサイズも大きくなります。) config に null を指定した場合、デフォルトのコンフィギュレーションが適用されます。
注意: 本関数を実行後、必ず対になる FinalizeLibrary() 関数を実行してください。 また、 FinalizeLibrary() 関数を実行するまでは、本関数を再度実行することはできません。
See Also
LimitNumReadRequest(int)
リード要求回数の制限
Declaration
public static CriErr.Error LimitNumReadRequest(int limitNumReadRequest)
Parameters
Type | Name | Description |
---|---|---|
int | limitNumReadRequest | 1サーバー周期当たりのリード要求回数の上限 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: 1サーバー周期当たりのリード要求回数の上限を設定します。 デフォルト値は ReadRequestNumUnlimited(制限なし)となっています。 リード要求毎にかかるCPU負荷が高いプラットホームにおいて、この関数を利用する ことでファイルシステムが消費するCPU時間を制限して、他の負荷が高い処理のため にCPU時間を確保することができます。 この関数を利用した場合、副作用として、多数の小さなファイルを読み込む場合の スループットが低下します。
SetConfigForWorkSizeCalculation(in Config)
ワーク領域サイズ計算用コンフィグ構造体の設定
Declaration
public static CriErr.Error SetConfigForWorkSizeCalculation(in CriFs.Config config)
Parameters
Type | Name | Description |
---|---|---|
CriFs.Config | config | 初期化用コンフィグ構造体 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ワーク領域サイズの計算用に、ライブラリ初期化用コンフィグ構造体 ( CriFs.Config 構造体)を仮登録します。 ローダーやバインダーの作成、バインド処理等に必要なワーク領域のサイズは、ライブラリ初期化時 ( InitializeLibrary(in Config, IntPtr, int) 関数実行時)に指定するパラメーターによって変化します。 そのため、ライブラリを初期化せずにワーク領域サイズだけを取得したい場合、 ワーク領域計算前に本関数を実行してライブラリ初期化パラメーターを仮登録しておく必要があります。
備考: 引数( config )に null を指定した場合、デフォルト設定 ( SetDefaultConfig(out Config) 適用時と同じパラメーター)で ワーク領域サイズを計算します。
注意: 本関数で登録した初期化用コンフィグ構造体は、 ライブラリ未初期化状態でのワーク領域サイズ計算にしか使用されません。 ライブラリ初期化後には本関数に設定したパラメーターではなく、 InitializeLibrary(in Config, IntPtr, int) 関数に指定されたパラメーターがワーク領域サイズの計算に使用されます。 (本関数で登録する構造体のパラメーターと、ライブラリの初期化に使用する構造体のパラメーターが異なる場合、 ワーク領域サイズが不足し、ローダーの作成に失敗する恐れがあります。)
See Also
SetContextANDROID(IntPtr)
本関数は旧仕様の関数で、互換性のため残してあります。 EnableAssetsAccessANDROID(IntPtr, IntPtr)の方をお使い下さい。
Declaration
Parameters
Type | Name | Description |
---|---|---|
IntPtr | jobj |
Returns
Type | Description |
---|---|
CriErr.Error |
Remarks
SetDataDecompressionThreadAffinityMaskPC(IntPtr)
データ展開スレッドのアフィニティマスク設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
IntPtr | mask | アフィニティマスク |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: データ展開スレッドのアフィニティマスクを設定します。 引数 mask には Win32 API のスレッドアフィニティマスク( SetThreadAffinityMask 関数の引数)を指定します。 デフォルト状態ではアフィニティマスクは設定されていません。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。)
SetDataDecompressionThreadPriorityANDROID(int)
データ展開スレッドのプライオリティ設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: データ展開スレッドのプライオリティを設定します。 プライオリティはナイス値で指定してください。範囲は-20(最高)から19(最低)です。 アプリケーションのメインスレッドよりも高いプライオリティを指定してください。 プライオリティのデフォルト値は 9 です。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。)
SetDataDecompressionThreadPriorityIOS(int)
データ展開スレッドのプライオリティ設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: データ展開スレッドのプライオリティを設定します。 アプリケーションのメインスレッドよりも低いプライオリティを指定してください。 プライオリティのデフォルト値は -13 です。
SetDataDecompressionThreadPriorityPC(int)
データ展開スレッドのプライオリティ設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: データ展開スレッドのプライオリティを設定します。 引数 prio には Win32 API のスレッド優先レベル( SetThreadPriority 関数の引数)を指定します。 アプリケーションのメインスレッドよりも低いプライオリティを指定してください。 プライオリティのデフォルト値は THREAD_PRIORITY_LOWEST です。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。)
SetDefaultConfig(out Config)
デフォルトコンフィギュレーションのセット
Declaration
public static void SetDefaultConfig(out CriFs.Config pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriFs.Config | pConfig | コンフィギュレーション |
Remarks
説明: InitializeLibrary(in Config, IntPtr, int) 関数に設定するコンフィギュレーション( CriFs.Config )に、デフォルトの値をセットします。
補足: コンフィギュレーションに設定する各パラメータを、アプリケーションで使用するオブジェクトの数に応じて調節することで、 ライブラリが必要とするメモリサイズを小さく抑えることが可能です。 しかし、アプリケーション中で使用するオブジェクトの数が明確でない開発初期段階や、メモリサイズがタイトではないケースでは、 本メソッドを使用することによりで、初期化処理を簡略化することが可能です。
注意: : 本メソッドでは、ほとんどのケースで必要充分な数のオブジェクトが確保できるよう、コンフィギュレーションの各パラメータに大きめの値をセットします。 そのため、本メソッドを使用した場合、ライブラリが必要とするワーク領域のサイズは大きくなりますので、ご注意ください。 (メモリサイズがタイトなケースでは、本メソッドでコンフィギュレーションを初期化した後、各パラメータを個別に調節することをオススメいたします。)
See Also
SetDefaultPathSeparator(DefaultPathSeparator)
デフォルトパス区切り文字の設定
Declaration
public static CriErr.Error SetDefaultPathSeparator(CriFs.DefaultPathSeparator defaultPathSeparator)
Parameters
Type | Name | Description |
---|---|---|
CriFs.DefaultPathSeparator | defaultPathSeparator | デフォルトパス区切り文字設定 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: CRI File Systemライブラリ内部で標準として扱うパス区切り文字を設定します。 PlatformCompatible を設定すると、パス区切り文字を自動的に そのプラットフォームで標準とされるパス区切り文字へと変換して処理します。 None を設定すると、パス区切り文字の変換は行わず、 与えられたパスをそのまま使用するようになります。 未設定時(CRI File Systemライブラリのデフォルト設定)はPlatformCompatible です。
See Also
SetDeviceInfo(DeviceId, DeviceInfo)
デバイス情報の設定
Declaration
public static CriErr.Error SetDeviceInfo(CriFs.DeviceId id, CriFs.DeviceInfo info)
Parameters
Type | Name | Description |
---|---|---|
CriFs.DeviceId | id | デバイスID |
CriFs.DeviceInfo | info | デバイス情報 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: 指定したデバイスの情報を変更します。 I/Oレイヤー差し替え時、I/Oレイヤー側でデバイスの制限を緩和できる場合等に使用します。
See Also
SetFileAccessThreadAffinityMaskPC(IntPtr)
ファイルアクセススレッドのアフィニティマスク設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
IntPtr | mask | アフィニティマスク |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ファイルアクセススレッドのアフィニティマスクを設定します。 引数 mask には Win32 API のスレッドアフィニティマスク( SetThreadAffinityMask 関数の引数)を指定します。 デフォルト状態ではアフィニティマスクは設定されていません。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。)
SetFileAccessThreadPriorityANDROID(int)
ファイルアクセススレッドのプライオリティ設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ファイルアクセススレッドのプライオリティを設定します。 criFs_Initialize() の呼出し後に設定してください。 プライオリティはナイス値で指定してください。範囲は-20(最高)から19(最低)です。 アプリケーションのメインスレッドよりも高いプライオリティを指定してください。 プライオリティのデフォルト値は -7 です。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。)
SetFileAccessThreadPriorityIOS(int)
ファイルアクセススレッドのプライオリティ設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ファイルアクセススレッドのプライオリティを設定します。 アプリケーションのメインスレッドよりも高いプライオリティを指定してください。 プライオリティのデフォルト値は 8 です。
SetFileAccessThreadPriorityPC(int)
ファイルアクセススレッドのプライオリティ設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ファイルアクセススレッドのプライオリティを設定します。 引数 prio には Win32 API のスレッド優先レベル( SetThreadPriority 関数の引数)を指定します。 アプリケーションのメインスレッドよりも高いプライオリティを指定してください。 プライオリティのデフォルト値は THREAD_PRIORITY_HIGHEST です。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。)
SetFileAccessThreadStackSize(uint)
ファイルアクセススレッドのスタックサイズ設定
Declaration
public static CriErr.Error SetFileAccessThreadStackSize(uint size)
Parameters
Type | Name | Description |
---|---|---|
uint | size | スタックサイズ(バイト単位) |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ファイルアクセススレッドのスタックサイズを設定します。 設定しない場合は、機種ごとのデフォルト値が適用されます。
注意: 本関数はライブラリ初期化前に呼び出してください。 ライブラリ初期化後に呼び出すことは出来ません。
SetInstallerThreadAffinityMaskPC(IntPtr)
インストーラースレッドのアフィニティマスク設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
IntPtr | mask | アフィニティマスク |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: インストーラースレッドのアフィニティマスクを設定します。 引数 mask には Win32 API のスレッドアフィニティマスク( SetThreadAffinityMask 関数の引数)を指定します。 デフォルト状態ではアフィニティマスクは設定されていません。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。)
SetInstallerThreadPriorityPC(int)
インストーラースレッドのプライオリティ設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: インストーラースレッドのプライオリティを設定します。 引数 prio には Win32 API のスレッド優先レベル( SetThreadPriority 関数の引数)を指定します。 アプリケーションのメインスレッドよりも高いプライオリティを指定してください。 プライオリティのデフォルト値は THREAD_PRIORITY_ABOVE_NORMAL です。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。)
SetJavaVMANDROID(IntPtr)
JavaVMオブジェクトの登録
Declaration
Parameters
Type | Name | Description |
---|---|---|
IntPtr | vm | JavaVMオブジェクトへの参照 |
Remarks
説明: JavaVMオブジェクトへの参照をCriFileSystemライブラリに登録します。
注意: : JavaVMオブジェクトへの参照を登録した場合、ライブラリ内部で作成されたスレッドはJavaVMにアタッチされます。
SetLoadLimiterSize(LoadLimiterNo, int)
ロードリミッタのサイズの設定
Declaration
public static CriErr.Error SetLoadLimiterSize(CriFs.LoadLimiterNo limiterNo, int limiterSize)
Parameters
Type | Name | Description |
---|---|---|
CriFs.LoadLimiterNo | limiterNo | ロードリミッタ番号 |
int | limiterSize | ロードリミッタサイズ(byte/1サーバー周期) |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: 1サーバー周期当たりの読み込みサイズの制限値を設定します。 共通のリミッタ番号を割り当てた全てのローダー、グループローダー、バッチローダーの合計読み込みサイズが、ここで設定するサイズに制限されます。 制限に達したリミッタ番号のロード処理は一時保留され、次回のサーバー周期で自動的に再開します。 リミッタに計上する数値は、ロードリミッタの単位サイズに切り上げて積算します。 圧縮データを読み込む場合、オリジナルデータサイズではなく、圧縮データサイズをリミッタに計上します。 圧縮ファイルを分割読み込みできない環境では、圧縮ファイルを読み込むときリミッタの制限を越える場合があります。このような環境では、巨大な圧縮ファイルに対しては実質的にリミッタの制御が効かないことにご注意ください。 読み込み途中でもリミッタサイズを変更することができます。リミッタサイズをゼロとして一時停止することもできます。 リミッタ0番のサイズは設定できません。0番は制限のない通常のロード処理に割り当てられます。 現状はリミッタ1番だけが設定可能です。 リミッタサイズのデフォルト値は LoadlimiterSizeDefault (リミッタ制限なし)となっています。
注意: ゲーム機向けではロードリミッタ機能は非サポートです。この関数は呼び出さないでください。
See Also
SetLoadLimiterUnit(LoadLimiterNo, int)
ロードリミッタの単位サイズの設定
Declaration
public static CriErr.Error SetLoadLimiterUnit(CriFs.LoadLimiterNo limiterNo, int limiterUnit)
Parameters
Type | Name | Description |
---|---|---|
CriFs.LoadLimiterNo | limiterNo | ロードリミッタ番号 |
int | limiterUnit | ロードリミッタ単位サイズ(byte) |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: DMA転送単位サイズやROMページサイズなど、分割読み込みを許容する最小のサイズを設定してください。 リミッタ0番の単位サイズは設定できません。0番は制限のない通常のロード処理に割り当てられます。 現状はリミッタ1番だけが設定可能です。
注意: ゲーム機向けではロードリミッタ機能は非サポートです。この関数は呼び出さないでください。
See Also
SetMemoryFileSystemSyncCopyLimit(long)
メモリファイルシステム用同期コピーサイズ上限の設定
Declaration
public static CriErr.Error SetMemoryFileSystemSyncCopyLimit(long limit)
Parameters
Type | Name | Description |
---|---|---|
long | limit | 同期コピーサイズ上限 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: 一定サイズ以下のメモリコピー処理を、メインスレッド側で実行するよう設定します。 メモリファイルシステムを使用する場合( AddressToPath(IntPtr, long, Span<byte>, int) 関数で作成したパスへアクセスする場合)、データの転送(≒メモリコピー処理) は低プライオリティのメモリコピー専用スレッド上で行なわれます。 (マルチスレッドモデル以外の場合、サーバー処理内でコピー処理が行われます。) この仕組みにより、巨大なデータをコピーする場合でもコピー処理にCPU時間が占有されることがなくなるため、 コピー処理によりメインループがブロックされてしまう、といった現象を防止することができます。 反面、別スレッドで行われるコピー処理をポーリングする形になるため、 小さなデータをコピーする際でも、ポーリング間隔に依存した遅延が発生することになります。 本関数で同期コピーサイズ上限を設定すると、設定されたサイズ以下のデータをコピーする際、 別スレッドでコピー処理を行わず、その場でコピー処理を実行するよう動作が変更されます。 (メインスレッドにコピー処理分の負荷がかかりますが、ロード完了までの時間が短縮されます。)
備考: デフォルト設定では全てのコピー処理が別スレッドで実行されます。 本関数で同期コピー処理が有効になると、各モジュールの動作は以下のように変化します。 ・CriFsLoader Load(CriFsBinder, ArgString, long, long, IntPtr, long) 関数実行直後にローダーのステータスが Complete に遷移します。 ( Load(CriFsBinder, ArgString, long, long, IntPtr, long) 関数内でコピー処理を行います。) ・CriFsStdio ReadFile(long, IntPtr, long) 関数内でスリープしなくなります。 ( ReadFile(long, IntPtr, long) 関数内でコピー処理を行います。)
注意: 上限値を大きく設定した状態で巨大なファイルをロードすると、 Load(CriFsBinder, ArgString, long, long, IntPtr, long) 関数等で長時間処理がブロックされる恐れがあります。 閾値の判定はロード要求サイズに対して行っています。 そのため、実際にコピーできるサイズが指定されたリミット以下のサイズであっても、 Load(CriFsBinder, ArgString, long, long, IntPtr, long) 関数や ReadFile(long, IntPtr, long) 関数に指定したロード要求サイズがリミットを超えている場合、別スレッドで処理されます。
See Also
SetMemoryFileSystemThreadAffinityMaskPC(IntPtr)
メモリファイルシステムスレッドのアフィニティマスク設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
IntPtr | mask | アフィニティマスク |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: メモリファイルシステムスレッドのアフィニティマスクを設定します。 引数 mask には Win32 API のスレッドアフィニティマスク( SetThreadAffinityMask 関数の引数)を指定します。 デフォルト状態ではアフィニティマスクは設定されていません。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。)
SetMemoryFileSystemThreadPriorityANDROID(int)
メモリファイルシステムスレッドのプライオリティ設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: メモリファイルシステムスレッドのプライオリティを設定します。 プライオリティはナイス値で指定してください。範囲は-20(最高)から19(最低)です。 アプリケーションのメインスレッドよりも高いプライオリティを指定してください。 プライオリティのデフォルト値は 7 です。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。)
SetMemoryFileSystemThreadPriorityPC(int)
メモリファイルシステムスレッドのプライオリティ設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: メモリファイルシステムスレッドのプライオリティを設定します。 引数 prio には Win32 API のスレッド優先レベル( SetThreadPriority 関数の引数)を指定します。 アプリケーションのメインスレッドよりも低いプライオリティを指定してください。 プライオリティのデフォルト値は THREAD_PRIORITY_LOWEST です。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。)
SetOpenRetryMode(OpenRetryMode)
ファイルオープンエラー発生時のリトライ方法の設定
Declaration
public static CriErr.Error SetOpenRetryMode(CriFs.OpenRetryMode mode)
Parameters
Type | Name | Description |
---|---|---|
CriFs.OpenRetryMode | mode | リトライ方法 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ファイルのオープンに失敗した場合に、CRI File Systemライブラリ内でオープンのリトライを行なうかどうかを指定します。 リトライ方法に Infinite を指定した場合、ファイルがオープンできるまでCRI File Systemライブラリはオープン処理をリトライし続けます。 None を指定した場合、CRI File Systemライブラリはリトライ処理を行なわず、オブジェクトのステータスをエラー状態に遷移します。
SetReadDeviceEnabled(DeviceId, NativeBool)
Declaration
public static CriErr.Error SetReadDeviceEnabled(CriFs.DeviceId id, NativeBool enabled)
Parameters
Type | Name | Description |
---|---|---|
CriFs.DeviceId | id | デバイスID |
NativeBool | enabled | デバイスを作成するか否か |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: リードデバイスの有効・無効の切り替えを行います。アプリケーション側で使用しないデバイスがある場合は本関数で無効にしてください デフォルトでは、すべてのデバイスが Enabled の状態です。 本関数で不要なデバイスを作成しないようにすることで、ファイルシステムスレッドの動作を減らすことができます。 DeviceDefault と DeviceMemory 以外にも、プラットフォームによっては固有のデバイスが作成されます。 第一引数には _00 ~ _07 の範囲の値を指定してください。 プラットフォーム固有のヘッダーファイルに記載されたデバイスIDと当該デバイスで扱うことのできるファイルパスを確認の上、本関数をご利用ください。 本関数でデバイスを無効にした結果、どのデバイスも作成されない場合、ライブラリ初期化時にエラーコールバックが発生します。
See Also
SetReadRetryMode(ReadRetryMode)
ファイルリードエラー発生時のリトライ方法の設定
Declaration
public static CriErr.Error SetReadRetryMode(CriFs.ReadRetryMode mode)
Parameters
Type | Name | Description |
---|---|---|
CriFs.ReadRetryMode | mode | リトライ方法 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード ファイルのリードに失敗した場合に、CRI File Systemライブラリ内でリードのリトライを行なうかどうかを指定します。 リトライ方法に Infinite を指定した場合、ファイルがリードできるまでCRI File Systemライブラリはリード処理をリトライし続けます。 None を指定した場合、CRI File Systemライブラリはリトライ処理を行なわず、オブジェクトのステータスをエラー状態に遷移します。 |
SetSelectIoCallback(delegate* unmanaged[Cdecl]<NativeString, DeviceId*, NativeReference<IoInterface>*, Error>)
I/O選択コールバックの登録
Declaration
public static CriErr.Error SetSelectIoCallback(delegate* unmanaged[Cdecl]<NativeString, CriFs.DeviceId*, NativeReference<CriFs.IoInterface>*, CriErr.Error> func)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<NativeString, DeviceId*, NativeReference<IoInterface>*, Error> | func | I/O選択コールバック |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: I/O選択コールバック関数( CriFs.SelectIoCbFunc )を登録します。 CRI File Systemライブラリはファイルにアクセスする際、まず初めに、そのファイルが存在するデバイスのID( CriFs.DeviceId )と、 デバイスにアクセスするためのI/Oインターフェイス( CriFs.IoInterface )を選択します。 デフォルト状態では、デバイスIDとI/Oインターフェイスの選択はライブラリ内で暗黙的に行なわれますが、 本関数を使用することで、デバイスIDとI/Oインターフェイスをユーザーが自由に指定することが可能になります。 これにより、ユーザーが独自に作成したI/Oインターフェイスを使用してファイルにアクセスすることが可能になります。
注意: コールバック関数は1つしか登録できません。 登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。 funcにnullを指定するとことで登録済み関数の登録解除が行えます。
See Also
SetServerThreadAffinityMaskPC(IntPtr)
サーバー処理スレッドのアフィニティマスク設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
IntPtr | mask | アフィニティマスク |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: サーバー処理(ライブラリの内部処理)を行うスレッドのアフィニティマスクを設定します。 引数 mask には Win32 API のスレッドアフィニティマスク( SetThreadAffinityMask 関数の引数)を指定します。 デフォルト状態ではアフィニティマスクは設定されていません。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。) サーバー処理スレッドは、CRI Atomライブラリで使用しているものと同じです(共用しています)。 すでにCRI AtomライブラリのAPIでサーバー処理スレッドの設定を変更している場合、 本関数を呼び出すと設定を上書きしてしまうのでご注意ください。
SetServerThreadPriorityPC(int)
サーバー処理スレッドのプライオリティ設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: サーバー処理(ライブラリの内部処理)を行うスレッドのプライオリティを設定します。 引数 prio には Win32 API のスレッド優先レベル( SetThreadPriority 関数の引数)を指定します。 アプリケーションのメインスレッドよりも高いプライオリティを指定してください。 プライオリティのデフォルト値は THREAD_PRIORITY_HIGHEST です。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。) サーバー処理スレッドは、CRI Atomライブラリで使用しているものと同じです(共用しています)。 すでにCRI AtomライブラリのAPIでサーバー処理スレッドの設定を変更している場合、 本関数を呼び出すと設定を上書きしてしまうのでご注意ください。
SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
ユーザーアロケーターの登録
Declaration
public static void SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr> pMallocFunc, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> pFreeFunc, IntPtr pObj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr> | pMallocFunc | メモリ確保関数 |
delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> | pFreeFunc | メモリ解放関数 |
IntPtr | pObj | ユーザー指定オブジェクト |
Remarks
説明: CRI File Systemライブラリにメモリアロケーター(メモリの確保/解放関数)を登録します。 CRI File Systemライブラリ内がライブラリ内で行なうメモリ解放処理を、 ユーザー独自のメモリ解放処理に置き換えたい場合に使用します。
SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
メモリ解放関数の登録
Declaration
public static void SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> | func | メモリ解放関数 |
IntPtr | obj | ユーザー指定オブジェクト |
Remarks
説明: CRI File Systemライブラリにメモリ解放関数を登録します。 CRI File Systemライブラリ内がライブラリ内で行なうメモリ解放処理を、 ユーザー独自のメモリ解放処理に置き換えたい場合に使用します。 本関数の使用手順は以下のとおりです。 (1) CriFs.FreeFunc インターフェイスに副ったメモリ解放関数を用意する。 (2) SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) 関数を使用し、CRI File Systemライブラリに対して メモリ解放関数を登録する。 具体的なコードの例は以下のとおりです。
備考: 引数の obj に指定した値は、 CriFs.FreeFunc に引数として渡されます。 メモリ確保時にメモリマネージャー等を参照する必要がある場合には、 当該オブジェクトを本関数の引数にセットしておき、コールバック関数で引数を経由 して参照してください。
注意: メモリ解放関数を登録する際には、合わせてメモリ確保関数( CriFs.MallocFunc )を 登録する必要があります。
See Also
SetUserLogOutputFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
ユーザー定義ログ出力関数の登録
Declaration
public static CriErr.Error SetUserLogOutputFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> | func | ログ出力関数 |
IntPtr | obj | ログ出力関数に渡すオブジェクト |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: ログの出力関数をユーザー指定の関数に置き換えます。 本関数を使用することで、ファイルアクセスログの出力方法をユーザーが自由に カスタマイズすることが可能です。
備考: 本関数を使用していない場合や、ログ出力関数(func)にnullを指定した場合、 CRI File Systemライブラリのデフォルトログ出力関数が使用されます。
SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, IntPtr)
メモリ確保関数の登録
Declaration
public static void SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr> | func | メモリ確保関数 |
IntPtr | obj | ユーザー指定オブジェクト |
Remarks
説明: CRI File Systemライブラリにメモリ確保関数を登録します。 CRI File Systemライブラリ内がライブラリ内で行なうメモリ確保処理を、 ユーザー独自のメモリ確保処理に置き換えたい場合に使用します。 本関数の使用手順は以下のとおりです。 (1) CriFs.MallocFunc インターフェイスに副ったメモリ確保関数を用意する。 (2) SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, IntPtr) 関数を使用し、CRI File Systemライブラリに対して メモリ確保関数を登録する。 具体的なコードの例は以下のとおりです。
備考: 引数の obj に指定した値は、 CriFs.MallocFunc に引数として渡されます。 メモリ確保時にメモリマネージャー等を参照する必要がある場合には、 当該オブジェクトを本関数の引数にセットしておき、コールバック関数で引数を経由 して参照してください。
注意: メモリ確保関数を登録する際には、合わせてメモリ解放関数( CriFs.FreeFunc )を 登録する必要があります。
See Also
SwitchPathUnicodeToUtf8PC(NativeBool)
パスの文字エンコーディングタイプを Unicode から UTF-8 に切り替え
Declaration
Parameters
Type | Name | Description |
---|---|---|
NativeBool | sw | 文字列エンコーディングタイプを UTF-8 にするかどうか |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: アプリケーションからUTF-8のファイルパスを指定したい場合、本関数をご利用ください。 デフォルトでは、ファイルパス文字列をマルチバイト文字セットとして取り扱います。(CreateFileAを使用) そのため、実際にシステムが解釈する文字エンコーディングはシステムロケールに依存します。 本関数を使用すると、ファイルパスをUnicodeとして取り扱うように変更することができます。(CreateFileWを使用) 引数に true を指定して実行すると、ファイルパスはUTF-8としてみなし、ライブラリ内部でUTF-16に変換してファイルオープンを行います。