OpenFileById

指定した識別子に一致するファイルを開く。

OpenFileById hVolumeHint, lpFileId, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwFlagsAndAttributes

hVolumeHint : [intptr] 開こうとするファイルが格納されているボリュームまたは共有上の任意のファイルへのハンドル。
lpFileId : [var] 開くファイルを識別する FILE_ID_DESCRIPTOR へのポインタ。
dwDesiredAccess : [int] オブジェクトへのアクセス。アクセスは読み取り、書き込み、またはその両方が可能である。詳細は「ファイルのセキュリティとアクセス権」を参照。開いているハンドルを持つオープン要求で指定された共有モードと競合するアクセスモードを要求することはできない。この引数が 0 の場合、アプリケーションはデバイスにアクセスせずにファイルやデバイスの属性を問い合わせできる。これは、フロッピーをドライブに入れなくてもフロッピーディスクドライブのサイズや対応フォーマットを調べるのに有用である。また、読み書き用に開かずにファイルやディレクトリの存在を確認するためにも使える。
dwShareMode : [int] オブジェクトの共有モード。読み取り、書き込み、両方、またはなしのいずれか。開いているハンドルを持つオープン要求で指定されたアクセスモードと競合する共有モードを要求することはできない。競合すると次の共有違反 (ERROR_SHARING_VIOLATION) となる。詳細は「ファイルの作成と開き方」を参照。この引数が 0 で OpenFileById が成功した場合、オブジェクトは共有できず、ハンドルが閉じられるまで再度開くことはできない。詳細はこのトピックの「備考」節を参照。共有オプションはオブジェクトのハンドルを閉じるまで有効である。別のプロセスがオブジェクトを開いている間にプロセスがオブジェクトを共有できるようにするには、次のいずれかの組み合わせを使う。
lpSecurityAttributes : [var] 予約。
dwFlagsAndAttributes : [int] ファイルフラグ。OpenFileById はファイルを開く際、ファイルフラグを既存のファイル属性と組み合わせ、渡されたファイル属性を無視する。この引数には次のフラグの任意の組み合わせを含められる。

(プラグイン / モジュール : kernel32.dll)

解説

指定した識別子に一致するファイルを開く。

[戻り値]
関数が成功した場合、戻り値は指定したファイルの開かれたハンドルである。関数が失敗した場合、戻り値は
INVALID_HANDLE_VALUE である。拡張エラー情報を取得するには GetLastError を呼ぶ。

[備考]
OpenFileById が返すオブジェクトハンドルを閉じるには CloseHandle 関数を使う。DeleteFile
の直前の呼び出しの結果、削除保留状態にあるファイルに対して OpenFileById
を呼ぶと関数は失敗する。オペレーティングシステムはファイルへのすべてのハンドルが閉じられるまでファイルの削除を遅延する。GetLastError
は ERROR_ACCESS_DENIED を返す。Windows 8 および Windows Server 2012
では、この関数は次のテクノロジによってサポートされる。
(以下省略)

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs