Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

765 lines
19 KiB

  1. /******************************************************************************
  2. *
  3. * Copyright (C) 2001-2002 Microsoft Corporation. All Rights Reserved.
  4. *
  5. * File: dpnbuild.h
  6. *
  7. * Content: DirectPlay build specific defines header.
  8. *
  9. * History:
  10. * Date By Reason
  11. * ======== ======== =========
  12. * 11/08/01 VanceO Created to reduce the build nightmare.
  13. *
  14. ******************************************************************************/
  15. //=============================================================================
  16. // Global defines for all build types
  17. //=============================================================================
  18. //
  19. // Defining CINTERFACE lets us use C-style COM interfaces. This is handy
  20. // because it allows us to manually build up the vtable which lets us re-use
  21. // functions easily where appropriate. The downside is that we have an extra
  22. // "->lpVtbl" to type in front of COM calls, but macros like
  23. // IDirectPlay8Address_Release() hide this.
  24. //
  25. #ifndef CINTERFACE
  26. #define CINTERFACE
  27. #endif // CINTERFACE
  28. //
  29. // All debug builds get thread pool statistics and all retail builds do not
  30. // include the Protocol test interface.
  31. //
  32. #ifdef DBG
  33. #define DPNBUILD_THREADPOOLSTATISTICS
  34. #define DPNBUILD_WINSOCKSTATISTICS
  35. #else // ! DBG
  36. #define DPNBUILD_NOPROTOCOLTESTITF
  37. #endif // ! DBG
  38. #ifdef WINCE
  39. //========================================================================
  40. // Windows CE specific defines
  41. //========================================================================
  42. #ifdef WINNT
  43. #error("WINCE and WINNT cannot both be defined!")
  44. #endif // WINNT
  45. #ifdef WIN95
  46. #error("WINCE and WIN95 cannot both be defined!")
  47. #endif // WIN95
  48. #ifdef _XBOX
  49. #error("WINCE and _XBOX cannot both be defined!")
  50. #endif // _XBOX
  51. //
  52. // Windows CE builds Unicode.
  53. //
  54. #ifndef UNICODE
  55. #define UNICODE
  56. #endif // ! UNICODE
  57. #ifndef _UNICODE
  58. #define _UNICODE
  59. #endif // ! _UNICODE
  60. //
  61. // Eliminate unavailable components and non-CE features
  62. //
  63. #define DPNBUILD_NOCOMEMULATION
  64. #define DPNBUILD_NOHNETFWAPI
  65. #define DPNBUILD_NOIMAGEHLP
  66. #define DPNBUILD_NOIPV6
  67. #define DPNBUILD_NOIPX
  68. #define DPNBUILD_NOLEGACYDP
  69. #define DPNBUILD_NOLOCALNAT
  70. #define DPNBUILD_NOMISSEDTIMERSHINT
  71. #define DPNBUILD_NOMULTICAST
  72. #define DPNBUILD_NOSERIALSP
  73. #define DPNBUILD_NOSPUI
  74. #define DPNBUILD_NOVOICE
  75. #define DPNBUILD_NOWINMM
  76. #define DPNBUILD_NOWINSOCK2
  77. #define DPNBUILD_ONLYONENATHELP
  78. #define DPNBUILD_ONLYONEPROCESSOR
  79. #ifdef DBG
  80. //===================================================================
  81. // Debug CE build specific defines
  82. //===================================================================
  83. #else // ! DBG
  84. //===================================================================
  85. // Retail CE build specific defines
  86. //===================================================================
  87. //
  88. // Don't include parameter validation.
  89. //
  90. #define DPNBUILD_NOPARAMVAL
  91. #endif // ! DBG
  92. #else // ! WINCE
  93. #ifdef _XBOX
  94. //===================================================================
  95. // Xbox specific defines
  96. //===================================================================
  97. #ifdef WINNT
  98. #error("_XBOX and WINNT cannot both be defined!")
  99. #endif // WINNT
  100. #ifdef WIN95
  101. #error("_XBOX and WIN95 cannot both be defined!")
  102. #endif // WIN95
  103. //
  104. // The Xbox NT build environment tries to build Unicode, so stop it.
  105. //
  106. #ifdef UNICODE
  107. #undef UNICODE
  108. #endif // UNICODE
  109. #ifdef _UNICODE
  110. #undef _UNICODE
  111. #endif // _UNICODE
  112. //
  113. // Eliminate unavailable components and non-Xbox features
  114. //
  115. #define DPNBUILD_FIXEDMEMORYMODEL
  116. #define DPNBUILD_LIBINTERFACE
  117. #define DPNBUILD_NOADDRESSIPINTERFACE
  118. #define DPNBUILD_NOBLUETOOTHSP
  119. #define DPNBUILD_NOCOMEMULATION
  120. #define DPNBUILD_NOCOMREGISTER
  121. #define DPNBUILD_NOHNETFWAPI
  122. #define DPNBUILD_NOIMAGEHLP
  123. #define DPNBUILD_NOIPV6
  124. #define DPNBUILD_NOIPX
  125. #define DPNBUILD_NOLEGACYDP
  126. #define DPNBUILD_NOLOBBY
  127. #define DPNBUILD_NOLOCALNAT
  128. #define DPNBUILD_NOMULTICAST
  129. #define DPNBUILD_NONATHELP
  130. #define DPNBUILD_NOREGISTRY
  131. #define DPNBUILD_NOSERIALSP
  132. #define DPNBUILD_NOSPUI
  133. #define DPNBUILD_NOVOICE
  134. #define DPNBUILD_NOWINMM
  135. #define DPNBUILD_ONLYONEADAPTER
  136. #define DPNBUILD_ONLYONENATHELP
  137. #define DPNBUILD_ONLYONEPROCESSOR
  138. #define DPNBUILD_ONLYONESP
  139. #define DPNBUILD_ONLYONETHREAD
  140. #define DPNBUILD_ONLYWINSOCK2
  141. #define DPNBUILD_SINGLEPROCESS
  142. #define DPNBUILD_XNETSECURITY
  143. #ifdef DBG
  144. //==============================================================
  145. // Debug Xbox build specific defines
  146. //==============================================================
  147. #else // ! DBG
  148. //==============================================================
  149. // Retail Xbox build specific defines
  150. //==============================================================
  151. //
  152. // Don't include parameter validation.
  153. //
  154. #define DPNBUILD_NOPARAMVAL
  155. #endif // ! DBG
  156. #else // ! _XBOX
  157. //===================================================================
  158. // Desktop specific defines
  159. //===================================================================
  160. //
  161. // _WIN32_DCOM allows us to use CoInitializeEx.
  162. //
  163. #ifndef _WIN32_DCOM
  164. #define _WIN32_DCOM
  165. #endif
  166. //
  167. // Desktop can handle async sends just fine.
  168. //
  169. #define DPNBUILD_ASYNCSPSENDS
  170. //
  171. // Multicast support is not ready for prime-time yet.
  172. //
  173. #define DPNBUILD_NOMULTICAST
  174. #ifdef WINNT
  175. //==============================================================
  176. // Windows NT specific defines
  177. //==============================================================
  178. #ifdef WIN95
  179. #error("WINNT and WIN95 cannot both be defined!")
  180. #endif // WIN95
  181. //
  182. // Windows NT builds Unicode
  183. //
  184. #define UNICODE
  185. #define _UNICODE
  186. //
  187. // When building under Visual C++ 6.0, we need to make sure
  188. // certain "advanced" features are available. There's probably a
  189. // better way to tell what environment is being used, but for
  190. // now, we'll use ! DPNBUILD_ENV_NT.
  191. //
  192. #ifndef DPNBUILD_ENV_NT
  193. #define _WIN32_WINNT 0x0500
  194. #endif // ! DPNBUILD_ENV_NT
  195. //
  196. // No bluetooth support on NT.
  197. //
  198. #define DPNBUILD_NOBLUETOOTHSP
  199. //
  200. // 64-bit Windows never supported legacy DPlay (other than via
  201. // WOW).
  202. //
  203. #ifdef _WIN64
  204. #define DPNBUILD_NOLEGACYDP
  205. #endif // _WIN64
  206. //
  207. // NT doesn't need to support Winsock 1.
  208. //
  209. #define DPNBUILD_ONLYWINSOCK2
  210. #ifdef DBG
  211. //===========================================================
  212. // Debug NT build specific defines
  213. //===========================================================
  214. #else // ! DBG
  215. //===========================================================
  216. // Retail NT build specific defines
  217. //===========================================================
  218. #endif // ! DBG
  219. #else // ! WINNT
  220. //===============================================================
  221. // Windows 9x specific defines
  222. //===============================================================
  223. #ifndef WIN95
  224. #error("One of WINCE, _XBOX, WINNT, or WIN95 must be defined!")
  225. #endif // ! WIN95
  226. //
  227. // No bluetooth support on 9x
  228. //
  229. #define DPNBUILD_NOBLUETOOTHSP
  230. //
  231. // Windows 9x is single processor only.
  232. //
  233. #define DPNBUILD_ONLYONEPROCESSOR
  234. //
  235. // Windows 9x will never support IPv6.
  236. //
  237. #define DPNBUILD_NOIPV6
  238. #ifdef DBG
  239. //===========================================================
  240. // Debug 9x build specific defines
  241. //===========================================================
  242. #else // ! DBG
  243. //===========================================================
  244. // Retail 9x build specific defines
  245. //===========================================================
  246. #endif // ! DBG
  247. #endif // ! WINNT
  248. #endif // ! _XBOX
  249. #endif // ! WINCE
  250. //=============================================================================
  251. // Print the current settings
  252. //=============================================================================
  253. #pragma message("Defines in use:")
  254. //
  255. // _ARM_ - Compile for ARM processors
  256. //
  257. #ifdef _ARM_
  258. #pragma message(" _ARM_")
  259. #endif
  260. //
  261. // _AMD64_ - Compile for AMD64 processors
  262. //
  263. #ifdef _AMD64_
  264. #pragma message(" _AMD64_")
  265. #endif
  266. //
  267. // DX_FINAL_RELEASE - Controls whether or not the DX time bomb is present
  268. //
  269. #ifdef DX_FINAL_RELEASE
  270. #pragma message(" DX_FINAL_RELEASE")
  271. #endif
  272. //
  273. // _IA64_ - Compile for IA64 processors
  274. //
  275. #ifdef _IA64_
  276. #pragma message(" _IA64_")
  277. #endif
  278. //
  279. // UNICODE - Set to make the build Unicode.
  280. //
  281. #ifdef UNICODE
  282. #pragma message(" UNICODE")
  283. #endif
  284. //
  285. // _WIN64 - 64-bit windows
  286. //
  287. #ifdef _WIN64
  288. #pragma message(" _WIN64")
  289. #endif
  290. //
  291. // WINCE - Not _WIN64, _XBOX, WINNT, or WIN95
  292. //
  293. #ifdef WINCE
  294. #pragma message(" WINCE")
  295. #endif
  296. //
  297. // WINNT - Not WINCE, _XBOX, or WIN95
  298. //
  299. #ifdef WINNT
  300. #pragma message(" WINNT")
  301. #endif
  302. //
  303. // WIN95 - Not WINCE, _XBOX, or WINNT
  304. //
  305. #ifdef WIN95
  306. #pragma message(" WIN95")
  307. #endif
  308. //
  309. // WINCE_ON_DESKTOP - Used to make a desktop CE-like build
  310. //
  311. #ifdef WINCE_ON_DESKTOP
  312. #pragma message(" WINCE_ON_DESKTOP")
  313. #endif
  314. //
  315. // _X86_ - Compile for Intel x86 processors
  316. //
  317. #ifdef _X86_
  318. #pragma message(" _X86_")
  319. #endif
  320. //
  321. // _XBOX - Not _WIN64, WINCE, WINNT, or WIN95
  322. //
  323. #ifdef _XBOX
  324. #pragma message(" _XBOX")
  325. #endif
  326. //
  327. // XBOX_ON_DESKTOP - Used to make a desktop Xbox-like build
  328. //
  329. #ifdef XBOX_ON_DESKTOP
  330. #pragma message(" XBOX_ON_DESKTOP")
  331. #endif
  332. //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  333. //
  334. // DPNBUILD_ASYNCSPSENDS - Have the SP implement asynchronous sends
  335. //
  336. #ifdef DPNBUILD_ASYNCSPSENDS
  337. #pragma message(" DPNBUILD_ASYNCSPSENDS")
  338. #endif
  339. //
  340. // DPNBUILD_COALESCEALWAYS - Always attempt to coalesce frames (don't use with DPNBUILD_COALESCENEVER)
  341. //
  342. #ifdef DPNBUILD_COALESCEALWAYS
  343. #pragma message(" DPNBUILD_COALESCEALWAYS")
  344. #endif
  345. //
  346. // DPNBUILD_COALESCENEVER - Never attempt to coalesce frames (don't use with DPNBUILD_COALESCEALWAYS)
  347. //
  348. #ifdef DPNBUILD_COALESCENEVER
  349. #pragma message(" DPNBUILD_COALESCENEVER")
  350. #endif
  351. //
  352. // DPNBUILD_DONTCHECKFORMISSEDTIMERS - Don't have the unified thread pool check for missed short timers
  353. //
  354. #ifdef DPNBUILD_DONTCHECKFORMISSEDTIMERS
  355. #pragma message(" DPNBUILD_DONTCHECKFORMISSEDTIMERS")
  356. #endif
  357. //
  358. // DPNBUILD_DYNAMICTIMERSETTINGS - Store timer settings at run time so they can be dynamically changed
  359. //
  360. #ifdef DPNBUILD_DYNAMICTIMERSETTINGS
  361. #pragma message(" DPNBUILD_DYNAMICTIMERSETTINGS")
  362. #endif
  363. //
  364. // DPNBUILD_ENV_NT - Building under the NT build environment
  365. //
  366. #ifdef DPNBUILD_ENV_NT
  367. #pragma message(" DPNBUILD_ENV_NT")
  368. #endif
  369. //
  370. // DPNBUILD_FIXEDMEMORYMODEL - Set a cap on the maximum amount of memory that can be allocated
  371. //
  372. #ifdef DPNBUILD_FIXEDMEMORYMODEL
  373. #pragma message(" DPNBUILD_FIXEDMEMORYMODEL")
  374. #endif
  375. //
  376. // DPNBUILD_LIBINTERFACE - Use a lib interface instead of a COM style interface
  377. //
  378. #ifdef DPNBUILD_LIBINTERFACE
  379. #pragma message(" DPNBUILD_LIBINTERFACE")
  380. #endif
  381. //
  382. // DPNBUILD_MANDATORYTHREADS - Support thread pool "mandatory" threads
  383. //
  384. #ifdef DPNBUILD_MANDATORYTHREADS
  385. #pragma message(" DPNBUILD_MANDATORYTHREADS")
  386. #endif
  387. //
  388. // DPNBUILD_NOADDRESSIPINTERFACE - Don't support the IDirectPlay8AddressIP interface
  389. //
  390. #ifdef DPNBUILD_NOADDRESSIPINTERFACE
  391. #pragma message(" DPNBUILD_NOADDRESSIPINTERFACE")
  392. #endif
  393. //
  394. // DPNBUILD_NOBLUETOOTH - Stop bluetooth SP being incorporated
  395. //
  396. #ifdef DPNBUILD_NOBLUETOOTH
  397. #pragma message(" DPNBUILD_NOBLUETOOTH")
  398. #endif
  399. //
  400. // DPNBUILD_NOCOMEMULATION - Set for platforms that don't need the COM emulation layer
  401. //
  402. #ifdef DPNBUILD_NOCOMEMULATION
  403. #pragma message(" DPNBUILD_NOCOMEMULATION")
  404. #endif
  405. //
  406. // DPNBUILD_NOCOMREGISTER - Don't implement DllRegisterServer and DllUnregisterServer
  407. //
  408. #ifdef DPNBUILD_NOCOMREGISTER
  409. #pragma message(" DPNBUILD_NOCOMREGISTER")
  410. #endif
  411. //
  412. // DPNBUILD_NOHNETFWAPI - Used in NAT Help when Home Networking firewall traversal API isn't available
  413. //
  414. #ifdef DPNBUILD_NOHNETFWAPI
  415. #pragma message(" DPNBUILD_NOHNETFWAPI")
  416. #endif
  417. //
  418. // DPNBUILD_NOHOSTMIGRATE - Removes the Peer Host Migration feature
  419. //
  420. #ifdef DPNBUILD_NOHOSTMIGRATE
  421. #pragma message(" DPNBUILD_NOHOSTMIGRATE")
  422. #endif
  423. //
  424. // DPNBUILD_NOICSADAPTERSELECTIONLOGIC - Don't let the SP try to be smart about the adapter to use for enumerating/connecting on Internet Connection Sharing machines
  425. //
  426. #ifdef DPNBUILD_NOICSADAPTERSELECTIONLOGIC
  427. #pragma message(" DPNBUILD_NOICSADAPTERSELECTIONLOGIC")
  428. #endif
  429. //
  430. // DPNBUILD_NOIMAGEHLP - Set for platforms where Imagehlp.dll is not available
  431. //
  432. #ifdef DPNBUILD_NOIMAGEHLP
  433. #pragma message(" DPNBUILD_NOIMAGEHLP")
  434. #endif
  435. //
  436. // DPNBUILD_NOIPX - Remove the IPX service provider
  437. //
  438. #ifdef DPNBUILD_NOIPX
  439. #pragma message(" DPNBUILD_NOIPX")
  440. #endif
  441. //
  442. // DPNBUILD_NOIPV6 - Remove the IPv6 service provider
  443. //
  444. #ifdef DPNBUILD_NOIPV6
  445. #pragma message(" DPNBUILD_NOIPV6")
  446. #endif
  447. //
  448. // DPNBUILD_NOLEGACYDP - Remove IDirectPlay4 addressing support
  449. //
  450. #ifdef DPNBUILD_NOLEGACYDP
  451. #pragma message(" DPNBUILD_NOLEGACYDP")
  452. #endif
  453. //
  454. // DPNBUILD_NOLOBBY - Remove lobby support from core.
  455. //
  456. #ifdef DPNBUILD_NOLOBBY
  457. #pragma message(" DPNBUILD_NOLOBBY")
  458. #endif
  459. //
  460. // DPNBUILD_NOLOCALNAT - Remove support for a local Internet gateway
  461. //
  462. #ifdef DPNBUILD_NOLOCALNAT
  463. #pragma message(" DPNBUILD_NOLOCALNAT")
  464. #endif
  465. //
  466. // DPNBUILD_NOMISSEDTIMERSHINT - Don't have the unified thread pool try to hint about possible missed short timers
  467. //
  468. #ifdef DPNBUILD_NOMISSEDTIMERSHINT
  469. #pragma message(" DPNBUILD_NOMISSEDTIMERSHINT")
  470. #endif
  471. //
  472. // DPNBUILD_NOMULTICAST - Used to disable multicast capabilities
  473. //
  474. #ifdef DPNBUILD_NOMULTICAST
  475. #pragma message(" DPNBUILD_NOMULTICAST")
  476. #endif
  477. //
  478. // DPNBUILD_NONATHELP - Remove use of NatHelp from DPlay
  479. //
  480. #ifdef DPNBUILD_NONATHELP
  481. #pragma message(" DPNBUILD_NONATHELP")
  482. #endif
  483. //
  484. // DPNBUILD_NOPARAMVAL - Parameter validation - ON for CE & Xbox Retail, OFF for Debug
  485. //
  486. #ifdef DPNBUILD_NOPARAMVAL
  487. #pragma message(" DPNBUILD_NOPARAMVAL")
  488. #endif
  489. //
  490. // DPNBUILD_NOPROTOCOLTESTITF - Removes the Protocol testing interface. ON in Retail, OFF in Debug
  491. //
  492. #ifdef DPNBUILD_NOPROTOCOLTESTITF
  493. #pragma message(" DPNBUILD_NOPROTOCOLTESTITF")
  494. #endif
  495. //
  496. // DPNBUILD_NOREGISTRY - Removes registry based override parameters from DPlay
  497. //
  498. #ifdef DPNBUILD_NOREGISTRY
  499. #pragma message(" DPNBUILD_NOREGISTRY")
  500. #endif
  501. //
  502. // DPNBUILD_NOSERIALSP - Remove the Serial and Modem service providers
  503. //
  504. #ifdef DPNBUILD_NOSERIALSP
  505. #pragma message(" DPNBUILD_NOSERIALSP")
  506. #endif
  507. //
  508. // DPNBUILD_NOSERVER - Removes the IDirectPlay8Server interface, allowing only Client and Peer-to-Peer
  509. //
  510. #ifdef DPNBUILD_NOSERVER
  511. #pragma message(" DPNBUILD_NOSERVER")
  512. #endif
  513. //
  514. // DPNBUILD_NOSPUI - No UI in the Service Providers
  515. //
  516. #ifdef DPNBUILD_NOSPUI
  517. #pragma message(" DPNBUILD_NOSPUI")
  518. #endif
  519. //
  520. // DPNBUILD_NOVOICE - Removes DirectPlay Voice support from DirectPlay
  521. //
  522. #ifdef DPNBUILD_NOVOICE
  523. #pragma message(" DPNBUILD_NOVOICE")
  524. #endif
  525. //
  526. // DPNBUILD_NOWAITABLETIMERSON9X - Don't use waitable timer objects in Windows 9x builds
  527. //
  528. #ifdef DPNBUILD_NOWAITABLETIMERSON9X
  529. #pragma message(" DPNBUILD_NOWAITABLETIMERSON9X")
  530. #endif
  531. //
  532. // DPNBUILD_NOWINMM - Set for platforms where winmm.dll is not available
  533. //
  534. #ifdef DPNBUILD_NOWINMM
  535. #pragma message(" DPNBUILD_NOWINMM")
  536. #endif
  537. //
  538. // DPNBUILD_NOWINSOCK2 - Force the IP Service Provider to only use Winsock 1 features
  539. //
  540. #ifdef DPNBUILD_NOWINSOCK2
  541. #pragma message(" DPNBUILD_NOWINSOCK2")
  542. #endif
  543. //
  544. // DPNBUILD_ONLYONEADAPTER - Uses simplified code that assumes only a single adapter/device exists per SP
  545. //
  546. #ifdef DPNBUILD_ONLYONEADAPTER
  547. #pragma message(" DPNBUILD_ONLYONEADAPTER")
  548. #endif
  549. //
  550. // DPNBUILD_ONLYONENATHELP - Uses simplified code that assumes only a single NAT Help provider exists
  551. //
  552. #ifdef DPNBUILD_ONLYONENATHELP
  553. #pragma message(" DPNBUILD_ONLYONENATHELP")
  554. #endif
  555. //
  556. // DPNBUILD_ONLYONEPROCESSOR - Uses simplified code that assumes that only one processor exists
  557. //
  558. #ifdef DPNBUILD_ONLYONEPROCESSOR
  559. #pragma message(" DPNBUILD_ONLYONEPROCESSOR")
  560. #endif
  561. //
  562. // DPNBUILD_ONLYONESP - Uses simplified code that assumes only a single service provider exists
  563. //
  564. #ifdef DPNBUILD_ONLYONESP
  565. #pragma message(" DPNBUILD_ONLYONESP")
  566. #endif
  567. //
  568. // DPNBUILD_ONLYONETHREAD - Uses simplified code that assumes only one thread will ever access DPlay
  569. //
  570. #ifdef DPNBUILD_ONLYONETHREAD
  571. #pragma message(" DPNBUILD_ONLYONETHREAD")
  572. #endif
  573. //
  574. // DPNBUILD_ONLYWINSOCK2 - Force the IP Service Provider to only use Winsock 2 features
  575. //
  576. #ifdef DPNBUILD_ONLYWINSOCK2
  577. #pragma message(" DPNBUILD_ONLYWINSOCK2")
  578. #endif
  579. //
  580. // DPNBUILD_PREALLOCATEDMEMORYMODEL - Pre-allocate a fixed working set of memory up front, don't allow additional allocations
  581. //
  582. #ifdef DPNBUILD_PREALLOCATEDMEMORYMODEL
  583. #pragma message(" DPNBUILD_PREALLOCATEDMEMORYMODEL")
  584. #endif
  585. //
  586. // DPNBUILD_SINGLEPROCESS - Integrates DPNSVR code into the main DLL and assumes only a single process will use DPlay at a time
  587. //
  588. #ifdef DPNBUILD_SINGLEPROCESS
  589. #pragma message(" DPNBUILD_SINGLEPROCESS")
  590. #endif
  591. //
  592. // DPNBUILD_SOFTTHREADAFFINITY - Only sets an ideal processor for thread pool threads instead of a hard affinity mask
  593. //
  594. #ifdef DPNBUILD_SOFTTHREADAFFINITY
  595. #pragma message(" DPNBUILD_SOFTTHREADAFFINITY")
  596. #endif
  597. //
  598. // DPNBUILD_THREADPOOLSTATISTICS - Tracks statistics regarding the thread pool for debugging/tuning
  599. //
  600. #ifdef DPNBUILD_THREADPOOLSTATISTICS
  601. #pragma message(" DPNBUILD_THREADPOOLSTATISTICS")
  602. #endif
  603. //
  604. // DPNBUILD_USEASSUME - Uses the __assume compiler key word for DNASSERTs in retail builds
  605. //
  606. #ifdef DPNBUILD_USEASSUME
  607. #pragma message(" DPNBUILD_USEASSUME")
  608. #endif
  609. //
  610. // DPNBUILD_USEIOCOMPLETIONPORTS - Uses I/O completion ports in the thread pool
  611. //
  612. #ifdef DPNBUILD_USEIOCOMPLETIONPORTS
  613. #pragma message(" DPNBUILD_USEIOCOMPLETIONPORTS")
  614. #endif
  615. //
  616. // DPNBUILD_WINSOCKSTATISTICS - Track statistics regarding the Winsock for debugging/tuning
  617. //
  618. #ifdef DPNBUILD_WINSOCKSTATISTICS
  619. #pragma message(" DPNBUILD_WINSOCKSTATISTICS")
  620. #endif
  621. //
  622. // DPNBUILD_XNETSECURITY - Supports XNet security features
  623. //
  624. #ifdef DPNBUILD_XNETSECURITY
  625. #pragma message(" DPNBUILD_XNETSECURITY")
  626. #endif