亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? sparsestream.h

?? c++的經(jīng)典之作.是不可缺少的工具.大家可以現(xiàn)在學(xué)習(xí)
?? H
字號(hào):
/******************************************************************************
Module:  SparseStream.h
Notices: Copyright (c) 2000 Jeffrey Richter
******************************************************************************/


#include "..\CmnHdr.h"     /* See Appendix A. */
#include <WinIoCtl.h>


///////////////////////////////////////////////////////////////////////////////


#pragma once


///////////////////////////////////////////////////////////////////////////////


class CSparseStream {
public:
   static BOOL DoesFileSystemSupportSparseStreams(PCTSTR pszVolume);
   static BOOL DoesFileContainAnySparseStreams(PCTSTR pszPathname);

public:
   CSparseStream(HANDLE hstream = INVALID_HANDLE_VALUE) { 
      Initialize(hstream); 
   }

   virtual ~CSparseStream() { }

   void Initialize(HANDLE hstream = INVALID_HANDLE_VALUE) { 
      m_hstream = hstream; 
   }

public:
   operator HANDLE() const { return(m_hstream); }

public:
   BOOL IsStreamSparse() const;
   BOOL MakeSparse();
   BOOL DecommitPortionOfStream(
      __int64 qwFileOffsetStart, __int64 qwFileOffsetEnd);

   FILE_ALLOCATED_RANGE_BUFFER* QueryAllocatedRanges(PDWORD pdwNumEntries);
   BOOL FreeAllocatedRanges(FILE_ALLOCATED_RANGE_BUFFER* pfarb);

private:
   HANDLE m_hstream;

private:
   static BOOL AreFlagsSet(DWORD fdwFlagBits, DWORD fFlagsToCheck) {
      return((fdwFlagBits & fFlagsToCheck) == fFlagsToCheck);
   }
};


///////////////////////////////////////////////////////////////////////////////


inline BOOL CSparseStream::DoesFileSystemSupportSparseStreams(
   PCTSTR pszVolume) {

   DWORD dwFileSystemFlags = 0;
   BOOL fOk = GetVolumeInformation(pszVolume, NULL, 0, NULL, NULL, 
      &dwFileSystemFlags, NULL, 0);
   fOk = fOk && AreFlagsSet(dwFileSystemFlags, FILE_SUPPORTS_SPARSE_FILES);
   return(fOk);
}


///////////////////////////////////////////////////////////////////////////////


inline BOOL CSparseStream::IsStreamSparse() const {

   BY_HANDLE_FILE_INFORMATION bhfi;
   GetFileInformationByHandle(m_hstream, &bhfi);
   return(AreFlagsSet(bhfi.dwFileAttributes, FILE_ATTRIBUTE_SPARSE_FILE));
}


///////////////////////////////////////////////////////////////////////////////


inline BOOL CSparseStream::MakeSparse() {

   DWORD dw;
   return(DeviceIoControl(m_hstream, FSCTL_SET_SPARSE, 
      NULL, 0, NULL, 0, &dw, NULL));
}


///////////////////////////////////////////////////////////////////////////////


inline BOOL CSparseStream::DecommitPortionOfStream(
   __int64 qwOffsetStart, __int64 qwOffsetEnd) {

   // NOTE: This function does not work if this file is memory-mapped.
   DWORD dw;
   FILE_ZERO_DATA_INFORMATION fzdi;
   fzdi.FileOffset.QuadPart = qwOffsetStart;
   fzdi.BeyondFinalZero.QuadPart = qwOffsetEnd + 1;
   return(DeviceIoControl(m_hstream, FSCTL_SET_ZERO_DATA, (PVOID) &fzdi, 
      sizeof(fzdi), NULL, 0, &dw, NULL));
}


///////////////////////////////////////////////////////////////////////////////


inline BOOL CSparseStream::DoesFileContainAnySparseStreams(
   PCTSTR pszPathname) {

   DWORD dw = GetFileAttributes(pszPathname);
   return((dw == 0xfffffff) 
      ? FALSE : AreFlagsSet(dw, FILE_ATTRIBUTE_SPARSE_FILE));
}


