青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 60  文章 - 5  trackbacks - 0
<2009年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(2)

隨筆分類(42)

隨筆檔案(60)

文章檔案(2)

我收藏的博客

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

在WindowsXP sp2以后,鑒于安全方面的考慮,XP的網絡共享僅啟用了簡單的共享模式;用戶若要自義共享則會遇到這樣或那樣的問題,不是找不到網絡名就是權限不夠。
    對于網絡共享,XP提供了兩種模式:一種是簡單的共享模式,一種是高級的共享模式(即經典模式),第一種模式的共享默認只能使用來賓帳戶身份來訪問,而 XP的來賓帳戶恰好是禁用的,所以在這種模式下的共享肯定是不成功的;那么經典共享模式則允許高級用戶以自己的身份去訪問網絡,用戶權限足夠的話也可以對網絡上的文件進行改寫等操作。

下面就如何開啟XP的經典共享模式作一下簡單的介紹,共享筆者的經驗,以減少大家不必要的麻煩。

1.首先打開運行對話框,鍵入:gpedit.msc ,進入組策略編輯器,
2.依次展開 計算機配置 —〉Windows設置—〉安全設置—〉本地策略—〉安全選項,
3.在策略列表中找到 “網絡訪問:本地帳戶的共享和安全模式”,
4.雙擊打開該條策略的屬性對話框,選擇“經典—本地用戶以自己的身份驗證”。

至此,我們已成功開啟XP的經典共享模式。
posted @ 2009-05-31 16:49 黃劍父 閱讀(240) | 評論 (0)編輯 收藏
GlobalAlloc是標準內存管理函數,標準內存管理函數都是操作進程的默認堆,所以這個函數是從進程的從進程的默認堆中分配內存空間,分配的空間可以是可移動的也可以是不可以移動的。可移動的內存是指windows在需要的時候可以將這個內存移動到另外一個地址  
   
  HeapAllock是堆管理函數,堆管理函數可以操作非默認堆(當然也可以操作默認堆),創建一個堆是用HeapCreate,這個函數返回一個堆句柄,然后可以用在HeapAllock函數中,即從返回的這個堆中申請內存空間,HeapAllock申請的內存只能是不可以移動的  
   
  而new則是c++的標準函數,在windows的vc++編譯器中,new在申請內存最終調用的是GlabalAllock,不過new還會調用類的構造函數。  
   
  windows的內存管理除了標準內存管理函數和堆管理函數之外,還有更加底層的虛擬內存管理函數,VirtualAllock就是一個虛擬內存管理函數。
posted @ 2009-05-31 16:46 黃劍父 閱讀(162) | 評論 (0)編輯 收藏

物理地址是外部連接使用的、唯一的,它是“與地址總線相對應”;而邏輯地址是內部和編程使用的、并不唯一。 在內存中的實際地址就是所謂的“物理地址”,而邏輯地址就是邏輯段管理內存而形成的。 例如,你在進行C語言指針編程中,可以讀取指針變量本身值(&操作),實際上這個值就是邏輯地址,它是相對于你當前進程數據段的地址(偏移地址),不和絕對物理地址相干。只有在Intel實模式下,邏輯地址才和物理地址相等(因為實模式沒有分段或分頁機制,Cpu不進行自動地址轉換),邏輯地址也就是Intel 保護模式下程序執行代碼段限長內的偏移地址(假定代碼段、數據段如果完全一樣)。8086體系的CPU一開始是20根地址線, 尋址寄存器是16位, 16位的寄存器可以訪問64K的地址空間, 如果程序要想訪問大于64K的內存, 就要把內存分段, 每段64K, 用段地址+偏移量的方法來訪問 。386CPU出來之后, 采用了32條地址線, 地址寄存器也擴為32位, 這樣就可以不用分段了, 直接用一個地址寄存器來線性訪問4G的內存了. 這就叫平面模式.

邏輯地址中的段地址左移4位,加上偏移地址就得到20位物理地址這里左移的4位是二進制位如果用十六進制表達地址就是左移一位。左移4位還可以表達為乘以16,即:段地址×16+偏移地址。
同一個物理地址可以對應多個邏輯地址形式。所以物理地址轉換為邏輯地址,需要明確段基地址或偏移地址,然后同上原則確定另一個地址。
邏輯地址 1460H : 0100H 或1380H : 0900H
物理地址 14700H
于是,對于主存14700H單元,我們可以描述為在1460H(或1380H)段的0100H(或0900H)單元,或者說主存1460H : 0100H(或1380H : 0900H)單元。

