驅動程式中檔案操作函式之ZwCreateFile

2021-06-21 07:11:01 字數 1168 閱讀 5366

據說windows是用80%的c和20%的彙編寫成的,那麼在驅動程式的ddk提供給程式設計師使用的核心函式就都包含了c的特性,比如乙個函式的使用會包含多個結構體,所以在使用起來沒有在使用者模式下這麼簡單。

為了使用zwcreatefile這個核心函式,我們首先需要作一些準備工作,還是先來看看zwcreatefile函式的定義,該函式的定義位於wdm.h中:

ntsysapi

ntstatus

ntapi

zwcreatefile(

__out phandle filehandle,

__in access_mask desiredaccess,

__in pobject_attributes objectattributes,

__out pio_status_block iostatusblock,

__in_opt plarge_integer allocationsize,

__in ulong fileattributes,

__in ulong shareaccess,

__in ulong createdisposition,

__in ulong createoptions,

__in_bcount_opt(ealength) pvoid eabuffer,

__in ulong ealength

);該函式共有11個引數,其中filehandle是函式返回的檔案控制代碼;desiredaccess是檔案操作的讀寫描述,一般指定為generic_read或generic_write;objectattributes是乙個結構體,該結構體中包含了開啟檔案的名稱;iostatusblock返回函式的操作結果;fileattributes為檔案的屬性;shareaccess為檔案的共享方式;createdisposition表明當檔案存在或不存在時的處理方式。

以前就是zwcreatefile中的幾個重要引數,而在使用zwcreatefile時首先需要初始化objectattributes結構體,這一操作可用initializeobjectattributes巨集來實現。

在用zwcreatefile開啟或建立檔案後,最後需要用zwclose函式來關閉檔案控制代碼。

下面是乙個簡單的示例**:

void filetest()

else

zwclose( hfile );}

驅動程式檔案操作

ifdef cplusplus endif 建立檔案函式 1.檔案路徑字串 ntstatus createfile const pcwstr filename 定義乙個控制代碼 object attributes attr 通過建立物件和 或返回控制代碼物件例程被應用到物件或物件控制代碼結構指定的屬...

linux之NOR FLASH驅動程式

使用uboot體驗nor flash的操作 開發板設為nor啟動,進入uboot 先使用openjtag燒寫uboot到nor flash 1.讀資料 md.b 0 2.讀id nor手冊上 往位址555h寫aah 往位址2aah寫55h 往位址555h寫90h 讀0位址得到廠家id c2h 讀1位...

大話USB驅動之匯流排驅動程式

匯流排驅動是不用改的。核心都幫我們做好了。為了了解整個usb驅動的體系,我們來分析一下匯流排驅動程式。一.匯流排框圖 匯流排的圖畫的已經很清楚了,這篇部落格我們分析的是左邊的程式,在下篇我們想通過usb鍵盤這一實際樣例來解說。二.程式實現 1.因為 太多且關係複雜這裡僅僅列出呼叫的函式 沒有寫引數 ...