• <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>

            CreateFile函數(shù)祥解

            CreateFile函數(shù)祥解2006-9-18 18:48:00
            CreateFile

            The CreateFile function creates or opens the following objects and returns a handle that can be used to access
            the object:
             files
             pipes
             mailslots
             communications resources
             disk devices(Windows NT only)
             consoles
             directories(open only)

            CreateFile函數(shù)創(chuàng)建或打開下列對象,并返回一個可以用來訪問這些對象的句柄。
             文件
             pipes
             郵槽
             通信資源
             磁盤驅(qū)動器(僅適用于windowsNT)
             控制臺
             文件夾(僅用于打開)

            HANDLE CreateFile(
             LPCTSTR lpFileName,    //指向文件名的指針
             DWORD dwDesiredAccess,    //訪問模式(寫/讀)
             DWORD dwShareMode,    //共享模式
             LPSECURITY_ATTRIBUTES lpSecurityAttributes, //指向安全屬性的指針
             DWORD dwCreationDisposition,   //如何創(chuàng)建
             DWORD dwFlagsAndAttributes,   //文件屬性
             HANDLE hTemplateFile    //用于復(fù)制文件句柄
            );

            Parametes
            參數(shù)列表

            lpFileName
             Pointer to a null-terminated string that specifies the name of the object(file, pipe, mailslot,
             communications resource, disk device, console, or directory) to create or open.
             指向一個空結(jié)尾字符串。該參數(shù)指定了用于創(chuàng)建或打開句柄的對象。

             if *lpFileName is a path, there is a default string size limit of MAX_PATH characters, This limit is
             related to how the CreateFile function parses paths.
             如果lpFileName的對象是一個路徑,則有一個最大字符數(shù)的限制。不能超過常量(MAX_PATH).這個限制指示了
             CreateFile函數(shù)如何解析路徑.

            dwDesiredAccess
             Specifies the type of access to the object. An application can obtain read access, write access,
             read-write access, or device query access, This parameter can be any combination of the following
             values
             指定對象的訪問方式,程序可以獲得讀訪問權(quán),寫訪問權(quán),讀寫訪問權(quán)或者是詢問設(shè)備("device query") 訪問權(quán).
             這個參數(shù)可以是下列值的任意組合
             
             Value(值)  Meaning(含義)
             0   Specifies device query access to the object. An application can query device
                attributes without accessing the device.
                指定詢問訪問權(quán).程序可以在不直接訪問設(shè)備的情況下查詢設(shè)備的屬性.

             GENERIC_READ  Specifies read access to the object, Data can be read from the file and the
                file pointer can be moved. Combine with GENERIC_WRITE for read-write access.
                指定讀訪問權(quán).可以從文件中讀取數(shù)據(jù),并且移動文件指針.可以和GENERIC_WRITE組合
                成為"讀寫訪問權(quán)".

             GENERIC_WRITE  specifies write access to the object. Data can be written to the file and the
                file pointer can be moved. Combine with GENERIC_READ fro read-write access
                指定寫訪問權(quán).可以從文件中寫入數(shù)據(jù),并且移動文件指針.可以和GENERIC_READ組合
                成為"讀寫訪問權(quán)".

            dwShareMode
             Set of bit flags that specifies how the object can be shared, If dwShareMode is 0, the object cannot
             be shared. Subsequent open operations on the object will fail, until the handle is closed.
             設(shè)置位標(biāo)志指明對象如休共享.如果參數(shù)是0, 對象不能夠共享. 后續(xù)的打開對象的操作將會失敗,直到該對象的句
             柄關(guān)閉.

             To share the object, use a combination of one or more of the following values:
             使用一個或多個下列值的組合來共享一個對象.
             Value(值)  Meaning(含義)
             FILE_SHARE_DELETE WindowsNT: Subsequent open operations on the object will succeed only if
                delete access is requested.
                WINDOWS NT:后續(xù)的僅僅請求刪除訪問權(quán)的打開操作將會成功.

             FILE_SHARE_READ  Subsequent open operations on the object will successd only if read access
                is requested.
                后續(xù)的僅僅請求讀訪問權(quán)的打開操作將會成功.

             FILE_SHARE_WRITE Subsequent open operations on the object will succeed only if write access
                is requested.
                后續(xù)的僅僅請求寫訪問權(quán)的打開操作將會成功.

            lpSecurityAttributes
             pointer to a SECURITY_ATTRIBUTES structure that determines whether the returned handle can be
             inherited by child processes, if lpSecurityAttributes is NULL, the handle cannot be inherited.
             指向一個 SECURITY_ATTRIBUTES 結(jié)構(gòu)的指針用于確定如何在子進(jìn)程中繼承這個句柄.如果這個參數(shù)是NULL,
             則該句柄不可繼承.

            dwCreationDisposition
             Specifies which action to take on files that exist, and which action to take when files do not exist.
             For more information about this parameter, see the remarks section. This parameter must be one of the
             following values
             指定當(dāng)文件存在或者不存在時如何動作。關(guān)于這個參數(shù)更多的信息,參考批注部分。這個參數(shù)必須是一個或多個
             下列值。

             VALUE(值)  Neaning(含義)
             CREATE_NEW  Creates a new file. The function fails if the specified file already exists
                創(chuàng)建一個新文件. 如果該文件已經(jīng)存在函數(shù)則會失敗.
             
             CREATE_ALWAYS  Creates a new file. If the file exsts, the function overwrites the file and
                clears the existing attributes.
                創(chuàng)建一個新文件.如果該文件已經(jīng)存在,函數(shù)將覆蓋已存在的文件并清除已存在的文件屬性

             OPEN_EXISTING  Opens the file. The function fails if the file does not exist.
                See the Remarks section for a discussion of why you should use the
                OPEN_EXISTING flag if you are using the CreateFile function for devices,
                including the console.
                打開一個文件,如果文件不存在函數(shù)將會失敗.
                如查你使用CreateFile函數(shù)為設(shè)備裝載控制臺.請查看批注中的"為什么使用
                OPEN_EXISTING標(biāo)志"的部分.
                
             OPEN_ALWAYS  Opens the file, if it exsts. If the file does not exist, the function creates
                the file as if dwCreationDisposition were CREATE_NEW.
                如果文件存在,打開文件. 如果文件不存在,并且參數(shù)中有CREATE_NEW標(biāo)志,則創(chuàng)建文件.

             TRUNCATE_EXISTING Opens the file. Once opened, the file is truncated so that its size is zero
                bytes The calling process must open the file with at least GENERIC_WRITE access.
                The function fails if the file does not exist.
                打開一個文件,每次打開,文件將被截至0字節(jié).調(diào)用進(jìn)程必須用GENERIC_WRITE訪問模式打
                開文件.如果文件不存在則函數(shù)就會失敗.

            dwFlagsAndatributes
             Specifies the file attributes and flags for the file.
             為文件指定屬性和標(biāo)志位

             Any combination of the following attributes is acceptable for the dwFlagsAndAttributes parameter,
             except all other file attributes override FILE_ATTRIBUTE_NORMAL.
             該參數(shù)可以接收下列屬性的任意組合.除非其它所有的文件屬性忽略FILE_ATTRIBUTE_NORMAL.
             Attribute(屬性)   Meaning(標(biāo)志)
             FILE_ATTRIBUTE_ARCHIVE  The ifle should be archived. Application use this attribute to mark
                 files for backup or removal.
                 文件將被存檔,程序使用此屬性來標(biāo)志文件去備份或移除

             FILE_ATTRIBUTE_HIDDEN  The file is hidden. It is not to be included in an ordinary directory
                 listing.
                 文件被隱藏,它不會在一般文件夾列表中被裝載.

             FILE_ATTRIBUTE_NORMAL  The file has no other attributes set. This attribute is valid only if
                 used alone
                 文件沒有被設(shè)置任何屬性.


             FILE_ATTRIBUTE_OFFLINE  The data of the file is not immediately available. Indicates that the
                 file data has been physically moved to offline storage.
                 文件的數(shù)據(jù)沒有被立即用到。指出正在脫機使用該文件。

             FILE_ATTRIBUTE_READONLY  The file is read only.Applications can read the file but cannot write
                 to it or delete it
                 這個文件只可讀取.程序可以讀文件,但不可以在上面寫入內(nèi)容,也不可刪除.

             FILE_ATTRIBUTE_SYSTEM  The file is part of or is used exclusively by the operation system.
                 文件是系統(tǒng)的一部分,或是系統(tǒng)專用的.

             FILE_ATTRIBUTE_TEMPORARY The file is being used for temporary storage. File systems attempt
                 to keep all of the data in memory for quicker access rather than
                 flushing the data back to mass storage. A temporary file should be
                 deleted by the application as soon as it is no longer needed.
                 文件被使用后,文件系統(tǒng)將努力為(文件的)所有數(shù)據(jù)的迅迅訪問保持一塊
                 內(nèi)存。臨時文件應(yīng)當(dāng)在程序不用時及時刪除。

             Any combination of the following flags is acceptable for the dwFlagsAndAttributes parameter.
             dwFlagAndAttributes可以接受下列標(biāo)志的任意組合。

             FLAG(標(biāo)志)   Meaning(含義)
             FILE_FLAG_WRITE_THROUGH  Instructs the system to write through any intermediate cache and go
                 directly to disk. The system can still cache write operations, but
                 cannot lazily flush them.
                 指示系統(tǒng)通過快速緩存直接寫入磁盤,

             FILE_FLAG_OVERLAPPED  Instructs the system to initialize the object, so that operations that
                 take a significant amount of time to process return ERROR_IO_PENDING.
                 When the operation is finished, the specified event is set to the
                 signaled state.
                 指示系統(tǒng)初始化對象, 此操作將對進(jìn)程設(shè)置一個引用計數(shù)并返回ERROR_IO_PENDING.
                 處理完成后, 指定對象將被設(shè)置為信號狀態(tài).

                 When you specify FILE_FLAG_OVERLAPPED, the file read and write functions
                 must specify an OVERLAPPED structure. That is, when FILE_FLAG_OVERLAPPED
                 is specified, an application must perform overlapped parameter(pointing
                 to an OVERLAPPED structure)to the file read and write functions.
                 This flag also enables more than one operation to be performed
                 simultaneously with the handle(a simultaneous read and write operation,
                 for example).
                 當(dāng)你指定FILE_FLAG_OVERLAPPED時,讀寫文件的函數(shù)必須指定一個OVERLAPPED結(jié)構(gòu).
                 并且. 當(dāng)FILE_FLAG_OVERLAPPED被指定, 程序必須執(zhí)行重疊參數(shù)(指向OVERLAPPED
                 結(jié)構(gòu))去進(jìn)行文件的讀寫.
                 這個標(biāo)志也可以有超過一個操作去執(zhí)行.

             FILE_FLAG_NO_BUFFERING  Instructs the system to open the file with no intermediate buffering or
                 caching.When combined with FILE_FLAG_OVERLAPPED, the flag gives maximum
                 asynchronous performance, because the I/O does not rely on the synchronous
                 operations of the memory manager. However, some I/O operations will take
                 longer, because data is not being held in the cache.
                 指示系統(tǒng)不使用快速緩沖區(qū)或緩存,當(dāng)和FILE_FLAG_OVERLAPPED組合,該標(biāo)志給出最
                 大的異步操作量, 因為I/O不依賴內(nèi)存管理器的異步操作.然而,一些I/O操作將會運行
                 得長一些,因為數(shù)據(jù)沒有控制在緩存中.

                 An application must meet certain requirements when working with files
                 opened with FILE_FLAG_NO_BUFFERING:
                 當(dāng)使用FILE_FLAG_NO_BUFFERING打開文件進(jìn)行工作時,程序必須達(dá)到下列要求:
                 
                  File access must begin at byte offsets within the file that are
                  integer multiples of the volume's sector size.
                  文件的存取開頭的字節(jié)偏移量必須是扇區(qū)尺寸的整倍數(shù).
                  
                  File access must be for numbers of bytes that are integer
                  multiples of the volume's sector size. For example, if the sector
                  size is 512 bytes, an application can request reads and writes of
                  512, 1024, or 2048 bytes, but not of 335, 981, or 7171bytes.
                  文件存取的字節(jié)數(shù)必須是扇區(qū)尺寸的整倍數(shù).例如,如果扇區(qū)尺寸是512字節(jié)
                  程序就可以讀或者寫512,1024或者2048字節(jié),但不能夠是335,981或者7171
                  字節(jié).

                  buffer addresses for read and write operations must be sector
                  aligned(aligned on addresses in memory that are integer multiples
                  of the volume's sector size).
                  進(jìn)行讀和寫操作的地址必須在扇區(qū)的對齊位置,在內(nèi)存中對齊的地址是扇區(qū)
                  尺寸的整倍數(shù).

                 One way to align buffers on integer multiples of the volume sector size is
                 to use VirtualAlloc to allocate the buffers, It allocates memory that is
                 aligned on addresses that are integer multiples of the operating system's
                 memory page size. Because both memory page and volume sector sizes are
                 powers of 2, this memory is also aligned on addresses that are integer
                 multiples of a volume's sector size.
                 一個將緩沖區(qū)與扇區(qū)尺寸對齊的途徑是使用VirtualAlloc函數(shù). 它分配與操作系統(tǒng)
                 內(nèi)存頁大小的整倍數(shù)對齊的內(nèi)存地址.因為內(nèi)存頁尺寸和扇區(qū)尺寸--2都是它們的冪.
                 這塊內(nèi)存在地址中同樣與扇區(qū)尺寸大小的整倍數(shù)對齊.

                 An application can determine a volume's sector size by calling the
                 GetDiskFreeSpace function
                 程序可以通過調(diào)用GetDiskFreeSpace來確定扇區(qū)的尺寸.

             FILE_FLAG_RANDOM_ACCESS
                 Indicates that the file is accessed randomly. The system can use this as
                 a hint to optimize file caching.
                 指定文件是隨機訪問,這個標(biāo)志可以使系統(tǒng)優(yōu)化文件的緩沖.


             FILE_FLAG_SEQUENTIAL_SCAN 
                 Indicates that the file is to be accessed sequentially from beginning to
                 end. The system can use this as a hint to optimize file caching. If an
                 application moves the file pointer for random access, optimum caching may
                 not occur; however, correct operation is still guaranteed.
                 指定文件將從頭到尾連續(xù)地訪問.這個標(biāo)志可以提示系統(tǒng)優(yōu)化文件緩沖. 如果程序在
                 隨機訪問文件中移動文件指針,優(yōu)化可能不會發(fā)生;然而,正確的操作仍然可以得到保
                 證
                 
                 Specifying this flag can increase performance for applications that read
                 large files using sequential access, performance gains can be even more
                 noticeable for applications that read large files mostly sequentially,
                 but occasionally skip over small ranges of bytes.
                 指定這個標(biāo)志可以提高程序以順序訪問模式讀取大文件的性能, 性能的提高在許多
                 程序讀取一些大的順序文件時是異常明顯的.但是可能會有小范圍的字節(jié)遺漏.


             FILE_FLAG_DELETE_ON_CLOSE Indicates that the operating system is to delete the file immediately
                 after all of its handles have been closed, not just the handle for which
                 you specified FILE_FLAG_DELETE_ON_CLOSE.
                 指示系統(tǒng)在文件所有打開的句柄關(guān)閉后立即刪除文件.不只有你可以指定FILE_FLAG_DELETE_ON_CLOSE
                 
                 Subsequent open requests for the file will fail, unless FILE_SHARE_DELETE
                 is used.
                 如果沒有使用FILE_SHARE_DELETE,后續(xù)的打開文件的請求將會失敗.

             FILE_FLAG_BACKUP_SEMANTICS  WINDOWS NT:Indicates that the file is being opened or created for a backup
                 or restore operation.The system ensures that the calling process overrides
                 file security checks, provided it has the necessary privileges. The
                 relevant privileges are SE_BACKUP_NAME and SE_RESTORE_NAME.
                 WINDOWS NT:指示系統(tǒng)為文件的打開或創(chuàng)建執(zhí)行一個備份或恢復(fù)操作. 系統(tǒng)保證調(diào)
                 用進(jìn)程忽略文件的安全選項,倘若它必須有一個特權(quán).則相關(guān)的特權(quán)則是SE_BACKUP_NAME
                 和SE_RESTORE_NAME.

                 You can also set this flag to obtain a handle to a directory. A directory
                 handle can be passed to some Win32 functions in place of a file handle.
                 你也可以使用這個標(biāo)志獲得一個文件夾的句柄,一個文件夾句柄能夠象一個文件句柄
                 一樣傳給某些Win32函數(shù)。

             FILE_FLAG_POSIX_SEMANTICS Indicates that the file is to be accessed according to POSIX rules. This
                 includes allowing multiple files with names, differing only in case, for file
                 systems that support such naming. Use care when using this option because
                 files created with this flag may not be accessible by applications written
                 for MS-DOS or 16-bit Windows.
                 指明文件符合POSIX標(biāo)準(zhǔn).這是在MS-DOS與16位Windows下的標(biāo)準(zhǔn).

             FILE_FLAG_OPEN_REPARSE_POINT Specifying this flag inhibits the reparse behavior of NTFS reparse points.
                 When the file is opened, a file handle is returned, whether the filter that
                 controls the reparse point is operational or not. This flag cannot be used
                 with the CREATE_ALWAYS flag.
                 指定這個標(biāo)志制約NTFS分區(qū)指針.該標(biāo)志不能夠和CREAT_ALWAYS一起使用.

             FILE_FLAG_OPEN_NO_RECALL Indicates that the file data is requested,but it should continue to reside in
                 remote storage. It should not be transported back to local storage. This flag
                 is intended for use by remote storage systems or the Hierarchical Storage
                 Management system.
                 指明需要文件數(shù)據(jù),但是將繼續(xù)從遠(yuǎn)程存儲器中接收.它不會將數(shù)據(jù)存放在本地存儲器中.
                 這個標(biāo)志由遠(yuǎn)程存儲系統(tǒng)或等級存儲管理器系統(tǒng)使用.

            hTemplateFile
             Specifies a handle with GENERIC_READ access to a template file. The template file supplies file attributes and
             extended attributes for the file being created.
             為GENERIC_READ訪問的模式指定一個句柄到模板文件.模板文件在文件開始創(chuàng)建后提供文件屬性和擴展屬性.

            Return Values
            返回值

            If the function succeeds, the return value is an open handle to the specified file. If the specified file exists before
            the function call and dwCreation is CREATE_ALWAYS or OPEN_ALWAYS, a call to GetLastError returns ERROR_ALREADY_EXISTS
            (even though the function has succeeded). If the file does not exist before the call, GetLastError returns zero.
            如果函數(shù)成功,返回一個打開的指定文件的句柄.如果指定文件在函數(shù)調(diào)用前已經(jīng)存在并且dwCreation參數(shù)是CREATE_ALWAYS 或者
            OPEN_ALWAYS,調(diào)用GetLastError就會返回ERROR_ALREADY_EXISTS(表示函數(shù)成功). 如果函數(shù)文件在調(diào)用前不存在則會返回0.

            If the function fails, the return value is INVALID_HANDLE_VALUE.To get extended error information, call GetLastError.
            如果函數(shù)失敗,返會值會是INVALID_HANDLE_VALUE. 更多的錯誤信息可以調(diào)用GetLastError來獲得.

            posted on 2008-09-11 09:44 wrh 閱讀(234) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            導(dǎo)航

            <2008年12月>
            30123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910

            統(tǒng)計

            常用鏈接

            留言簿(19)

            隨筆檔案

            文章檔案

            收藏夾

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲AV无码久久精品成人 | 国产免费福利体检区久久| 72种姿势欧美久久久久大黄蕉 | 国产精品久久自在自线观看| 国产成人久久AV免费| 精品久久久久久无码国产| 久久久久免费精品国产| 久久久青草青青亚洲国产免观| 色综合久久中文字幕综合网| 精品蜜臀久久久久99网站| 2020最新久久久视精品爱| 综合久久国产九一剧情麻豆| 久久国产精品无码网站| 久久99精品久久久久久hb无码| 国产福利电影一区二区三区久久老子无码午夜伦不| 国产叼嘿久久精品久久| 久久这里只有精品18| 亚洲熟妇无码另类久久久| 伊人色综合久久| 中文无码久久精品| 日本加勒比久久精品| 欧美一区二区精品久久| 久久永久免费人妻精品下载| 人人狠狠综合88综合久久| 国产高潮久久免费观看| 狠狠色婷婷久久一区二区三区| 无码国内精品久久综合88| 无码人妻久久一区二区三区蜜桃| 国产精品久久久久久久久免费| 四虎国产精品成人免费久久| 久久国产免费直播| 亚洲国产精品久久久久久| 精品无码久久久久久尤物| 精品无码久久久久国产动漫3d| 久久久精品久久久久特色影视| 国产精品久久久久久一区二区三区 | 久久人人爽人人人人片av| 欧美日韩精品久久久久| 亚洲国产成人乱码精品女人久久久不卡| 欧美亚洲日本久久精品| 久久久久综合中文字幕|