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.

102 lines
3.5 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1994 - 1999
  6. //
  7. // File: conv.idl
  8. //
  9. //--------------------------------------------------------------------------
  10. [uuid(333a2276-0000-0000-0d00-00809c000000),version(3)]
  11. interface conv
  12. {
  13. import "nbase.idl";
  14. typedef unsigned long error_status_t;
  15. [idempotent]
  16. void conv_who_are_you(
  17. [in] handle_t Binding,
  18. [in, ref] UUID *pUuid,
  19. [in] unsigned long ServerBootTime,
  20. [out, ref] unsigned long *SequenceNumber,
  21. [out, ref] error_status_t *Status
  22. );
  23. [idempotent]
  24. void conv_who_are_you2(
  25. [in] handle_t Binding,
  26. [in, ref] UUID *pUuid,
  27. [in] unsigned long ServerBootTime,
  28. [out, ref] unsigned long *SequenceNumber,
  29. [out, ref] UUID *CASUuid,
  30. [out, ref] error_status_t *Status
  31. );
  32. [idempotent]
  33. void conv_are_you_there(
  34. [in] handle_t Binding,
  35. [in, ref] UUID * pUuid,
  36. [in] unsigned long ServerBootTime,
  37. [out, ref] error_status_t * Status
  38. );
  39. /*
  40. * OutMaxLength is the max length of a token for the security package being used.
  41. * It will be within a few K, but we will set the bound higher, just to be safe.
  42. */
  43. [idempotent]
  44. void conv_who_are_you_auth(
  45. [in] handle_t Binding,
  46. [in, ref] UUID * pUuid,
  47. [in] unsigned long ServerBootTime,
  48. [in, size_is(InLength)] byte InData[],
  49. [in] long InLength,
  50. [in, range(0, 20*1024)] long OutMaxLength,
  51. [out, ref] unsigned long * SequenceNumber,
  52. [out, ref] UUID * CASUuid,
  53. [out, length_is(*pOutLength), size_is(OutMaxLength)]
  54. byte OutData[],
  55. [out] long * pOutLength,
  56. [out, ref] error_status_t * Status
  57. );
  58. /*
  59. * C O N V _ W H O _ A R E _ Y O U _ A U T H _ M O R E
  60. *
  61. * This routine is used, in conjunction with the conv_who_are_you_auth()
  62. * operation, for retrieving oversized PACs. In the event that a client's
  63. * credentials are too large to fit within a single DG packet, the server
  64. * can retrieve the PAC, packet by packet, by repeated calls on this
  65. * operation.
  66. *
  67. * Note that because the "conv" interface is serviced directly by the
  68. * the DG protocol (as opposed to being handled by a call executor thread),
  69. * there is no additional client overhead with retrieving the PAC by
  70. * multiple single-packet calls, rather than a single multiple-packet call.
  71. * The small amount of overhead induced on the server side is more than
  72. * compensated for by being able to avoid adding flow-control/windowing
  73. * to the DG protocol's internal handling of the conv interface.
  74. *
  75. * Logically, this call returns
  76. *
  77. * client_credentials[index ... (index+out_max_len-1)]
  78. */
  79. [idempotent]
  80. void conv_who_are_you_auth_more(
  81. [in] handle_t Binding,
  82. [in, ref] UUID * pUuid,
  83. [in] unsigned long ServerBootTime,
  84. [in] long Index,
  85. [in, range(0, 20*1024)] long OutMaxLength,
  86. [out, length_is(*pOutLength), size_is(OutMaxLength)]
  87. byte OutData[],
  88. [out] long * pOutLength,
  89. [out, ref] error_status_t * Status
  90. );
  91. }