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.

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