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

正文內容

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