標籤:cti 定義 scope spec spool 程式包 sp2 lib windows
MSDN原文:https://msdn.microsoft.com/zh-cn/library/windows/hardware/ff554695(v=vs.85).aspx
Windows 驅動程式工具包 (WDK) 包含構建核心模式和使用者模式驅動程式所需的所有標頭檔(.h 檔案)。標頭檔在 WDK 安裝資料夾中的 Include 檔案夾中。樣本:C:\Program Files (x86)\Windows Kits\10\Include。
標頭檔包含版本資訊,因此不論驅動程式在哪個版本的 Windows 上運行,你都可以使用一組相同的標頭檔。
表示 Windows 版本的常量
WDK 中的標頭檔包含的條件陳述式指定編程元素僅在某些版本的 Windows 作業系統中才可用。進行版本管理的元素包括函數、枚舉、結構以及結構成員。
若要指定編程元素在每個作業系統版本中都可用,標頭檔包含的前置處理器條件將 NTDDI_VERSION 的值與 Sdkddkver.h 中定義的一組預定義常量值相比較。
以下是表示 Microsoft Windows 作業系統版本的預定義常量值。
常量 |
作業系統版本 |
NTDDI_WIN10 |
Windows 10 |
NTDDI_WINBLUE |
Windows 8.1 |
NTDDI_WIN8 |
Windows 8 |
NTDDI_WIN7 |
Windows 7 |
NTDDI_WS08SP4 |
Windows Server 2008 SP4 |
NTDDI_WS08SP3 |
Windows Server 2008 SP3 |
NTDDI_WS08SP2 |
Windows Server 2008 SP2 |
NTDDI_WS08 |
Windows Server 2008 |
你可以在 WDK 標頭檔中看到特定於版本的 DDI 元素的多個樣本。此條件聲明出現在 Wdm.h 中,該檔案為可能由核心模式驅動程式包含的標頭檔。
#if (NTDDI_VERSION >= NTDDI_WIN7)_Must_inspect_result_NTKERNELAPINTSTATUSKeSetTargetProcessorDpcEx ( _Inout_ PKDPC Dpc, _In_ PPROCESSOR_NUMBER ProcNumber );#endif
在該樣本中,你可以看到僅在 Windows 7 和更高版本的 Windows 中才提供 KeSetTargetProcessorDpcEx 函數。
此條件聲明出現在 Winspool.h 中,該檔案為可能由使用者模式驅動程式套件含的標頭檔。
C++
#if (NTDDI_VERSION >= NTDDI_WIN7)...BOOLWINAPIGetPrintExecutionData( _Out_ PRINT_EXECUTION_DATA *pData );#endif // (NTDDI_VERSION >= NTDDI_WIN7)
在該樣本中,你可以看到僅在 Windows 7 和更高版本的 Windows 中才提供 GetPrintExecutionData 函數。
用於核心模式驅動程式架構的標頭檔
WDK 支援多種版本的 Windows,並且它還支援多種版本的核心模式驅動程式架構 (KMDF) 和使用者模式驅動程式架構 (UMDF)。WDK 標頭檔中的版本資訊與 Windows 版本有關,但與 KMDF 或 UMDF 版本無關。用於不同版本的 KMDF 和 UMDF 的標頭檔放置在不同的目錄中。
Windows 驅動程式工具包中的標頭檔