FSCTL_CREATE_OR_GET_OBJECT_ID IOCTL (winioctl.h)

指定したファイルまたはディレクトリのオブジェクト識別子を取得します。 オブジェクト識別子が存在しない場合は、FSCTL_CREATE_OR_GET_OBJECT_ID を使って作成します。

この操作を実行するには、次のパラメーターを使用して DeviceIoControl 関数を呼び出します。

BOOL DeviceIoControl(
  (HANDLE) hDevice,              // handle to device
  FSCTL_CREATE_OR_GET_OBJECT_ID, // dwIoControlCode
  NULL,                          // lpInBuffer
  0,                             // nInBufferSize
  (LPVOID) lpOutBuffer,          // output buffer
  (DWORD) nOutBufferSize,        // size of output buffer
  (LPDWORD) lpBytesReturned,     // number of bytes returned
  (LPOVERLAPPED) lpOverlapped    // OVERLAPPED structure
);

注釈

オブジェクト識別子は、ファイルとディレクトリを追跡するために使用されます。 ほとんどのアプリケーションでは見えなくなり、アプリケーションによって変更されるべきではありません。 オブジェクト識別子を変更すると、ファイルの一部から、データのボリューム全体までのデータが失われる可能性があります。

この操作では、オブジェクト識別子がまだ存在しない場合に、オブジェクト識別子が作成されます。 オブジェクト識別子の存在をテストし、存在するかどうかを取得するには、 FSCTL_GET_OBJECT_ID 操作を使用します。 オブジェクト識別子の存在を最初にテストせずに作成するには、 FSCTL_SET_OBJECT_ID 操作を使用します。

Windows Server 2012では、この関数は次のテクノロジでサポートされています。

テクノロジ サポートされています
サーバー メッセージ ブロック (SMB) 3.0 プロトコル はい
SMB 3.0 Transparent Failover (TFO) はい
スケールアウト ファイル共有 (SO) を使う SMB 3.0 はい
クラスターの共有ボリューム ファイル システム (CsvFS) はい
Resilient File System (ReFS) いいえ

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
Header winioctl.h (Windows.h を含む)

こちらもご覧ください