///////////////////////////////////////////////////////////////////////////////


inline FILE_ALLOCATED_RANGE_BUFFER* CSparseStream::QueryAllocatedRanges(
   PDWORD pdwNumEntries) {

   FILE_ALLOCATED_RANGE_BUFFER farb;
   farb.FileOffset.QuadPart = 0;
   farb.Length.LowPart = 
      GetFileSize(m_hstream, (PDWORD) &farb.Length.HighPart);

   // There is no way to determine the correct memory block size prior to 
   // attempting to collect this data, so I just picked 100 * sizeof(*pfarb)
   DWORD cb = 100 * sizeof(farb);
   FILE_ALLOCATED_RANGE_BUFFER* pfarb = (FILE_ALLOCATED_RANGE_BUFFER*) 
      HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, cb);

   DeviceIoControl(m_hstream, FSCTL_QUERY_ALLOCATED_RANGES,
      &farb, sizeof(farb), pfarb, cb, &cb, NULL);
   *pdwNumEntries = cb / sizeof(*pfarb);
   return(pfarb);
}


///////////////////////////////////////////////////////////////////////////////


inline BOOL CSparseStream::FreeAllocatedRanges(
   FILE_ALLOCATED_RANGE_BUFFER* pfarb) {

   // Free the queue entry's allocated memory
   return(HeapFree(GetProcessHeap(), 0, pfarb));
}