存儲單元的地址可以用段基值和段內偏移量來表示,段基值確定它所在的段居于整個存儲空間的位置,偏移量確定它在段內的位置,這種地址表示方式稱為邏輯地址

8086對外連接使用一個20位的線性地址唯一確定一個存儲單元,也就是說:對于每個存儲器單元都有的一個唯一的20位地址,我們稱為該單元的物理地址絕對地址

8086在內部結構中和程序設計時采用邏輯段管理內存,就形成了邏輯地址。它的表達形式為“段基地址 : 偏移地址”。

posted @ 2009-05-31 16:05 黃劍父 閱讀(594) | 評論 (0)編輯 收藏
【DriverEntry】
Each driver must have a [DriverEntry] routine,which initializes driver-wide data structures and resources.The I/O manager calls the DriverEntry routine when it loads the driver.
DriverEntry is the first routine called after a driver loaded,and is responsible for initializing the driver.
DriverEntry routine are called in the context of a system thread at IRQL=PASSIVE_LEVEL.


posted @ 2009-05-31 14:25 黃劍父 閱讀(159) | 評論 (0)編輯 收藏
__try Begins a guarded body of code. Used with the __except keyword to construct an exception handler, or with the __finally keyword to construct a termination handler.
__except Begins a block of code that is executed only when an exception occurs within its associated __try block.
__finally Begins a block of code that is executed whenever the flow of control leaves its associated __try block.
__leave Allows for immediate termination of the __try block without causing abnormal termination and its performance penalty.
posted @ 2009-05-31 14:24 黃劍父 閱讀(1786) | 評論 (0)編輯 收藏
近四百年來,西方文化成為引領世界的主流。我們一直在說民族復興,在想我們古代的四大發明,特別是說到火藥,西方人利用火藥,打開了我們的國門,掠奪了中華民族的物質財富。我們自己卻在用火藥放鞭炮,煙花。到現在我們至今仍然落后于西方國家。如今冷靜下來,稍微算一算賬,發現西方主導的結果,竟然是浪費地球能源、破壞自然生態、漠視社會主義、欺壓弱勢族群。這才猛然覺醒,我們現在所談的民族復興的目標是什么。因為至今為止,所謂民族復興的目的、意義,我還不清楚。想想我們的先人創造的古文明,能夠經歷這么久遠,有一些古代的思想,《易經》、道家、儒家等等思想,還有人舍不得丟棄,是不是有另一番道理?我們在學習西方文化的同時,是不是也要好好拿起自家的東西,好好學習,好好研究。
特別是近代,我們在學習西方的時候,付出了什么樣的代價,帶給了我們什么樣的利益,為我們的民族復興做出了什么樣的貢獻,我想大家都應該好好的好好的想想。

posted @ 2009-05-20 22:24 黃劍父 閱讀(1141) | 評論 (0)編輯 收藏
ACE的構建(VC++6.0環境)
Windows下ACE的構建
1. 將ACE-5.5.zip解壓到所需的安裝目錄,此處以E:\為例,解壓后形成ACE_wrappers文件夾,因此ACE將會存在于ACE_wrappers\ace目錄中。ACE_ROOT=E:\ACE_wrappers。
2. 在系統中新建ACE_ROOT環境變量,值設為 E:\ACE_wrappers。具體設置為:我的電腦->屬性->高級->環境變量->新建
3. 在E:\ACE_wrappers\ace目錄中創建一個頭文件,命名為config.h,其內容為:
#include "ace/config-win32.h"(必選項)
#define ACE_HAS_STANDARD_CPP_LIBRARY 1 (MSVC自帶的標準C++頭文件)
#define ACE_HAS_MFC 1(與MFC一起使用)
#define ACE_NO_INLINE(取消函數內聯從而減小靜態庫和運行碼的大小)
#define ACE_AS_STATIC_LIBS(構建ACE的靜態版本)
#define ACE_HAS_WINNT4 0(在Windows 9x/me上構建所需,在ACE中移掉一些WinNT/Win2K中特有的代碼)
以上只需要添加前兩項就可以了。
4. 在VC++中加載ACE的工程文件(ACE_ROOT \ace\ace.dsw),在release和debug兩種編譯方式下進行編譯,得到相應的庫文件(ACE.dll、ACE.lib 和 ACEd.dll、ACEd.lib),其中ACE.dll 、ACE.lib是由release版生成的,ACEd.dll、ACEd.lib是由debug版生成的。具體操作方法:運行VC++,選擇Build ->Batch Build…,將ACE-Win32 Debug和ACE-Win32 Release全部選中,Rebuild All即可。如下圖所示:

