Windows 驅動開發基礎(九)核心功能

來源:互聯網
上載者:User

標籤:驅動開發   windows 7   

Windows 驅動開發基礎系列,轉載請標明出處:http://blog.csdn.net/ikerpeng/article/details/38849861


這裡主要介紹3類Windows的核心功能:字串處理函數,檔案操作函數, 註冊表讀寫函數。(這些函數都是運行時函數,所以都有Rtl字樣)


1 字串處理函數

首先驅動程式中,常用的字串包括4種:CHAR (列印的時候注意小寫%s), WCHAR(列印的時候注意大寫%S), ANSI_STRING, UNICODE_STRING。後面兩種使用的比較的多注意他們兩都不是以0標誌結束的。


使用前要都要進行初始化(就像C裡面的變數聲明和賦值)。都有其相應的初始化函數:

RtlInitAnsiString(),RtlInitUnicodeString()。使用的例子:

ANSI_STRING ansiString;

CHAR* string = “Hello”;

RtlInitAnsiString(&ansiString, string);

同理我們還有相應的:複製:RtlCopyString()RtlCopyUnicodeString()比較:RtlCompareUnicodeString()RtlCompareString()轉化為大寫:RtlUpperString() RtlUpcaseUnicodeString()轉化為整型:RtlUnicodeStringtoInteger()整型轉化為Unicode RtlIntegertoUnicodeString()。具體用到的時候查手冊就好!


2. 檔案操作函數

檔案的操作主要包括:檔案的建立,開啟,修改,讀,寫等的操作。

這個檔案操作的基本公用代碼是:

    UNICODE_STRING string;

    RtlInitUnicodeString(&string, L"\\??\\C:\\1.log");

    OBJECT_ATTRIBUTES objattr;

    InitializeObjectAttributes(&objattr, &string, OBJ_CASE_INSENSITIVE, NULL, NULL);

    HANDLE hFile;

    IO_STATUS_BLOCK iostatus;

以上就是對於函數要調用的一些參數的申明和定義。接下來就可以對建立的檔案進行操作勒。操作的函數主要有:


檔案的建立: ZwCreativeFile()檔案屬性設定:ObjectAttributes()檔案的開啟:ZwOpenFile() 檔案的資訊擷取 ZwSetInformationFile(),修改屬性ZwQueryInformationFile()檔案的讀 ZwReadFile()檔案的寫 ZwWriteFile()。


3.註冊表

註冊表中儲存的是對個的二元結構:鍵名--鍵值;同時一個登錄機碼可能還存在他的子項。

其操作和檔案的操作很像,主要的函數有ZwCreatKey(),ZwOpenKey(),ZwSetValueKey()(鍵值)ZwQueryValueKey()ZwQueryKey()(鍵名的操作)等等。


本小節完。


參考文獻

《 Windows 驅動開發技術詳解 》

Windows 驅動開發基礎(九)核心功能

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.