///////////////////////////////// End Of File /////////////////////////////////

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
高清久久久久久| 国产精品色哟哟| 天堂在线亚洲视频| 欧美日韩一区在线| 亚洲一区二区三区在线播放| 在线视频欧美精品| 一区二区三区四区国产精品| 欧美日韩视频在线一区二区| 另类中文字幕网| 国产午夜精品一区二区三区视频 | 日韩一区二区在线看| 日韩电影在线免费观看| 精品久久久久一区二区国产| 国产福利91精品一区| 国产精品成人免费 | 欧美揉bbbbb揉bbbbb| 天天av天天翘天天综合网色鬼国产| 欧美一区二区三区爱爱| 精品一区二区三区蜜桃| 国产精品久久久久久久蜜臀 | 精品视频1区2区3区| 日本不卡一二三区黄网| 国产午夜精品一区二区三区视频| 不卡视频免费播放| 亚洲成人一区在线| 久久久精品影视| 欧美日韩一区二区三区免费看 | 欧美色成人综合| 国产在线精品一区二区| 亚洲精品视频自拍| 精品日韩欧美一区二区| 99久久夜色精品国产网站| 三级在线观看一区二区| 国产日韩高清在线| 欧美日韩视频专区在线播放| 国产真实乱对白精彩久久| 亚洲综合色噜噜狠狠| 久久久久久久久一| 欧美视频一区二| 国产91精品入口| 日本欧美一区二区| 亚洲视频香蕉人妖| 26uuu国产电影一区二区| 日本韩国精品在线| 日韩电影网1区2区| 一区二区三区中文免费| 久久久久国产精品麻豆ai换脸| 欧美性感一类影片在线播放| 美女视频黄久久| 亚洲男帅同性gay1069| 精品国产乱码久久久久久免费| 色av成人天堂桃色av| 成人性生交大片免费看视频在线| 丝袜a∨在线一区二区三区不卡 | 国产精品乱码久久久久久| 欧美一级片免费看| 欧美日韩国产片| jlzzjlzz欧美大全| 国产成人免费视频网站| 极品尤物av久久免费看| 日本中文在线一区| 亚洲妇女屁股眼交7| 亚洲视频一二三| 欧美激情中文不卡| 久久久激情视频| 亚洲已满18点击进入久久| 久久精品一区二区三区不卡牛牛| 亚洲一区二区三区四区在线观看| 国产精品免费看片| 久久久国际精品| 亚洲精品一区二区精华| 欧美一区二区三区免费视频 | 成人永久aaa| 国产一区在线视频| 国产一区视频在线看| 久久草av在线| 国产一级精品在线| 国产做a爰片久久毛片| 国内精品国产成人| 国产最新精品精品你懂的| 国产一区二区三区高清播放| 国产原创一区二区| 国产成人综合自拍| 99国产精品久久| 在线观看成人小视频| 色婷婷久久99综合精品jk白丝 | 欧美日韩国产一级二级| 欧美无砖砖区免费| 欧美三级电影一区| 欧美男男青年gay1069videost| 欧美亚洲丝袜传媒另类| 欧美丰满少妇xxxbbb| 欧美一区二区高清| 精品电影一区二区三区| 久久免费精品国产久精品久久久久| 久久天天做天天爱综合色| 国产日韩欧美麻豆| 亚洲你懂的在线视频| 午夜精品久久久久| 九九视频精品免费| 不卡一区中文字幕| 欧美亚日韩国产aⅴ精品中极品| 欧美日韩一级二级| 日韩亚洲欧美综合| 久久精品人人做| 亚洲情趣在线观看| 免费成人在线观看视频| 成人激情文学综合网| 91福利精品第一导航| 欧美一级二级三级乱码| 国产精品乱人伦| 日韩电影一区二区三区| 成人午夜电影网站| 9191久久久久久久久久久| 26uuuu精品一区二区| 亚洲精品欧美激情| 老司机精品视频线观看86| 国产精品亚洲第一区在线暖暖韩国| 一本大道综合伊人精品热热| 欧美一级国产精品| 中文字幕中文字幕一区二区 | 国内成人免费视频| 色婷婷久久综合| 国产校园另类小说区| 亚洲电影在线播放| 粉嫩av一区二区三区粉嫩| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲一级片在线观看| 韩日欧美一区二区三区| 欧洲av一区二区嗯嗯嗯啊| 久久婷婷久久一区二区三区| 香蕉影视欧美成人| 97久久久精品综合88久久| 日韩精品资源二区在线| 国产精品三级久久久久三级| 毛片一区二区三区| 欧美亚洲动漫精品| 中文字幕色av一区二区三区| 国产一区欧美二区| 91精品国产黑色紧身裤美女| 亚洲男人的天堂在线aⅴ视频| 蜜臀av一区二区在线观看| 在线精品国精品国产尤物884a| 国产亚洲精品7777| 免费日本视频一区| 欧美日本在线看| 一区二区三区日韩欧美| 成人av网站在线| 国产精品天美传媒| 国产精品1区2区3区| 精品久久久久久久久久久久久久久 | 亚洲欧美偷拍另类a∨色屁股| 国产麻豆一精品一av一免费| 日韩一级片网站| 丝袜美腿亚洲色图| 欧美三级日韩在线| 一区二区三国产精华液| 91在线精品一区二区三区| 国产嫩草影院久久久久| 国产成人免费xxxxxxxx| 国产色婷婷亚洲99精品小说| 国产精品一线二线三线精华| 精品国产免费一区二区三区四区 | 精品99一区二区| 麻豆国产精品777777在线| 欧美一区二区免费视频| 日韩精品国产欧美| 日韩三级av在线播放| 日本不卡在线视频| 精品毛片乱码1区2区3区| 蜜臀精品久久久久久蜜臀| 精品少妇一区二区三区免费观看 | 亚洲免费观看高清在线观看| 不卡欧美aaaaa| 亚洲欧美视频在线观看视频| 欧美亚洲综合久久| 日本欧美大码aⅴ在线播放| 日韩精品一区二区三区四区| 蜜臀av一区二区在线免费观看| 日韩欧美自拍偷拍| 国产精品一区专区| 亚洲欧洲国产日本综合| 在线观看不卡视频| 欧美a一区二区| 国产三级一区二区三区| 国产99一区视频免费| 亚洲欧洲国产专区| 欧美伦理视频网站| 国产一区二区三区四区五区美女| 亚洲国产高清aⅴ视频| 91丨九色丨蝌蚪丨老版| 午夜精品久久久久| 久久久午夜电影| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲一区在线免费观看| 日韩一区二区免费高清| 国产999精品久久| 亚洲一线二线三线久久久| 精品国产凹凸成av人网站| 99久久综合狠狠综合久久|