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.

118 lines
3.0 KiB

  1. /************************************************************************
  2. Copyright (c) 1993 Microsoft Corporation
  3. Module Name :
  4. hndl.h
  5. Abstract :
  6. To hold prototypes of support routines for interpreting handles in
  7. support of Format Strings.
  8. Author :
  9. Bruce McQuistan (brucemc)
  10. Revision History :
  11. ***********************************************************************/
  12. #ifndef __HNDL_H__
  13. #define __HNDL_H__
  14. //
  15. // The following is to be used in as masks for flags passed in these
  16. // routines.
  17. //
  18. #define MARSHALL_MASK 0x2
  19. #define IMPLICIT_MASK 0x4
  20. #define BINDING_MASK 0x8
  21. //
  22. // Next, a macro for getting the current call handle. On dos,win16, it'll
  23. // never be called.
  24. //
  25. #define GET_CURRENT_CALL_HANDLE() I_RpcGetCurrentCallHandle()
  26. //
  27. // Some typedefs to keep the front end of the C compiler happy and possibly to
  28. // improve code generation.
  29. //
  30. typedef void * (__RPC_API * GENERIC_BIND_FUNC_ARGCHAR)(uchar);
  31. typedef void * (__RPC_API * GENERIC_BIND_FUNC_ARGSHORT)(ushort);
  32. typedef void * (__RPC_API * GENERIC_BIND_FUNC_ARGLONG)(ulong);
  33. typedef void (__RPC_API * GENERIC_UNBIND_FUNC_ARGCHAR)(uchar, handle_t);
  34. typedef void (__RPC_API * GENERIC_UNBIND_FUNC_ARGSHORT)(ushort, handle_t);
  35. typedef void (__RPC_API * GENERIC_UNBIND_FUNC_ARGLONG)(ulong, handle_t);
  36. #if defined(__RPC_WIN64__)
  37. typedef void * (__RPC_API * GENERIC_BIND_FUNC_ARGINT64)(uint64);
  38. typedef void (__RPC_API * GENERIC_UNBIND_FUNC_ARGINT64)(uint64, handle_t);
  39. #endif
  40. handle_t
  41. GenericHandleMgr(
  42. PMIDL_STUB_DESC pStubDesc,
  43. uchar * ArgPtr,
  44. PFORMAT_STRING FmtString,
  45. uint Flags,
  46. handle_t * pSavedGenericHandle
  47. );
  48. void
  49. GenericHandleUnbind(
  50. PMIDL_STUB_DESC pStubDesc,
  51. uchar * ArgPtr,
  52. PFORMAT_STRING FmtString,
  53. uint Flags,
  54. handle_t * pSavedGenericHandle
  55. );
  56. handle_t
  57. ExplicitBindHandleMgr(
  58. PMIDL_STUB_DESC pStubDesc,
  59. uchar * ArgPtr,
  60. PFORMAT_STRING FmtString,
  61. handle_t * pSavedGenericHandle
  62. );
  63. handle_t
  64. ImplicitBindHandleMgr(
  65. PMIDL_STUB_DESC pStubDesc,
  66. uchar HandleType,
  67. handle_t * pSavedGenericHandle
  68. );
  69. unsigned char * RPC_ENTRY
  70. NdrMarshallHandle(
  71. PMIDL_STUB_MESSAGE pStubMsg,
  72. uchar * pArg,
  73. PFORMAT_STRING FmtString
  74. );
  75. unsigned char * RPC_ENTRY
  76. NdrUnmarshallHandle(
  77. PMIDL_STUB_MESSAGE pStubMsg,
  78. uchar ** ppArg,
  79. PFORMAT_STRING FmtString,
  80. uchar fIgnored
  81. );
  82. void
  83. NdrSaveContextHandle (
  84. PMIDL_STUB_MESSAGE pStubMsg,
  85. NDR_SCONTEXT CtxtHandle,
  86. uchar ** ppArg,
  87. PFORMAT_STRING pFormat
  88. );
  89. void
  90. NdrContextHandleQueueFree(
  91. PMIDL_STUB_MESSAGE pStubMsg,
  92. void * FixedArray
  93. );
  94. #endif __HNDL_H__