按照上面的方法可能只編譯出ACE.dll 、ACE.lib庫文件,具體原因還不詳。按照下面的操作方法進行編譯可以成功生成全部庫文件。具體操作方法:Build->Set Active Configuration…分別選中ACE-Win32 Release進行編譯即可。如下圖所示

同樣打開ace_static.dsw編譯生成ACEs.lib、 ACEsd.lib、ACE_RMCasts.lib、ACE_RMCastsd.lib、TMCasts.lib、TMCastsd.lib

5. 配置ACE環境。 打開VC++6.0,選擇Tools->Options->Directories 加入以下內容:
1) Executable File:E:\ACE_wrappers\bin
2) Include File:E:\ACE_wrappers
3) Library Files:E:\ACE_wrappers\lib
4) Source Files:E:\ACE_wrappers
在編寫程序時要在Project->Settings菜單中進行如下設置:
C/C++選項卡:
Code Generation:選擇多線程版運行時庫(Multithreaded DLL)。
Preprocessor:在“Additional include directories”域中加入$ACE_ROOT。  
Link選項卡:
Input:在“Object/library modules”域中包含適當的ACE庫文件,在“Additional library
path”域中包含ACE庫鏈接文件的路徑。這通常是ACE_ROOT/ace。
其中 DLL debug對應ACEd.lib
    DLL release對應ACE.lib
    Static library debug對應ACEsd.lib
    Static library release對應ACEs.lib
    MFC DLL debug對應ACEmfcd.lib
    MFC DLL release對應ACEmfc.lib
   主要用到以上兩個庫。

