freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

現(xiàn)代微機(jī)原理與接口技術(shù)接口第10章(文件)

2024-10-16 18:47 上一頁面

下一頁面
 

【正文】 模式入口點(diǎn)的 CS: IP DWORD DDB_Reference_Data; // 實(shí)模式初始化代碼設(shè)置的參 // 考資料 DWORD DDB_VxD_Service_Table_Ptr; // VxD服務(wù)表的地址 DWORD DDB_VxD_Service_Table_Size; // VxD服務(wù)表中提 // 供的 VxD服務(wù)的數(shù)目 } DDB; 現(xiàn)代微機(jī)原理與接口技術(shù) 42 3. VxD的加載與卸載 動態(tài)加載 API函數(shù) 發(fā)的消息 功能 CreateFile Sys_Dynamic_Device_Init 加載 VxD DeviceIOControl W32_DeviceIOControl 與 VxD進(jìn)行交互處理 CloseHandle Sys_Dynamic_Device_Exit 卸載 VxD hDevice=CreateFile( \\\\.\\, 0, 0, 0, OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE, 0); DeviceIoControl( hDevice,DIOC_MY_IO, NULL, 0, NULL, 0, NULL,NULL); CloseHandle( hDevice); 現(xiàn)代微機(jī)原理與接口技術(shù) 43 靜態(tài)加載 現(xiàn)代微機(jī)原理與接口技術(shù) 44 Windows 2022/XP設(shè)備驅(qū)動程序設(shè)計 Windows 2022/XP的設(shè)備驅(qū)動程序 虛擬設(shè)備 驅(qū)動程序( VDD) 內(nèi)核模式 驅(qū)動程序 文件系統(tǒng) 驅(qū)動程序 保留設(shè)備 驅(qū)動程序 PnP 驅(qū)動程序 顯示 驅(qū)動程序 WDM驅(qū)動程序 類驅(qū)動程序 迷你驅(qū)動程序 可以使 DOS應(yīng)用程序訪問 x86平臺上的硬件,也可以支持indows 9x下的對端口訪問 是一種遵循電源管理協(xié)議并能在 Windows 98和 Windows 2022間實(shí)現(xiàn)源代碼級兼容的PnP驅(qū)動程序 用于顯示和打印設(shè)備的內(nèi)核模式驅(qū)動程序 在本地硬盤或網(wǎng)絡(luò)上實(shí)現(xiàn)標(biāo)準(zhǔn) PC文件系統(tǒng)模型(包括多層次目錄結(jié)構(gòu)和命名文件概念) 主要包括 Windows NT早期版本的驅(qū)動程序,它直接控制一個硬設(shè)備而不用其他驅(qū)動程序幫助,可以不做修改地在 Windows 2022中運(yùn)行 現(xiàn)代微機(jī)原理與接口技術(shù) 45 WDM的基本結(jié)構(gòu) 1. 基本概念 設(shè)備對象 :系統(tǒng)為幫助軟件管理硬件而創(chuàng)建的一個數(shù)據(jù)結(jié)構(gòu)。 過濾器設(shè)備對象 :簡稱 FiDOs, 在 FDO的上面或下面,分別稱為上層過濾器和下層過濾器。 過濾器驅(qū)動程序 :用于監(jiān)視和修改 IRP流。如 PCI總線驅(qū)動程序。 通常一個 I/O請求包 (IRP)先被送到設(shè)備對象棧的最上層驅(qū)動程序然后逐漸過濾到下面的驅(qū)動程序。 I/O管理器接收到一個 I/O請求后,在把它傳遞到合適的驅(qū)動程序棧中的最高驅(qū)動程序之前,分配并初始化一個 IRP。能創(chuàng)建 IRP的函數(shù)有: 現(xiàn)代微機(jī)原理與接口技術(shù) 55 在創(chuàng)建一個 IRP時,同時還創(chuàng)建了一個與之關(guān)聯(lián)的IO_STACK_LOCATION結(jié)構(gòu)數(shù)組,它是 I/O棧中的一項,它包含的成員包括 : ? MajorFunction(該 IRP的主功能碼) ? MinorFunction(該 IRP的副功能碼) ? Parameters( IRP參數(shù)) ? DeviceObject(與該棧單元對應(yīng)的設(shè)備對象地址) ? FileObject(內(nèi)核文件對象地址) ? CompletionRoutine( I/O完成程序地址) ? Context(任意的與上下文相關(guān)的值)。 返回 Driverentry 返回 現(xiàn)代微機(jī)原理與接口技術(shù) 60 WDM驅(qū)動程序的結(jié)構(gòu) WDM驅(qū)動程序包含許多函數(shù)(例程),操作系統(tǒng)調(diào)用這些例程來執(zhí)行對 IRP的各種操作。 ? AddDevice函數(shù): 對于功能驅(qū)動程序,其 AddDevice函數(shù)的基本職責(zé)是創(chuàng)建一個設(shè)備對象并把它連接到以PDO為底的設(shè)備堆棧中。 現(xiàn)代微機(jī)原理與接口技術(shù) 62 下面是一段 DriverEntry程序的片段 : extern C NTSTATUS DriverEntry ( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath) { // 初始化函數(shù)的入口地址 DriverObjectDriverUnload = DriverUnload; DriverObjectDriverExtensionAddDevice = AddDevice; DriverObjectDriverStartIo = StartIo; DriverObjectMajorFunction[IRP_MJ_PNP] = DispatchPnp; DriverObjectMajorFunction[IRP_MJ_POWER]= DispatchPower; DriverObjectMajorFunction[IRP_MJ_SYSTEM_CONTROL] = DispatchWmi; …… // 這里可以加入其他 MajorFunction處理函數(shù)的入口地址 返回 現(xiàn)代微機(jī)原理與接口技術(shù) 63 // 如果驅(qū)動程序需要訪問設(shè)備的服務(wù)鍵,則備份 RegistryPath =( PWSTR) ExAllocatePool( PagedPool, RegistryPathLength+ sizeof( WCHAR)); if( !) return STATUS_INSUFFICIENT_RESOURCES; = RegistryPathLength + sizeof(WCHAR); RtlCopyUnicodeString( amp。 3. 設(shè)置 IRP中的主功能代碼和對 IRP棧做各種初始化工作。這個 PnP IRP有 8個次功能代碼(它們的主功能代碼都是 IRP_MJ_PNP)。 IRP_MN_REMOVE_DEVICE 設(shè)備被拔出,刪除設(shè)備 IRP_MN_CANCEL_STOP_DEVICE 取消查詢停止請求 配置中斷資源是在 StartDevice函數(shù)中實(shí)現(xiàn)的,使用從CmResourceTypeInterrupt描述符中得到的參數(shù)來調(diào)用IoConnectInterrupt函數(shù)。 驅(qū)動程序可執(zhí)行文件被復(fù)制到正確的位置,通常是Winnt\System32\Drivers目錄,然后創(chuàng)建各種注冊表項。 Windows 2022DDK定義了這些代碼 ,如代碼 10表示 Windows目錄 [filelist] 要安裝的文件列表 [addreg] 添加新的鍵和值 。 現(xiàn)代微機(jī)原理與接口技術(shù) 74 節(jié) 項 值 描 述 [Version] Signature Provider Class ClassGuid DriverVer $Windows NT$, $Windows 95$ 或$Chicago$ INF文件創(chuàng)建者 系統(tǒng)定義的類名字 , 或用戶指定的新的類名字 匹配的類 GUID 驅(qū)動程序的版本號 [Strings] %String%=”Value” 指定一個字符串 [Manufacturer] %manufacturer%=models 指定廠商名和對應(yīng)的 models節(jié)的名稱 [models] 指定產(chǎn)品名稱 、 對應(yīng)的 install節(jié)的名稱和硬件 ID, 0個或多個兼容 ID 現(xiàn)代微機(jī)原理與接口技術(shù) 75 節(jié) 項 值 描 述 [install] Copyfiles=filename | filelist Addreg=addreg ProfileItems 指定要復(fù)制的文件 , 或列出 filelist節(jié)的名稱 指定 addreg節(jié)的名稱 列出指定要添加到 “ 開始 ” 菜單中的項 [DestinationDirs] DefaultDestDir=dirid,[subdir] filelist= dirid,[subdir] 對默認(rèn)文件復(fù)制和 filelist節(jié)中的文件復(fù)制 , 指定目錄 ID和可選的子目錄 。 現(xiàn)代微機(jī)原理與接口技術(shù) 73 WDM驅(qū)動程序的安裝文件 驅(qū)動程序根據(jù) INF文件中的指令安裝。無論是單獨(dú)編址還是統(tǒng)一編址,只需要使用下表 8中所給的函數(shù)就可以訪問端口和內(nèi)存了。 IRP_MN_STOP_DEVICE 停止設(shè)備進(jìn)行資源重新分配 IRP_MN_START_DEVICE 分配資源并啟動設(shè)備 5. 執(zhí)行有關(guān)的派遣程序, 實(shí)際處理對 IPR的操作 。fdo) ; //在 fdo中產(chǎn)生我們的功能設(shè)備對象 if( NT_ERROR( status)) Return status; …… } 現(xiàn)代微機(jī)原理與接口技術(shù) 65 下面是 IRP派遣函數(shù)的一個框架: NTSTATUS DispatchXxx( PDEVICE_OBJECT device, PIRP Irp) { PIO_STACK_LOCATION stack = IoGetCurrentIrpStackLocation( Irp) ; //獲得棧單元指針 PDEVICE_EXTENSION pdx = ( PDEVICE_EXTENSION ) deviceDeviceExtension; //獲得設(shè)備擴(kuò)展 …… //其他 IRP處理操作 return STATUS_Xxx; //返回狀態(tài)碼 }
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1