指定したファイルまたはディレクトリのオブジェクト識別子を取得します。
この操作を実行するには、次のパラメーターを使用して DeviceIoControl 関数を呼び出します。
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to file object
FSCTL_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
);
注釈
オブジェクト識別子は、ファイルとディレクトリを追跡するために使用されます。 ほとんどのアプリケーションでは見えず、アプリケーションによって変更されることはありません。 オブジェクト識別子を変更すると、ファイルの一部からデータ量全体までデータが失われる可能性があります。
指定したハンドルに関連付けられているオブジェクト識別子がない場合は、何も作成されておらず、エラーが返されます。 既存のオブジェクト識別子を取得するか、1 つの手順で既存のオブジェクト識別子がない場合に生成するには、 FSCTL_CREATE_OR_GET_OBJECT_IDを使用します。 オブジェクト識別子を手動で割り当てるには、 FSCTL_SET_OBJECT_IDを使用します。
Windows 8 および Windows Server 2012 では、このコードは次のテクノロジでサポートされています。
テクノロジー | サポートされています |
---|---|
サーバー メッセージ ブロック (SMB) 3.0 プロトコル | イエス |
SMB 3.0 透過的フェールオーバー (TFO) | イエス |
SMB 3.0 とスケールアウト ファイル共有 (SO) | イエス |
クラスター共有ボリューム ファイル システム (CsvFS) | イエス |
回復性のあるファイル システム (ReFS) | いいえ |
要求事項
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
ヘッダー | winioctl.h (Windows.h を含む) |
こちらも参照ください
- CreateFile の
- DeviceIoControl の
- FILE_OBJECTID_BUFFER
- FSCTL_CREATE_OR_GET_OBJECT_ID
- FSCTL_DELETE_OBJECT_ID
- FSCTL_SET_OBJECT_ID
- FSCTL_SET_OBJECT_ID_EXTENDED
- オブジェクト識別子