144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
# File 'lib/filewatch/winhelper.rb', line 144
def self.identifier_from_handle_ex(handle, close_handle = true)
fileIdInfo = Winhelper::FileIdInfo.new
success = GetFileInformationByHandleEx(handle, :FileIdInfo, fileIdInfo, fileIdInfo.size)
if success > 0
vsn = fileIdInfo[:volumeSerialNumber]
lpfid = fileIdInfo[:fileId][:lowPart]
hpfid = fileIdInfo[:fileId][:highPart]
return "#{vsn}-#{lpfid}-#{hpfid}"
else
return 'unknown'
end
ensure
CloseHandle(handle) if close_handle
end
|