6. 在系統環境的變量 path中加入E:\ACE_wrappers\bin,否則在運行程序的時候碰到尋找ace.dll或者aced.dll的問題。
7. 在MFC程序中使用時,應該在InitInstance()中添加:
WSDATA wsData;
WORD VerRequested = MAKEWORD (2, 2);
WSAStarup (VerRequested, &wsData)
注:可以在頭文件中加入如下代碼就不用再手動填加lib庫文件
#ifdef _DEBUG
#pragma comment (lib,"aced.lib")
#else
#pragma comment (lib,"ace.lib")
#endif
8. 在windows下release時有可能報錯,錯誤如下:
error C2039: 'TryEnterCriticalSection' : is not a member of '`global
error C2065: 'TryEnterCriticalSection' : undeclared identifier
解決辦法:
工程 Project-->setting-->C/C++   寫入:_WIN32_WINNT=0x0500
Linux 下ACE的構建
1. 設置環境變量ACE_ROOT,命令如下:
“vi /etc/profile” ,在“export PATH USER….”后加入4行
? ACE_ROOT=/opt/ACE
? export ACE_ROOT
? LD_LIBRARY_PATH=$ACE_ROOT/aceLD_LIBRARY_PATH
? export LD_LIBRARY_PATH
完 成后將/etc/profile執行一次,命令:“chmod 555 /etc/profile”,“/etc/profile”。這樣我們的ACE_ROOT就設置好了,可以用如下命令查看ACE_ROOT是否設置好了: “echo $ACE_ROOT” ,這個時候最好reboot啟動一次linux。
2. 解壓ACE.tar.gz包:
不 要自己手工將ACE.tar.gz包完全解開,特別強調不要完全解開,后面可以看到安裝腳本會給我們解開它的;如果你手工解開全部,安裝腳本將會將你的解 壓縮目錄刪除的!我們要做的事就只是將ACE.tar.gz包中的ACE-install.sh安裝腳本單獨解出來,并對其修改。我們只要這一個文件就可 以。用mkdir建目錄,如/home/my/ACE,然后將你的ACE.tar.gz放在此目錄下(用cp命令拷貝或mv命令移動到此目錄)。注意這個 目錄將是你的一個存放ACE.tar.gz的目錄,安裝腳本會來這個目錄找這個文件的,這個目錄和ACE_ROOT是不一樣的,且ACE- install.sh也提示不要將這兩個目錄設置成同一個目錄。ACE_ROOT將是我們的安裝目標目錄。
3. 從ACE.tar.gz解壓出單個文件ACE-install.sh,命令如下:
“tar –zxvf ACE+TAO+CIAO.tar.gz ACE_wrappers/ACE-install.sh”
解 好后,會出來一個新的子目錄“ACE_wrappers”。此時可以先將ACE-install.sh移到外面的目錄來:“mv /ACE_wrappers/ACE-install.sh .” “.”代表當前目錄。當然ACE-install.sh在什么路徑下是沒什么影響的,因為我們要對ACE-install.sh的內容進行修改的,里面有 很多路徑要修改。現在在/home/my/ACE就有了ACE-install.sh,我們現在用vi對其進行修改,修改前自己可以先備份一個。命令: “cp ACE-install.sh ACE-install.sh.bak”,“vi ACE-install.sh”先找到“MY_ACEDIR=${HOME}/aceconfig”,將其改成“MY_ACEDIR= /home/my/ACE”,就是改成我們自己建的、放有ACE.tar.gz文件的目錄,之后去掉前面的注釋“#”號。接著在下面一點,找到 “MY_ACE_CONFIG=config-sunos5.4-sunc++-4.x.h”,將其修改成“MY_ACE_CONFIG=config- linux.h”,即改成linux下的配置文件。繼續改,找到“MY_ACE_GNU_MACROS=platform_sunos5_sunc++. GNU”,將其改成“MY_ACE_GNU_MACROS=platform_linux.GNU”。這個是各種操作系統平臺下的GNU宏文件設置。文件 修改完畢,保存退出“:wq”。
4. 安裝ACE:
此時應該是在/home/my/ACE目錄下,我們執行: h./ACE-install.sh
此 后將是較長時間的解包、編譯等待時間。這個過程將不會出現任何錯誤,因為安裝腳本將為我們做很多事情,如:生成config.h,生成 platform_macros.GNU。我們不需要按ACE-install.html中說的手工改東西:不用做連接“ln -s config-sunos5-sunc++-4.x.h config.h”,安裝腳本會給我們做好;(題外話:Windows中沒有文件連接這一說,所以要自己生成一個config.h文件,再在它的里面加一 句話“#include "ace/config-win32.h"”。)
如果編譯中出現錯誤,如“../apps/gperf”等,請編輯$ACE_ROOT/apps下的Makefile,將其中的有關“gperf”的部分注釋掉,這個東西只是一個例子,可以不去編譯它。
強調一下,用ACE-install.sh來安裝,會編譯ACE、tests、apps等。最后會生成libACE.so及tests、apps下也會出來很多經過編譯的文件。
當然如果你只是下載了ACE.tar.gz這樣的單個包來安裝,你可以手工改文件,再make,因為只編譯ACE,工作就少了很多,手工做還可以接受。
ACE學習資料
1. ACE 程序員指南:網絡與系統編程的實用設計模式 網絡與系統編程的實用設計模式   ACE Programmer's Guide practical Design Patterns for Network and Systems Programming
(美)Stephen D. Huston,(美)James CE Johnson,(美)Umar Syyid著
馬維達 譯 中國電力出版社
2. C++網絡編程 卷1:運用ACE和模式消除復雜性
C++ Network Programming Volume 1 Mastering Complexity with ACE and Patterns
[美]Douglas C.Schmidt,Stephen D.Huston /著 [美]Douglas C.Schmidt,Stephen D.Huston 著,於春景 譯   華中科技大學出版社
3. C++網絡編程,卷2 基于ACE和框架的系統化復用
C++ network Programming, Volume 2 Systematic Reuse with ACE and Frameworks
Douglas C.Schmidt, Stephn D.Huston /著   | 馬維達 譯 電子工業出版社
4. ACE的官方網站  http://www.cs.wustl.edu/~schmidt/ACE.html
5. 馬維達的主頁 http://www.flyingdonkey.com/
6. RIVERACE公司 http://www.riverace.com
7. 灰狐          http://www.huihoo.com/
8.     ACE類庫    http://dev.csdn.net/article/40/40700.shtm


常見錯誤
錯誤1:
“Cannot open include file: ace/SOCK_Acceptor.h: No such file        or directory”
解決方法:
Project->settings->C/C++: Preprocessor的Additional include directories中加入$ACE_ROOT,如E:/ACE_wrappers
錯誤2:
“You must link against multi-threaded libraries when using ACE (check your project settings)”
解決方法:
Project->settings->C/C++: Code Generation 的Use run-time library : Debug Multithreaded Dll
錯誤3:
“error C2065: ACE_ERROR : undeclared identifier”
“error C2065: ACE_DEBUG : undeclared identifier”
解決方法:
在原馬中加入#include ace/Log_Msg.h
錯誤4:“error C4716: ace_main_i : must return a value”
解決方法:
在main中加入return 0;
錯誤5:
“error LNK2001: unresolved external symbol __declspec(dllimport) int __cdecl”
解決方法:
Project->settings->Link->Input: Object/library Modules加入aced.lib ,Additional Library Path中加入$ACE_ROOT\ace,如E:\ACE_wrappers\ace
編譯client中遇到的問題:
錯誤6:
error C2039: sprintf : is not a member of ACE_OS
解決方法:#include ace/OS_NS_stdio.h
錯誤7:error C2039: strlen : is not a member of ACE_OS
解決方法:#include ace/OS_NS_string.h
錯誤8:無法找到動態鏈接庫aced.dll于指定的路徑
解決方法:為系統變量PATH加上D:\ACE_wrappers\bin
靜態包含:
   工程-設置-C/C++-預處理程序定義中加入 ,ACE_AS_STATIC_LIBS
  
  
例1server編譯后生成
server.exe 16K   serverd.exe 97K     servers.exe 124K serversd.exe 669K
(servers.exe較適合發布)

例2 client編譯后生成
client.exe 16K   clientd.exe 97K     clients.exe 124K clientsd.exe 669K
(clients.exe較適合發布)

測試 clients 127.0.0.1 1919
       servers 1919


如果編譯器支持64位,通過什么宏定義來區分64位還是32位阿?
答:#define ver ((2>>31)>0?64:32)
-------------------------------------------------------
給ACE初哥初妹的話

給ACE初哥初妹的話

version 0.1.0 Stone jIang 2006-11-6

下面列出了初學ACE必要的基礎知識,希望能給初學ACE的朋友們一點幫助。特加上版本號,這是為了歡迎批判,補充和修訂。

1. C++/OOP (有一部分高手是C語言背景根深蒂固的,思考問題不是面向對象,這類人學ACE需要先補補OOP思想)

2. Design Pattern (ACE不僅僅是類庫,而是通過模式協同在一起的一系列相關的類,如果對設計模式熟悉,那么會用助于學習ACE)

3. Framework (Framework應該還不正式,相似的詞還可以是architecture,不管用啥詞語,所要指出的是,ACE不僅僅是類庫,更是通過模式組合在一 起相互協作的類形成的半成品。框架有別于類庫,后者通常是被動的被程序員寫的代碼調用,而框架則往往主動地調用用戶實現的接口,即著名的好萊塢原則—— Don't call me , I will call you)

4.Linux(我是Linux初不者,但自從我開始進入Linux 編程的時候,我就發現,ACE許多精華源自Linux,以前對ACE理解有限,不知道為什么這樣,其實在Linux中能找到答案,ACE里閃爍著Linux的智慧。)

5. Richard Stevens. (英年早逝的Richard,應該是Douglas的良師益友,他的著作影響了Douglas,也就影響著ACE,這里要說的是TCP/IP Illustrated ,其實Richard其他著作,像APUE都是大滋大補的)

6. 沒有6了。如果你認為有,一定告訴我。

posted @ 2009-05-20 17:15 黃劍父 閱讀(544) | 評論 (0)編輯 收藏

一.綁定過程

1. DriverEntry

中間層驅動對上層來說,扮演一個Miniport Driver的角色,它在上邊沿向NDIS注冊一組Miniportxxx函數;對于下層Miniport Driver來說,中間層驅動扮演一個Protocol Driver的角色,因此它在下邊沿向NDIS注冊一組Protocolxxx函數。Miniport Driver通過調用NdisMRegisterMiniportNDIS注冊一組MiniportXxx函數;Protocol Driver 通過調用 NdisRegisterProtocolNDIS注冊一組ProtocolXxx函數。

首先通過調用NdisMInitializeWrapper(&NdisWrapperHandle, DriverObject, RegistryPath, NULL);來初始化NdisWrapperHandle,該句柄用來代表IM Driver的自身。

接著調用NdisIMRegisterLayeredMiniport來向NDIS注冊一組MiniportXxx函數,返回指向MiniportDriverHandle

隨后調用NdisRegisterProtocol來向NDIS注冊一組Protocolxxx函數,返回指向ProtocolProtHandle

然后調用NdisIMAssociateMiniport(DriverHandle, ProtHandle);將兩者綁定。

2. PtBindAdapter

       NDIS在完成第一步之后,將會調用PtBindAdapter來完成對適配器的綁定(注意:此函數的調用次數是根據用戶電腦上的適配器數目而定的,一般至少有兩塊,會有一塊叫NDISWANIP),PtBindAdapter中有用的參數主要是DeviceNameSystemSpecific1,其中DeviceName是下層NIC驅動的服務名,SystemSpecific1可以用來讀取注冊表中相關的值。(參考注冊表HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Linkage下的Bind子鍵值)

       首先調用NdisOpenProtocolConfiguration NdisReadConfiguration來讀取注冊表信息,然后初始化PADAPT pAdapt結構體。

       接著調用NdisOpenAdapter來將IM的下層協議驅動(ProtHandle)綁定適配器。

       調用NdisIMInitializeDeviceInstanceEx來觸發對MPInitialize的調用

3. MPInitialize

MpInitialize里面主要做三件事情:

1). 判斷介質類型

2). 調用NdisMSetAttributesEx設置一些特性

