wimlib
|
Structure passed to the wimlib_iterate_dir_tree() callback function. More...
#include <wimlib.h>
Data Fields | |
const wimlib_tchar * | filename |
Name of the file, or NULL if this file is unnamed. | |
const wimlib_tchar * | dos_name |
8.3 name (or "DOS name", or "short name") of this file; or NULL if this file has no such name. | |
const wimlib_tchar * | full_path |
Full path to this file within the image. | |
size_t | depth |
Depth of this directory entry, where 0 is the root, 1 is the root's children, ..., etc. | |
const char * | security_descriptor |
Pointer to the security descriptor for this file, in Windows SECURITY_DESCRIPTOR_RELATIVE format, or NULL if this file has no security descriptor. | |
size_t | security_descriptor_size |
Size of the above security descriptor, in bytes. | |
uint32_t | attributes |
File attributes, such as whether the file is a directory or not. | |
uint32_t | reparse_tag |
If the file is a reparse point (FILE_ATTRIBUTE_REPARSE_POINT set in the attributes), this will give the reparse tag. | |
uint32_t | num_links |
Number of links to this file's inode (hard links). | |
uint32_t | num_named_streams |
Number of named data streams this file has. | |
uint64_t | hard_link_group_id |
A unique identifier for this file's inode. | |
struct wimlib_timespec | creation_time |
Time this file was created. | |
struct wimlib_timespec | last_write_time |
Time this file was last written to. | |
struct wimlib_timespec | last_access_time |
Time this file was last accessed. | |
uint32_t | unix_uid |
The UNIX user ID of this file. | |
uint32_t | unix_gid |
The UNIX group ID of this file. | |
uint32_t | unix_mode |
The UNIX mode of this file. | |
uint32_t | unix_rdev |
The UNIX device ID (major and minor number) of this file. | |
struct wimlib_object_id | object_id |
int32_t | creation_time_high |
High 32 bits of the seconds portion of the creation timestamp, filled in if wimlib_timespec.tv_sec is only 32-bit. | |
int32_t | last_write_time_high |
High 32 bits of the seconds portion of the last write timestamp, filled in if wimlib_timespec.tv_sec is only 32-bit. | |
int32_t | last_access_time_high |
High 32 bits of the seconds portion of the last access timestamp, filled in if wimlib_timespec.tv_sec is only 32-bit. | |
int32_t | reserved2 |
uint64_t | reserved [4] |
struct wimlib_stream_entry | streams [] |
Variable-length array of streams that make up this file. | |
Structure passed to the wimlib_iterate_dir_tree() callback function.
Roughly, the information about a "file" in the WIM image — but really a directory entry ("dentry") because hard links are allowed. The hard_link_group_id field can be used to distinguish actual file inodes.
const wimlib_tchar* wimlib_dir_entry::filename |
Name of the file, or NULL if this file is unnamed.
Only the root directory of an image will be unnamed.
const wimlib_tchar* wimlib_dir_entry::dos_name |
8.3 name (or "DOS name", or "short name") of this file; or NULL if this file has no such name.
const wimlib_tchar* wimlib_dir_entry::full_path |
Full path to this file within the image.
Path separators will be WIMLIB_WIM_PATH_SEPARATOR.
size_t wimlib_dir_entry::depth |
Depth of this directory entry, where 0 is the root, 1 is the root's children, ..., etc.
const char* wimlib_dir_entry::security_descriptor |
Pointer to the security descriptor for this file, in Windows SECURITY_DESCRIPTOR_RELATIVE format, or NULL if this file has no security descriptor.
size_t wimlib_dir_entry::security_descriptor_size |
Size of the above security descriptor, in bytes.
uint32_t wimlib_dir_entry::attributes |
File attributes, such as whether the file is a directory or not.
These are the "standard" Windows FILE_ATTRIBUTE_* values, although in wimlib.h they are defined as WIMLIB_FILE_ATTRIBUTE_* for convenience on other platforms.
uint32_t wimlib_dir_entry::reparse_tag |
If the file is a reparse point (FILE_ATTRIBUTE_REPARSE_POINT set in the attributes), this will give the reparse tag.
This tells you whether the reparse point is a symbolic link, junction point, or some other, more unusual kind of reparse point.
uint32_t wimlib_dir_entry::num_links |
Number of links to this file's inode (hard links).
Currently, this will always be 1 for directories. However, it can be greater than 1 for nondirectory files.
uint32_t wimlib_dir_entry::num_named_streams |
Number of named data streams this file has.
Normally 0.
uint64_t wimlib_dir_entry::hard_link_group_id |
A unique identifier for this file's inode.
However, as a special case, if the inode only has a single link (num_links
== 1), this value may be 0.
Note: if a WIM image is captured from a filesystem, this value is not guaranteed to be the same as the original number of the inode on the filesystem.
struct wimlib_timespec wimlib_dir_entry::creation_time |
Time this file was created.
struct wimlib_timespec wimlib_dir_entry::last_write_time |
Time this file was last written to.
struct wimlib_timespec wimlib_dir_entry::last_access_time |
Time this file was last accessed.
uint32_t wimlib_dir_entry::unix_uid |
The UNIX user ID of this file.
This is a wimlib extension.
This field is only valid if unix_mode
!= 0.
uint32_t wimlib_dir_entry::unix_gid |
The UNIX group ID of this file.
This is a wimlib extension.
This field is only valid if unix_mode
!= 0.
uint32_t wimlib_dir_entry::unix_mode |
The UNIX mode of this file.
This is a wimlib extension.
If this field is 0, then unix_uid
, unix_gid
, unix_mode
, and unix_rdev
are all unknown (fields are not present in the WIM image).
uint32_t wimlib_dir_entry::unix_rdev |
The UNIX device ID (major and minor number) of this file.
This is a wimlib extension.
This field is only valid if unix_mode
!= 0.
struct wimlib_object_id wimlib_dir_entry::object_id |
int32_t wimlib_dir_entry::creation_time_high |
High 32 bits of the seconds portion of the creation timestamp, filled in if wimlib_timespec.tv_sec
is only 32-bit.
int32_t wimlib_dir_entry::last_write_time_high |
High 32 bits of the seconds portion of the last write timestamp, filled in if wimlib_timespec.tv_sec
is only 32-bit.
int32_t wimlib_dir_entry::last_access_time_high |
High 32 bits of the seconds portion of the last access timestamp, filled in if wimlib_timespec.tv_sec
is only 32-bit.
int32_t wimlib_dir_entry::reserved2 |
uint64_t wimlib_dir_entry::reserved[4] |
struct wimlib_stream_entry wimlib_dir_entry::streams[] |
Variable-length array of streams that make up this file.
The first entry will always exist and will correspond to the unnamed data stream (default file contents), so it will have stream_name == NULL
. Alternatively, for reparse point files, the first entry will correspond to the reparse data stream. Alternatively, for encrypted files, the first entry will correspond to the encrypted data.
Then, following the first entry, there be num_named_streams
additional entries that specify the named data streams, if any, each of which will have stream_name != NULL
.