Source code of Windows XP (NT5)
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.

117 lines
2.4 KiB

  1. //
  2. // this header contains a bunch of junk we need to build
  3. // parse.c
  4. //
  5. #ifndef _EXTCRAP_H_
  6. #define _EXTCRAP_H_
  7. /* thrdpool.h */
  8. //
  9. // Pointer to a thread pool worker function.
  10. //
  11. typedef
  12. VOID
  13. (*PUL_WORK_ROUTINE)(
  14. IN struct _UL_WORK_ITEM * pWorkItem
  15. );
  16. //
  17. // A work item. A work item may only appear on the work queue once.
  18. //
  19. typedef struct _UL_WORK_ITEM // WorkItem
  20. {
  21. LIST_ENTRY QueueListEntry;
  22. PUL_WORK_ROUTINE pWorkRoutine;
  23. } UL_WORK_ITEM, *PUL_WORK_ITEM;
  24. /* engine.h */
  25. typedef enum _UL_CONN_HDR
  26. {
  27. ConnHdrNone,
  28. ConnHdrClose,
  29. ConnHdrKeepAlive,
  30. ConnHdrMax
  31. } UL_CONN_HDR;
  32. /* config .h */
  33. //
  34. // Define the additional formal and actual parameters used for the
  35. // various Reference/Dereference functions when reference debugging
  36. // is enabled.
  37. //
  38. #if REFERENCE_DEBUG
  39. #define REFERENCE_DEBUG_FORMAL_PARAMS ,PSTR pFileName,USHORT LineNumber
  40. #define REFERENCE_DEBUG_ACTUAL_PARAMS ,(PSTR)__FILE__,(USHORT)__LINE__
  41. #else // !REFERENCE_DEBUG
  42. #define REFERENCE_DEBUG_FORMAL_PARAMS
  43. #define REFERENCE_DEBUG_ACTUAL_PARAMS
  44. #endif // REFERENCE_DEBUG
  45. //
  46. // Pool tags.
  47. //
  48. #if USE_FREE_POOL_WITH_TAG
  49. #define MAKE_TAG(tag) ( (ULONG)(tag) | PROTECTED_POOL )
  50. #define MyFreePoolWithTag(a,t) ExFreePoolWithTag(a,t)
  51. #else // !USE_FREE_POOL_WITH_TAG
  52. #define MAKE_TAG(tag) ( (ULONG)(tag) )
  53. #define MyFreePoolWithTag(a,t) ExFreePool(a)
  54. #endif // USE_FREE_POOL_WITH_TAG
  55. #define MAKE_FREE_TAG(Tag) (((Tag) & 0xffffff00) | (ULONG)'x')
  56. #define IS_VALID_TAG(Tag) (((Tag) & 0x0000ffff) == 'lU' )
  57. // actual tags
  58. #define UL_INTERNAL_REQUEST_POOL_TAG MAKE_TAG( 'RHlU' )
  59. #define UL_KNOWN_HEADER_POOL_TAG MAKE_TAG( 'VHlU' )
  60. #define UL_UNKNOWN_HEADER_POOL_TAG MAKE_TAG( 'HUlU' )
  61. #define URL_POOL_TAG MAKE_TAG( 'LUlU' )
  62. /* made 'em up just for this file */
  63. //
  64. // pointers to things we don't care about
  65. //
  66. typedef struct _UL_NONPAGED_RESOURCE * PUL_NONPAGED_RESOURCE;
  67. typedef struct _UL_URL_CONFIG_GROUP_INFO * PUL_URL_CONFIG_GROUP_INFO;
  68. typedef struct _UL_CONNECTION * PUL_CONNECTION;
  69. typedef struct _IRP * PIRP;
  70. typedef struct _UL_CONNECTION * PUL_CONNECTION;
  71. /* proc.h */
  72. NTSTATUS
  73. UlAnsiToULongLong(
  74. PUCHAR pString,
  75. ULONG Base,
  76. PULONGLONG pValue
  77. );
  78. /* ultdi.h */
  79. VOID
  80. UlLocalAddressFromConnection(
  81. IN PUL_CONNECTION pConnection,
  82. OUT PTA_IP_ADDRESS pAddress
  83. );
  84. //
  85. // externs
  86. //
  87. extern ULONG g_UlDebug;
  88. #endif // _EXTCRAP_H