3). 調用PtRegisterDevice函數向NDIS注冊設備

4. PtRegisterDevice

       PtRegisterDevice里,主要是設置IM Driver自己要處理的一些派遣例程和注冊設備名和設備符號鏈接名。要注意的是,這個函數提供的功能是為整個設備服務而不是每個適配器都需要注冊,所以通過一個全局變量MiniportCount來控制。

在這里,定義了PDRIVER_DISPATCH       DispatchTable[IRP_MJ_MAXIMUM_FUNCTION+1];

然后如下的設置:DispatchTable[IRP_MJ_CREATE] = DevOpen;

       接著調用NdisMRegisterDevice注冊設備名和設備符號鏈接名。

 

二.卸載過程

1. PtUnbindAdapter

       針對每個綁定的適配器,首先查看對IMminiport是否有還在排隊的請求,如果有,則先調用PtRequestComplete完成它(返回NDIS_STATUS_FAILURE),然后查看狀態是否為pending,是的話則調用NdisIMCancelInitializeDeviceInstance。再調用NdisIMDeInitializeDeviceInstance來卸載設備,在此會觸發對MPHalt的調用。

2. MPHalt

       MPHalt里,首先調用PtDeregisterDevice來卸載設備,然后調用NdisCloseAdapter關閉綁定的適配器。

