青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

IFS Kit下關于FastIo的OSR文檔翻譯(3)

FastIoQueryBasicInfo and FastIoQueryStandardInfo

這兩個操作為標準的NtQueryInformationFile API操作提供了支持,而FastIoQueryBasicInfo也經常被用來處理NtCreateFile的特定操作。文件的基本屬性包括創建時間、訪問時間和修改時間,以及隱藏、文件夾或其它屬性等。文件的標準屬性包括文件占用的空間、文件的大小、文件的硬連接號、被請求刪除的標志,是否是文件夾的標識。

由于這些信息經常在緩存中,所以它是FAST I/O操作的最佳候選。其實許多程序用這種方法來獲取文件基本的信息,因為這種方法提高了操作的效率和程序的性能,如文件管理器程序(winfile.exe)。

這兩個Fast I/O例程有相同的接口:

typedef BOOLEAN (*PFAST_IO_QUERY_ABSIC_INFO)(
IN struct _FILE_OBJECT *FileObject,
IN BOOLEAN Wait,
OUT PFILE_BASIC_INFORMATION Buffer,
OUT PIO_STATUS_BLOCK IoStatus,
IN struct _DEVICE_OBJECT *DeviceObject);

Wait參數表示調用者是否阻塞以等待獲取信息的返回,如果設置為FALSE,則調用要么立刻完成,要么返回FALSE,如果返回FALSE,則會生成一個包含整個操作必要的上下文件的IRP。有趣的是在NT3.51中當Wait設置為FALSE時這兩個例程將不被調用,當然這在以后的版本中會修改。

這兩個例程一但被調用,它們會查詢文件對象第一次打開時保存的信息,這些信息也可能被實時變化,例如,文件的最近訪問時間屬性會被文件系統設置的當前的系統時間,當然設置這些屬性取決于文件系統的實現。

FastIoLock,FastIoUnLockSingle,FastIoUnLockAll,and FastIoUnLockAllByKey
這些例程被用來控制特殊文件的加鎖狀態。對文件的加鎖以字節為單位,所以可以對文件的多個字節進行加密。標準的NT文件系統使用文件系統運行時開發包(FsRtl函數)所提供的通用代碼來驗證鎖權限并存儲文件的加鎖范圍。鎖狀態通過調用NT API函數NtLockFile和NtUnLockFile來控制。

在Windows NT中有兩種鎖,一種是排它鎖,是寫鎖,說明加鎖的地放要進行修改;另一種是共享鎖,是讀鎖,說明加鎖的地放用來的讀的。多個共享鎖在重疊操作中可以被授權,并且一直保存到釋放為止。將各種加鎖的信息存儲起來在訪問這些信息的時候會提高速度。
FastIoLock的原型:
Typedef BOOLEAN (*PFAST_IO_LOCK)(
IN struct _FILE_OJBECT *FileObject,
IN PLARGE_INTEGER FileOffset,
IN PLARGE_INTEGER Length,
PEPROCESS ProcessId,
ULONG Key,
BOOLEAN FailImmediately,
BOOLEAN ExclusiveLock,
OUT PIO_STATUS_BLOCK IoStatus,
IN struct _DEVICE_OBJECT *DeviceObject
);
FileOffset 和Length參數對應加鎖的范圍,ProcessId標識加鎖的進程,如果進行退出,鎖將會清除。Key參數提供一個非透明的值,用來關聯多個鎖,例如調用FastIoUnLockAllByKey可以快速訪問多個鎖。FailImmediately用來標識當鎖無效時是立刻返回失敗還是阻塞直到鎖可用。對于FsRtl函數,如果是無效的鎖則忽略FailImmediately參數,函數返回FALSE。ExclusiveLock參數用來標識是排它鎖還是共享鎖。

FastUnlockSingle例程被用來釋放對文件的加鎖,原型如下:
Typedef BOOLEAN (*PFAST_IO_UNLOCK_SINGLE)(
IN struct _FILE_OBJECT *FileObject,
IN PLARGE_INTEGER FileOffset,
IN PLARGE_INTEGER Length,
PEPROCESS ProcessId,
ULONG Key,
OUT PIO_STATUS_BLOCK IoStatus,
IN struct _DEVICE_OBJECT *DeviceObject
);
對大多文件系統來說,如果文件沒有加鎖,此例程總是返回TRUE,即使朝無效的鎖,操作也會完成,因為用IRP來操作也同樣會產生相同的錯誤。

