从文件句柄或文件ID打开备用数据流(ADS)

时间:2017-09-10 13:40:23

标签: windows ntfs alternate-data-stream

我想使用文件的现有句柄或使用文件ID打开文件的备用数据流。我找到的唯一方法是使用全名(文件名+ ADS名称)。 我担心在操作过程中重命名文件。

有办法吗?

1 个答案:

答案 0 :(得分:1)

使用NtOpenFileNtCreateFile

非常容易

例如,在hFile

上打开现有ADS
NTSTATUS OpenADS(PHANDLE FileHandle, ACCESS_MASK DesiredAccess, HANDLE hFile, PCWSTR Name)
{
    IO_STATUS_BLOCK iosb;
    UNICODE_STRING ObjectName;
    RtlInitUnicodeString(&ObjectName, Name);
    OBJECT_ATTRIBUTES oa = { sizeof(oa), hFile, &ObjectName };
    return NtOpenFile(FileHandle, DesiredAccess, &oa, &iosb, FILE_SHARE_VALID_FLAGS, FILE_SYNCHRONOUS_IO_NONALERT);
}

其中Name类似于L":test_stream"(以:开头)