3. PtDeregisterDevice (MiniportCount == 0?)

       PtDeregisterDevice 里,調用NdisMDeregisterDevice來卸載設備。同PtRegisterDevice類似,要注意的是,這個函數提供的功能是為整個設備服務而不是每個適配器都需要注冊,所以通過一個全局變量MiniportCount來控制。只有最后一個綁定的適配器卸載時,才調用NdisMDeregisterDevice

4. PtUnloadProtocol

       CloseAdapterComplete完成后,NDIS會調用PtUnloadProtocol來完成下層綁定的協議驅動(ProtHandle)的卸載,調用NdisDeregisterProtocol函數。

5. PtUnload

       首先,要說明的是,在DriverEntry函數里,有注冊該函數(NdisMRegisterUnloadHandler(NdisWrapperHandle, PtUnload);)。該函數是整個卸載過程的最后一步,在這里,會繼續完成對綁定的上層miniport,下層的protocol的卸載(其實protocol的卸載在第4步已經完成),調用如下兩個函數PtUnloadProtocolNdisIMDeregisterLayeredMiniport

posted @ 2009-05-19 17:16 黃劍父 閱讀(330) | 評論 (0)編輯 收藏
基于遠程認證的網絡中實現EAP認證的方法,在百度的專利搜索上進行搜索,能找到這篇文章。
這個是華為對EAP認證的一個發明專利,專利書對EAP認證的步驟,和產生背景說的非常清楚,是一篇很好的認識802.1x認證的文章。
對以前的認證技術進行了分析,優缺點都有說明。
目前現在大規模應用的都是EAP認證。
posted @ 2009-04-15 15:03 黃劍父 閱讀(237) | 評論 (0)編輯 收藏

