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

正文內(nèi)容

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

2025-10-13 18:47 上一頁面

下一頁面
 

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