亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

Irp

  • 介紹了驅(qū)動開發(fā)中取消Irp請求的想過操作。

    介紹了驅(qū)動開發(fā)中取消Irp請求的想過操作。

    標(biāo)簽: Irp 驅(qū)動開發(fā) 操作

    上傳時間: 2017-04-12

    上傳用戶:lacsx

  • 不必多說,驅(qū)動開發(fā)必需弄懂的概念之一,Irp,I/O Request Packets

    不必多說,驅(qū)動開發(fā)必需弄懂的概念之一,Irp,I/O Request Packets

    標(biāo)簽: Request Packets Irp 驅(qū)動開發(fā)

    上傳時間: 2013-12-10

    上傳用戶:sz_hjbf

  • 匯編語言教程.rar

    一本很好的匯編語言教程,跟大家一起分享 課程介紹 第1章 預(yù)備知識  1.1 匯編語言的由來及其特點(diǎn)   1 機(jī)器語言   2 匯編語言   3 匯編程序   4 匯編語言的主要特點(diǎn)   5 匯編語言的使用領(lǐng)域  1.2 數(shù)據(jù)的表示和類型   1 數(shù)值數(shù)據(jù)的表示   2 非數(shù)值數(shù)據(jù)的表示   3 基本的數(shù)據(jù)類型  1.3 習(xí)題 第2章 CPU資源和存儲器  2.1 寄存器組   1 寄存器組   2 通用寄存器的作用   3 專用寄存器的作用  2.2 存儲器的管理模式   1 16位微機(jī)的內(nèi)存管理模式   2 32位微機(jī)的內(nèi)存管理模式  2.3 習(xí)題 第3章 操作數(shù)的尋址方式  3.1 立即尋址方式  3.2 寄存器尋址方式  3.3 直接尋址方式  3.4 寄存器間接尋址方式  3.5 寄存器相對尋址方式  3.6 基址加變址尋址方式  3.7 相對基址加變址尋址方式  3.8 32位地址的尋址方式  3.9 操作數(shù)尋址方式的小結(jié)  3.10 習(xí)題 第4章 標(biāo)識符和表達(dá)式  4.1 標(biāo)識符  4.2 簡單內(nèi)存變量的定義   1 內(nèi)存變量定義的一般形式   2 字節(jié)變量   3 字變量   4 雙字變量   5 六字節(jié)變量   6 八字節(jié)變量   7 十字節(jié)變量  4.3 調(diào)整偏移量偽指令   1 偶對齊偽指令   2 對齊偽指令   3 調(diào)整偏移量偽指令   4 偏移量計(jì)數(shù)器的值  4.4 復(fù)合內(nèi)存變量的定義   1 重復(fù)說明符   2 結(jié)構(gòu)類型的定義   3 聯(lián)合類型的定義   4 記錄類型的定義   5 數(shù)據(jù)類型的自定義  4.5 標(biāo)號  4.6 內(nèi)存變量和標(biāo)號的屬性   1 段屬性操作符   2 偏移量屬性操作符   3 類型屬性操作符   4 長度屬性操作符   5 容量屬性操作符   6 強(qiáng)制屬性操作符   7 存儲單元別名操作符  4.7 表達(dá)式   1 進(jìn)制偽指令   2 數(shù)值表達(dá)式   3 地址表達(dá)式  4.8 符號定義語句   1 等價語句   2 等號語句   3 符號名定義語句  4.9 習(xí)題 第5章 微機(jī)CPU的指令系統(tǒng)  5.1 匯編語言指令格式   1 指令格式   2 了解指令的幾個方面  5.2 指令系統(tǒng)   1 數(shù)據(jù)傳送指令   2 標(biāo)志位操作指令   3 算術(shù)運(yùn)算指令   4 邏輯運(yùn)算指令   5 移位操作指令   6 位操作指令   7 比較運(yùn)算指令   8 循環(huán)指令   9 轉(zhuǎn)移指令   10 條件設(shè)置字節(jié)指令   11 字符串操作指令   12 ASCII-BCD碼調(diào)整指令   13 處理器指令  5.3 習(xí)題 第6章 程序的基本結(jié)構(gòu)  6.1 程序的基本組成   1 段的定義   2 段寄存器的說明語句   3 堆棧段的說明   4 源程序的結(jié)構(gòu)  6.2 程序的基本結(jié)構(gòu)   1 順序結(jié)構(gòu)   2 分支結(jié)構(gòu)   3 循環(huán)結(jié)構(gòu)  6.3 段的基本屬性   1 對齊類型   2 組合類型   3 類別   4 段組  6.4 簡化的段定義   1 存儲模型說明偽指令   2 簡化段定義偽指令   3 簡化段段名的引用  6.5 源程序的輔助說明偽指令   1 模塊名定義偽指令   2 頁面定義偽指令   3 標(biāo)題定義偽指令   4 子標(biāo)題定義偽指令  6.6 習(xí)題 第7章 子程序和庫  7.1 子程序的定義  7.2 子程序的調(diào)用和返回指令   1 調(diào)用指令   2 返回指令  7.3 子程序的參數(shù)傳遞   1 寄存器傳遞參數(shù)   2 存儲單元傳遞參數(shù)   3 堆棧傳遞參數(shù)  7.4 寄存器的保護(hù)與恢復(fù)  7.5 子程序的完全定義   1 子程序完全定義格式   2 子程序的位距   3 子程序的語言類型   4 子程序的可見性   5 子程序的起始和結(jié)束操作   6 寄存器的保護(hù)和恢復(fù)   7 子程序的參數(shù)傳遞   8 子程序的原型說明   9 子程序的調(diào)用偽指令   10 局部變量的定義  7.6 子程序庫   1 建立庫文件命令   2 建立庫文件舉例   3 庫文件的應(yīng)用   4 庫文件的好處  7.7 習(xí)題 第8章 輸入輸出和中斷  8.1 輸入輸出的基本概念   1 I/O端口地址   2 I/O指令  8.2 中斷   1 中斷的基本概念   2 中斷指令   3 中斷返回指令   4 中斷和子程序  8.3 中斷的分類   1 鍵盤輸入的中斷功能   2 屏幕顯示的中斷功能   3 打印輸出的中斷功能   4 串行通信口的中斷功能   5 鼠標(biāo)的中斷功能   6 目錄和文件的中斷功能   7 內(nèi)存管理的中斷功能   8 讀取和設(shè)置中斷向量  8.4 習(xí)題 第9章 宏  9.1 宏的定義和引用   1 宏的定義   2 宏的引用   3 宏的參數(shù)傳遞方式   4 宏的嵌套定義   5 宏與子程序的區(qū)別  9.2 宏參數(shù)的特殊運(yùn)算符   1 連接運(yùn)算符   2 字符串整體傳遞運(yùn)算符   3 字符轉(zhuǎn)義運(yùn)算符   4 計(jì)算表達(dá)式運(yùn)算符  9.3 與宏有關(guān)的偽指令   1 局部標(biāo)號偽指令   2 取消宏定義偽指令   3 中止宏擴(kuò)展偽指令  9.4 重復(fù)匯編偽指令   1 偽指令REPT   2 偽指令Irp   3 偽指令IrpC  9.5 條件匯編偽指令   1 條件匯編偽指令的功能   2 條件匯編偽指令的舉例  9.6 宏的擴(kuò)充   1 宏定義形式   2 重復(fù)偽指令REPEAT   3 循環(huán)偽指令WHILE   4 循環(huán)偽指令FOR   5 循環(huán)偽指令FORC   6 轉(zhuǎn)移偽指令GOTO   7 宏擴(kuò)充的舉例   8 系統(tǒng)定義的宏  9.7 習(xí)題 第10章 應(yīng)用程序的設(shè)計(jì)  10.1 字符串的處理程序  10.2 數(shù)據(jù)的分類統(tǒng)計(jì)程序  10.3 數(shù)據(jù)轉(zhuǎn)換程序  10.4 文件操作程序  10.5 動態(tài)數(shù)據(jù)的編程  10.6 COM文件的編程  10.7 駐留程序  10.8 程序段前綴及其應(yīng)用   1 程序段前綴的字段含義   2 程序段前綴的應(yīng)用  10.9 習(xí)題 第11章 數(shù)值運(yùn)算協(xié)處理器  11.1 協(xié)處理器的數(shù)據(jù)格式   1 有符號整數(shù)   2 BCD碼數(shù)據(jù)   3 浮點(diǎn)數(shù)  11.2 協(xié)處理器的結(jié)構(gòu)  11.3 協(xié)處理器的指令系統(tǒng)   1 操作符的命名規(guī)則   2 數(shù)據(jù)傳送指令   3 數(shù)學(xué)運(yùn)算指令   4 比較運(yùn)算指令   5 超越函數(shù)運(yùn)算指令   6 常數(shù)操作指令   7 協(xié)處理器控制指令  11.4 協(xié)處理器的編程舉例  11.5 習(xí)題 第12章 匯編語言和C語言  12.1 匯編語言的嵌入  12.2 C語言程序的匯編輸出  12.3 一個具體的例子  12.4 習(xí)題 附錄

    標(biāo)簽: 匯編語言 教程

    上傳時間: 2013-07-05

    上傳用戶:hw1688888

  • 驅(qū)動程序與應(yīng)用程序的接口

    有兩種方式可以讓設(shè)備和應(yīng)用程序之間聯(lián)系:1. 通過為設(shè)備創(chuàng)建的一個符號鏈;2. 通過輸出到一個接口WDM驅(qū)動程序建議使用輸出到一個接口而不推薦使用創(chuàng)建符號鏈的方法。這個接口保證PDO的安全,也保證安全地創(chuàng)建一個惟一的、獨(dú)立于語言的訪問設(shè)備的方法。一個應(yīng)用程序使用Win32APIs來調(diào)用設(shè)備。在某個Win32 APIs和設(shè)備對象的分發(fā)函數(shù)之間存在一個映射關(guān)系。獲得對設(shè)備對象訪問的第一步就是打開一個設(shè)備對象的句柄。 用符號鏈打開一個設(shè)備的句柄為了打開一個設(shè)備,應(yīng)用程序需要使用CreateFile。如果該設(shè)備有一個符號鏈出口,應(yīng)用程序可以用下面這個例子的形式打開句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3",  GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ,  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路徑名的前綴“\\.\”告訴系統(tǒng)本調(diào)用希望打開一個設(shè)備。這個設(shè)備必須有一個符號鏈,以便應(yīng)用程序能夠打開它。有關(guān)細(xì)節(jié)查看有關(guān)Kdevice和CreateLink的內(nèi)容。在上述調(diào)用中第一個參數(shù)中前綴后的部分就是這個符號鏈的名字。注意:CreatFile中的第一個參數(shù)不是Windows 98/2000中驅(qū)動程序(.sys文件)的路徑。是到設(shè)備對象的符號鏈。如果使用DriverWizard產(chǎn)生驅(qū)動程序,它通常使用類KunitizedName來構(gòu)成設(shè)備的符號鏈。這意味著符號鏈名有一個附加的數(shù)字,通常是0。例如:如果鏈接名稱的主干是L“TestDevice”那么在CreateFile中的串就該是“\\\\.\\TestDevice0”。如果應(yīng)用程序需要被覆蓋的I/O,第六個參數(shù)(Flags)必須或上FILE_FLAG_OVERLAPPED。 使用一個輸出接口打開句柄用這種方式打開一個句柄會稍微麻煩一些。DriverWorks庫提供兩個助手類來使獲得對該接口的訪問容易一些,這兩個類是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass類封裝了一個設(shè)備信息集,該信息集包含了特殊類中的所有設(shè)備接口信息。應(yīng)用程序能有用CdeviceInterfaceClass類的一個實(shí)例來獲得一個或更多的CdeviceInterface類的實(shí)例。CdeviceInterface類是一個單一設(shè)備接口的抽象。它的成員函數(shù)DevicePath()返回一個路徑名的指針,該指針可以在CreateFile中使用來打開設(shè)備。下面用一個小例子來顯示這些類最基本的使用方法:extern GUID TestGuid;HANDLE OpenByInterface(  GUID* pClassGuid,  DWORD instance,  PDWORD pError){  CDeviceInterfaceClass DevClass(pClassGuid, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  CDeviceInterface DevInterface(&DevClass, instance, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  cout << "The device path is "    << DevInterface.DevicePath()    << endl;   HANDLE hDev;  hDev = CreateFile(   DevInterface.DevicePath(),    GENERIC_READ | GENERIC_WRITE,    FILE_SHARE_READ | FILE_SHARE_WRITE,    NULL,    OPEN_EXISTING,    FILE_ATTRIBUTE_NORMAL,    NULL  );  if (hDev == INVALID_HANDLE_VALUE)    *pError = GetLastError();  return hDev;} 在設(shè)備中執(zhí)行I/O操作一旦應(yīng)用程序獲得一個有效的設(shè)備句柄,它就能使用Win32 APIs來產(chǎn)生到設(shè)備對象的Irps。下面的表顯示了這種對應(yīng)關(guān)系。Win32 API  DRIVER_FUNCTION_xxxIrp_MJ_xxx  KDevice subclass member function CreateFile  CREATE  Create ReadFile  READ  Read WriteFile  WRITE  Write DeviceIoControl  DEVICE_CONTROL  DeviceControl CloseHandle  CLOSECLEANUP  CloseCleanUp 需要解釋一下設(shè)備類成員的Close和CleanUp:CreateFile使內(nèi)核為設(shè)備創(chuàng)建一個新的文件對象。這使得多個句柄可以映射同一個文件對象。當(dāng)這個文件對象的最后一個用戶級句柄被撤銷后,I/O管理器調(diào)用CleanUp。當(dāng)沒有任何用戶級和核心級的對文件對象的訪問的時候,I/O管理器調(diào)用Close。如果被打開的設(shè)備不支持指定的功能,則調(diào)用相應(yīng)的Win32將引起錯誤(無效功能)。以前為Windows95編寫的VxD的應(yīng)用程序代碼中可能會在打開設(shè)備的時候使用FILE_FLAG_DELETE_ON_CLOSE屬性。在Windows NT/2000中,建議不要使用這個屬性,因?yàn)樗鼘?dǎo)致沒有特權(quán)的用戶企圖打開這個設(shè)備,這是不可能成功的。I/O管理器將ReadFile和WriteFile的buff參數(shù)轉(zhuǎn)換成Irp域的方法依賴于設(shè)備對象的屬性。當(dāng)設(shè)備設(shè)置DO_DIRECT_IO標(biāo)志,I/O管理器將buff鎖住在存儲器中,并且創(chuàng)建了一個存儲在Irp中的MDL域。一個設(shè)備可以通過調(diào)用KIrp::Mdl來存取MDL。當(dāng)設(shè)備設(shè)置DO_BUFFERED_IO標(biāo)志,設(shè)備對象分別通過KIrp::BufferedReadDest或 KIrp::BufferedWriteSource為讀或?qū)懖僮鳙@得buff地址。當(dāng)設(shè)備不設(shè)置DO_BUFFERED_IO標(biāo)志也不設(shè)置DO_DIRECT_IO,內(nèi)核設(shè)置Irp 的UserBuffer域來對應(yīng)ReadFile或WriteFile中的buff參數(shù)。然而,存儲區(qū)并沒有被鎖住而且地址只對調(diào)用進(jìn)程有效。驅(qū)動程序可以使用KIrp::UserBuffer來存取Irp域。對于DeviceIoControl調(diào)用,buffer參數(shù)的轉(zhuǎn)換依賴于特殊的I/O控制代碼,它不在設(shè)備對象的特性中。宏CTL_CODE(在winioctl.h中定義)用來構(gòu)造控制代碼。這個宏的其中一個參數(shù)指明緩沖方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表顯示了這些方法和與之對應(yīng)的能獲得輸入緩沖與輸出緩沖的KIrp中的成員函數(shù):Method  Input Buffer Parameter  Output Buffer Parameter METHOD_BUFFERED  KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_NEITHER  KIrp::IoctlType3InputBuffer KIrp::UserBuffer 如果控制代碼指明METHOD_BUFFERED,系統(tǒng)分配一個單一的緩沖來作為輸入與輸出。驅(qū)動程序必須在向輸出緩沖放數(shù)據(jù)之前拷貝輸入數(shù)據(jù)。驅(qū)動程序通過調(diào)用KIrp::IoctlBuffer獲得緩沖地址。在完成時,I/O管理器從系統(tǒng)緩沖拷貝數(shù)據(jù)到提供給Ring 3級調(diào)用者使用的緩沖中。驅(qū)動程序必須在結(jié)束前存儲拷貝到Irp的Information成員中的數(shù)據(jù)個數(shù)。如果控制代碼不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,則DeviceIoControl的參數(shù)呈現(xiàn)不同的含義。參數(shù)InputBuffer被拷貝到一個系統(tǒng)緩沖,這個緩沖驅(qū)動程序可以通過調(diào)用KIrp::IoctlBuffer。參數(shù)OutputBuffer被映射到KMemory對象,驅(qū)動程序?qū)@個對象的訪問通過調(diào)用KIrp::Mdl來實(shí)現(xiàn)。對于METHOD_OUT_DIRECT,調(diào)用者必須有對緩沖的寫訪問權(quán)限。注意,對METHOD_NEITHER,內(nèi)核只提供虛擬地址;它不會做映射來配置緩沖。虛擬地址只對調(diào)用進(jìn)程有效。這里是一個用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE來定義一個IOCTL代碼:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)現(xiàn)在使用一個DeviceIoControl調(diào)用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING,  NULL, // no input  注意,這里放的是包含有執(zhí)行操作命令的字符串指針  0, FirmwareRev,      //這里是output串指針,存放從驅(qū)動程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize,  NULL // not overlapped I/O );如果輸出緩沖足夠大,設(shè)備拷貝串到里面并將拷貝的資結(jié)束設(shè)置到FirmwareRevSize中。在驅(qū)動程序中,代碼看起來如下所示:const char* FIRMWARE_REV = "FW 16.33 v5";NTSTATUS MyDevice::DeviceControl( KIrp I ){  ULONG fwLength=0;  switch ( I.IoctlCode() )  {    case IOCTL_MYDEV_GET_FIRMWARE_REV:      fwLength = strlen(FIRMWARE_REV)+1;      if (I.IoctlOutputBufferSize() >= fwLength)      {        strcpy((PCHAR)I.IoctlBuffer(),FIRMWARE_REV);        I.Information() = fwLength;         return I.Complete(STATUS_SUCCESS);      }      else      {              }    case . . .   } }

    標(biāo)簽: 驅(qū)動程序 應(yīng)用程序 接口

    上傳時間: 2013-10-17

    上傳用戶:gai928943

  • CharFilter_Class實(shí)例是對CharFilter實(shí)例的完善。在CharFilter實(shí)例中

    CharFilter_Class實(shí)例是對CharFilter實(shí)例的完善。在CharFilter實(shí)例中,我們定義了四個全局變量,這不符合WDM驅(qū)動程序的要求,它限制了Irp的可重入性,我們應(yīng)該使用局部變量。 該實(shí)例定義了一個READ_COMPLETION_INFO結(jié)構(gòu),當(dāng)有DeviceControl 調(diào)用時,就分配一個結(jié)構(gòu)對象,參數(shù)設(shè)置完后,就將該結(jié)構(gòu)對象地址指針放在I.FileObject()->FsContext中。

    標(biāo)簽: CharFilter CharFilter_Class

    上傳時間: 2014-01-22

    上傳用戶:watch100

  • 用戶態(tài)使用Win32 CreateFile訪問驅(qū)動程序

    用戶態(tài)使用Win32 CreateFile訪問驅(qū)動程序,dwShareMode為0時來請求獨(dú)占內(nèi)核對象在設(shè)備對象DEVICE_OBJECT結(jié)構(gòu)中存儲設(shè)備的信息,對于與設(shè)備的每個交互,相關(guān)的DEVICE_OBJECT被傳遞給驅(qū)動的回調(diào)例程。,但是開發(fā)者可以擴(kuò)展設(shè)備結(jié)構(gòu),稱為設(shè)備擴(kuò)展 在PnP Irp中我們加載設(shè)備NTSTATUS Wdm1AddDevice( IN PDRIVER_OBJECT DriverObject,

    標(biāo)簽: CreateFile Win 32 用戶

    上傳時間: 2014-01-03

    上傳用戶:luopoguixiong

  • slwqw_Irp說明

    slwqw_Irp說明,讓你了解Irp的內(nèi)部結(jié)構(gòu),傳遞流程,以及注意事項(xiàng)。

    標(biāo)簽: slwqw_Irp

    上傳時間: 2016-01-29

    上傳用戶:上善若水

  • 本書主要介紹DriverStudio開發(fā)工具開發(fā)Windows 2000/XP下的WDM設(shè)備驅(qū)動程序的原理及編程方法。本書詳細(xì)介紹了WDM基本程序框架和編程

    本書主要介紹DriverStudio開發(fā)工具開發(fā)Windows 2000/XP下的WDM設(shè)備驅(qū)動程序的原理及編程方法。本書詳細(xì)介紹了WDM基本程序框架和編程,Irp的基本概念及編程,WDM和應(yīng)用程序之間的通信、即插即用、電源管理、WMI的編程技術(shù),Irp串行處理、過濾器驅(qū)動程序,WDM訪問硬件設(shè)備、處理硬件中斷、實(shí)現(xiàn)DMA操作的編程技術(shù),以及大量的基本編程技術(shù),還USB接口和PCI接口設(shè)備驅(qū)動程序WDM的開發(fā)。   

    標(biāo)簽: DriverStudio WDM Windows 2000

    上傳時間: 2016-05-20

    上傳用戶:love_stanford

  • 本方案為解決當(dāng)前企業(yè)信息化建設(shè)中"信息孤島"叢生、信息流不暢通、信息不能共享的瓶頸問題

    本方案為解決當(dāng)前企業(yè)信息化建設(shè)中"信息孤島"叢生、信息流不暢通、信息不能共享的瓶頸問題,強(qiáng)調(diào)首先搞好信息資源規(guī)劃(Information Resource Planning,簡稱Irp),建立全企業(yè)的信息資源管理(Information Resource Management,簡稱IRM)基礎(chǔ)標(biāo)準(zhǔn),通過需求分析建立集成化信息系統(tǒng)的功能模型、數(shù)據(jù)模型和系統(tǒng)體系結(jié)構(gòu)模型,然后再實(shí)施通信-計(jì)算機(jī)網(wǎng)絡(luò)工程、數(shù)據(jù)庫工程和應(yīng)用軟件工程。

    標(biāo)簽: 方案 企業(yè)信息 瓶頸

    上傳時間: 2014-01-23

    上傳用戶:風(fēng)之驕子

  • 虛擬串口設(shè)備源碼

    虛擬串口設(shè)備源碼,虛擬的串口為com7,回應(yīng)com口標(biāo)準(zhǔn)的Irp.

    標(biāo)簽: 虛擬串口 源碼 設(shè)備

    上傳時間: 2016-10-01

    上傳用戶:541657925

主站蜘蛛池模板: 得荣县| 甘德县| 周至县| 临泽县| 文登市| 武乡县| 开鲁县| 舟曲县| 雅江县| 称多县| 阿拉善右旗| 旅游| 玉门市| 金湖县| 高尔夫| 松阳县| 永善县| 肥西县| 沁源县| 崇明县| 仙桃市| 司法| 云龙县| 盈江县| 井冈山市| 沅江市| 蒙自县| 益阳市| 海原县| 嘉黎县| 焉耆| 濮阳市| 汉寿县| 昭苏县| 东阿县| 永川市| 涿州市| 吉林省| 临潭县| 筠连县| 泌阳县|