集中回復001
   時寒冰

最近,來信太多,無力一一回復,以后選擇性的集中回復。——寒冰(暖之)

1.問:如何看股市?
答:超過7成的股票有階段性見頂跡象。

2.問:農民如何應對未來的通貨膨脹?
答:養豬。存糧。

3.問:保8能否成功?
答:能。一定能。
問:你這樣確信?
答:我對統計部門從來都有信心

4.問:次貸危機誰受害最深?
答:中國。
問:誰先復蘇?
答:美國。
問:為何很多人看法正好相反。
答:表演看多了。

5.問:你如何看茅于軾廉租房不建廁所?
答:他可能把廁所當成奢侈品,把拉屎尿尿當成高消費了。
問:茅于軾認為,經濟適用房給人帶來了貪污腐化的機會,就應該停掉經濟適用房。
答:各行各業都存在貪污腐化的機會,都應該停掉。
問:其實,只要有人類存在就有腐化機會啊?
答:根據茅老的理論,把人類消滅就可以徹底解決這一問題。
問:那茅老呢?
答:他留著。他是品德高尚的人,永遠不會腐化。

6.問:《中國新聞周刊》報道說,北京大學司法鑒定室主任孫東東表示“對那些老上訪專業戶,我負責任地說,不說100%吧,至少99%以上精神有問題——都是偏執型精神障礙”,你如何看?
答:這位教授精神可能有問題,很可能是偏執型精神障礙。
問:能否提出一些治療建議?
答:建議看獸醫。

7.問:你如何看中國人民銀行行長提出最終取代美元的“超主權儲備貨幣”的設想?很多人評價說是中國偉大的戰略調整。
答:看不懂。
問:為啥?
答:一邊積極購買美國國債等,一邊要廢美元,所以看不懂是啥戰略。

8.問:你如何看濰坊市寒亭區采用下發“紅頭文件”的形式,向該區副科級以上干部攤派“售房任務”?
答:官商勾結的模板。房子賣不動了。
問:最近賣得不是很火嗎?
答:集中演出的回光返照。
   寫于2009年4月3日下午兩點