如果這個解鎖操作成功,那么FileOffset,Length,ProcessId,和Key必須和相應的鎖信息匹配,否則操作會返回錯誤STATUS_RANGE_NOT_LOCKED。FastIoUnlockAll例程用來釋放特殊文件所有的鎖,函數原型如下:
typedef BOOLEAN(*PFAST_IO_UNLOCK_ALL)(
IN struct _FILE_OBJECT *FileObject,
PEPROCESS ProcessId,
OUT PIO_STATUS_BLOCK IoStatus,
IN struct _DEVICE_OBJECT *DeviceObject
);
在這種情況下,Fast I/O例程查找進程ProcessId所操作的文件所有的鎖,并刪除,無論是排它鎖還是共享鎖。這個例程常用在當系統由于關掉程序或終止程序而調用NtCloseFile時。

FastIoUnlockAllByKey操作用來通過一些特殊的鍵值來刪除一系列鎖。原型如下:
Typedef BOOLEAN (*PFAST_IO_UNLOCK_ALL_BY_KEY)(
IN struct _FILE_OBJECT *FileObject,
PVOID ProcessId,
ULONG Key,
OUT PIO_STATUS_BLOCK_IoStatus,
IN struct _DEVICE_OBJECT *DeviceObject
);
提供這個例程是為了便于文件服務如SRV。在NT3.51的I/O管理器中沒有出現這個調用。鍵值用來文件服務給遠程客戶機文件加鎖時分配的。因為許多遠程客戶端,僅有ProcessId是遠遠不夠的。同樣,對于多文件服務器,僅使用鍵值也會在其它的文件服務器釋放時導致錯誤。二者同時使用以確保正確操作并允許遠程加鎖。
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            中文久久乱码一区二区| 亚洲一区在线观看免费观看电影高清| 欧美区二区三区| 亚洲大片av| 136国产福利精品导航| 久久亚洲综合| 亚洲国内自拍| 99精品国产福利在线观看免费 | 欧美日韩国语| 一本色道久久综合| 亚洲第一福利在线观看| 欧美精品久久一区| 亚洲二区免费| 最新中文字幕亚洲| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲欧美国产视频| 亚洲国产精品电影| 一本色道久久综合亚洲91| 国产午夜一区二区三区| 老鸭窝毛片一区二区三区| 欧美国产精品专区| 精品成人a区在线观看| 欧美日韩亚洲一区二区三区在线观看| 性亚洲最疯狂xxxx高清| 欧美视频网站| 亚洲精品中文字幕有码专区| 99av国产精品欲麻豆| 今天的高清视频免费播放成人 | 在线看日韩av| 羞羞漫画18久久大片| 久久九九99| 欧美影院在线| 久久蜜桃香蕉精品一区二区三区| 欧美一区激情视频在线观看| 欧美在线视频一区二区| 久久在线91| 欧美大片在线观看一区| 91久久综合| 一区二区三区成人精品| 最新国产の精品合集bt伙计| 亚洲色图制服丝袜| 久久精品一区二区三区中文字幕| 亚洲日本理论电影| 亚洲性感美女99在线| 久久久99国产精品免费| 欧美日韩岛国| 狠狠狠色丁香婷婷综合激情| 日韩一级在线观看| 久久精品日韩| 亚洲欧洲一区| 欧美在线视频日韩| 欧美日韩国产不卡在线看| 国产日韩欧美在线| 99精品视频免费全部在线| 久久精品国产99国产精品| 亚洲日本欧美在线| 中文国产成人精品久久一| 久热国产精品| 国产精品一区二区三区四区 | 久久久久久久一区二区三区| 91久久极品少妇xxxxⅹ软件| 久久精品123| 国产精品毛片| 一区二区三区色| 欧美岛国激情| 欧美专区在线| 国产精品试看| 亚洲国产欧美久久| 久久久美女艺术照精彩视频福利播放| 亚洲理论在线观看| 另类综合日韩欧美亚洲| 99精品视频一区二区三区| 国产女精品视频网站免费 | 亚洲一区二区综合| 欧美黄色一区二区| 亚洲精品一区二区三区福利| 看片网站欧美日韩| 久久国产精品亚洲77777| 国产精自产拍久久久久久蜜| 亚洲影院色在线观看免费| 国产一区二区三区在线免费观看| 9久草视频在线视频精品| 欧美一区二区福利在线| 免费在线欧美黄色| 亚洲在线视频观看| 欧美伦理91i| 日韩一二三在线视频播| 久久午夜精品一区二区| 羞羞答答国产精品www一本 | 国产麻豆午夜三级精品| 香蕉av福利精品导航| 一区二区欧美精品| 国产精品va在线播放| 亚洲综合色网站| 亚洲一区二区三区高清 | 久久成人免费日本黄色| 国内外成人免费视频| 久久久久一区二区三区| 欧美主播一区二区三区美女 久久精品人 | 亚洲国产一区二区三区a毛片 | 久久综合九色综合久99| 狼狼综合久久久久综合网| 亚洲人成在线免费观看| 亚洲精品国产精品国自产在线 | 午夜日韩电影| 久久福利一区| 亚洲久久在线| 亚洲午夜激情| 狠狠久久五月精品中文字幕| 欧美电影电视剧在线观看| 久久精品综合一区| 91久久香蕉国产日韩欧美9色| 亚洲电影免费在线观看| 欧美午夜片在线免费观看| 欧美一区网站| 99re8这里有精品热视频免费| 久久频这里精品99香蕉| 久久精品免费电影| 亚洲精品视频一区| 亚洲人成网站色ww在线| 日韩一级免费| 欧美日韩国产一区精品一区| 久久精品中文字幕一区二区三区| 欧美成人自拍视频| 午夜精品久久久久久久男人的天堂| 久久久久久69| 亚洲综合色激情五月| 鲁大师成人一区二区三区| 亚洲欧美视频一区| 欧美成人免费小视频| 久久黄色级2电影| 欧美日韩国产精品一区| 久久在线精品| 国产欧美精品| 日韩午夜一区| 亚洲国产专区| 久久久久久久一区| 99ri日韩精品视频| 一区二区三区免费在线观看| 亚洲高清一二三区| 欧美资源在线| 久久成人久久爱| 国产精品久久7| 亚洲激情亚洲| 亚洲国产精品女人久久久| 午夜欧美大尺度福利影院在线看| 一本色道久久综合狠狠躁篇怎么玩| 久久精品综合| 久久婷婷人人澡人人喊人人爽 | 亚洲视屏在线播放| 农夫在线精品视频免费观看| 久久久精品一品道一区| 国产精品爽爽爽| 日韩一级精品视频在线观看| 99国产精品久久久久久久成人热| 久久午夜精品| 六月丁香综合| 国产精品区二区三区日本| 欧美激情亚洲激情| 国产精品视频大全| 亚洲欧美中文在线视频| 亚洲欧美日韩电影| 欧美视频精品在线| 在线视频亚洲欧美| 亚洲伊人久久综合| 国产精品一区二区a| 亚洲欧美一级二级三级| 久久成人av少妇免费| 国产一级一区二区| 久久免费视频在线观看| 欧美激情一区二区三区全黄 | 亚洲男人第一av网站| 麻豆国产va免费精品高清在线| 亚洲激情电影在线| 国产精品呻吟| 欧美国产欧美综合| 欧美一区二区三区在线观看| 亚洲国产免费| 久久久av水蜜桃| 国产精品久久久久一区二区三区| 美日韩免费视频| 亚洲女爱视频在线| 亚洲国产精品一区| 国产视频一区免费看| 欧美日本韩国| 久久综合伊人77777| 亚洲欧美日韩在线一区| 亚洲欧洲一区| 欧美福利影院| 久久国产一区二区三区| 亚洲一级电影| 99精品欧美一区| 亚洲电影免费| 国自产拍偷拍福利精品免费一| 欧美视频一区在线观看| 欧美福利在线观看| 美女91精品| 久久综合久久综合这里只有精品| 一区二区三区四区五区精品视频| 亚洲国产精品成人一区二区|