posted @ 2009-04-03 17:38 黃劍父 閱讀(130) | 評論 (0)編輯 收藏
僅列出標題
共6頁: 1 2 3 4 5 6 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            av成人免费在线观看| 国产一区二区观看| 一本一道久久综合狠狠老精东影业| 欧美在线免费视屏| 亚洲一区在线免费| 欧美一区高清| 久久精彩视频| 欧美99久久| 亚洲国产毛片完整版 | 亚洲乱码久久| 欧美成人在线影院| 精品不卡一区| 欧美人与性动交cc0o| 亚洲激情国产精品| 久久精品成人一区二区三区| 国产精品99久久久久久人| 亚洲天堂成人在线视频| 欧美在线视频一区| 欧美二区在线看| 9色精品在线| 亚洲综合视频在线| 久久嫩草精品久久久精品| 久久久亚洲一区| 欧美日韩国产精品成人| 国产午夜亚洲精品不卡| 亚洲看片一区| 久久精品国产清高在天天线| 亚洲二区视频| 亚洲综合色自拍一区| 玖玖玖国产精品| 欧美日韩一区三区| 在线观看不卡| 午夜精品av| 亚洲国产99| 亚洲欧洲精品一区二区| 午夜久久美女| 欧美视频第二页| 一区精品在线播放| 欧美一级午夜免费电影| 亚洲国产婷婷香蕉久久久久久| 亚洲视频网在线直播| 久久影音先锋| 国产主播喷水一区二区| 中文在线资源观看网站视频免费不卡 | 亚洲国产三级网| 欧美一级成年大片在线观看| 亚洲日本成人| 久久久久久高潮国产精品视| 国产精品永久入口久久久| 亚洲精品在线看| 欧美va亚洲va日韩∨a综合色| 亚洲专区在线| 国产精品久久久久久久久免费| 在线免费观看欧美| 亚洲黄色高清| 老司机aⅴ在线精品导航| 一区二区三区高清| 欧美成人在线影院| 亚洲欧洲日产国码二区| 美女国产一区| 久久久欧美一区二区| 激情欧美丁香| 欧美成人自拍| 久久亚洲春色中文字幕久久久| 国产午夜精品久久| 久久久人成影片一区二区三区| 小黄鸭视频精品导航| 国产色视频一区| 久久久久久久一区二区| 久久噜噜噜精品国产亚洲综合| 伊人精品在线| 欧美激情一区二区久久久| 欧美成人精品在线播放| 一本久久综合| 一区二区三区av| 国产精品亚洲片夜色在线| 欧美一区二区三区久久精品茉莉花| 亚洲视频在线一区| 国产一区日韩欧美| 毛片av中文字幕一区二区| 欧美77777| 亚洲一区三区电影在线观看| 性娇小13――14欧美| …久久精品99久久香蕉国产| 亚洲国产视频一区二区| 国产精品一区二区a| 久久久久欧美| 欧美精品1区2区| 性欧美暴力猛交69hd| 久久九九国产精品| 一区二区欧美亚洲| 欧美一区中文字幕| 亚洲免费观看高清完整版在线观看熊| 日韩视频一区二区三区在线播放免费观看| 国产精品久久久久一区二区| 久久久久一区二区三区四区| 欧美金8天国| 久久成人综合网| 欧美高清在线观看| 香蕉乱码成人久久天堂爱免费| 久久蜜桃精品| 亚洲综合视频一区| 免费高清在线一区| 欧美在线视频不卡| 欧美人体xx| 久久午夜av| 国产精品久久久久久久久久免费看 | 国产精品午夜av在线| 美玉足脚交一区二区三区图片| 欧美日韩性视频在线| 欧美在线观看视频一区二区三区| 国内精品久久久久伊人av| 亚洲欧洲一二三| 韩国欧美一区| 日韩一区二区精品葵司在线| 一区在线播放视频| 亚洲一区二区视频在线| 亚洲精品在线观看免费| 久久久久久有精品国产| 久久不见久久见免费视频1| 欧美日本中文| 亚洲高清网站| 亚洲第一在线| 久久精品亚洲| 久久九九久精品国产免费直播| 欧美涩涩视频| 夜夜嗨一区二区| 一区二区三区四区五区精品视频| 久久伊人精品天天| 久久夜色精品国产欧美乱极品| 国产精品自在欧美一区| 亚洲少妇在线| 亚洲欧美变态国产另类| 欧美精品福利| 亚洲精品久久久久中文字幕欢迎你 | 中日韩男男gay无套| 蜜臀va亚洲va欧美va天堂| 久久久久久亚洲精品中文字幕| 国产女优一区| 亚洲欧美日韩网| 久久av二区| 国产一区二区三区久久 | 国产揄拍国内精品对白| 亚洲欧美日韩综合| 欧美在线一二三区| 国产综合色一区二区三区| 久久精品一区二区三区中文字幕 | 欧美日韩精品免费在线观看视频| 亚洲国产婷婷香蕉久久久久久99| 亚洲国产精品小视频| 女同一区二区| 亚洲精品激情| 亚洲一区三区视频在线观看| 国产精品三级视频| 久久大逼视频| 亚洲第一毛片| 亚洲一区二区毛片| 国产亚洲激情| 久久―日本道色综合久久| 亚洲缚视频在线观看| 夜夜嗨一区二区| 国产精品人人做人人爽| 久久久精品动漫| 亚洲精品日韩久久| 久久超碰97中文字幕| 在线看日韩欧美| 欧美日韩视频专区在线播放 | 国产区日韩欧美| 亚洲欧美日韩国产一区二区三区| 久久综合网hezyo| 日韩午夜av| 国产精品免费网站| 久久久水蜜桃| 亚洲精品午夜| 久久伊人免费视频| 9人人澡人人爽人人精品| 国产精品一区二区在线观看| 可以免费看不卡的av网站| 一区二区三区欧美激情| 麻豆精品在线视频| 亚洲网站啪啪| 在线播放视频一区| 国产精品乱码| 欧美激情精品久久久六区热门| 午夜精品www| 亚洲精品视频一区| 蜜桃精品一区二区三区 | 亚洲欧美日韩一区二区| 在线欧美亚洲| 国产九色精品成人porny| 欧美伦理视频网站| 久久精品人人做人人综合| 亚洲天堂成人| 亚洲人体偷拍| 美日韩精品免费| 久久久国际精品| 亚洲一区美女视频在线观看免费| 亚洲国产精品123| 国产综合自拍| 国产视频一区在线观看|