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.

242 lines
6.4 KiB

  1. /*++
  2. Copyright (c) 1993 Microsoft Corporation
  3. Module Name:
  4. ncpsvc.idl
  5. Abstract:
  6. This is the IDL file that describes the RPC interface for the
  7. NCP server internal APIs.
  8. Author:
  9. Yi-Hsin Sung 11-Sept-1993
  10. Environment:
  11. User Mode -Win32
  12. --*/
  13. //
  14. // Interface Attributes
  15. //
  16. [
  17. uuid(E67AB081-9844-3521-9D32-834F038001C1),
  18. version(1.0),
  19. #ifdef __midl
  20. ms_union,
  21. #endif // __midl
  22. pointer_default(unique)
  23. ]
  24. //
  25. // Interface Keyword
  26. //
  27. interface ncpsvc
  28. //
  29. // Interface Body
  30. //
  31. {
  32. import "imports.idl";
  33. //
  34. // Handle type
  35. //
  36. typedef [handle] wchar_t * NCPSVC_HANDLE;
  37. //
  38. // Data type
  39. //
  40. typedef struct _FPNWVOLUMEINFO_CONTAINER {
  41. DWORD EntriesRead;
  42. [size_is(EntriesRead)] PFPNWVOLUMEINFO Buffer;
  43. } FPNWVOLUMEINFO_CONTAINER, *PFPNWVOLUMEINFO_CONTAINER;
  44. typedef struct _NWVOLUMEINFO_CONTAINER {
  45. DWORD EntriesRead;
  46. [size_is(EntriesRead)] PNWVOLUMEINFO Buffer;
  47. } NWVOLUMEINFO_CONTAINER, *PNWVOLUMEINFO_CONTAINER;
  48. typedef struct _FPNWCONNECTIONINFO_CONTAINER {
  49. DWORD EntriesRead;
  50. [size_is(EntriesRead)] PFPNWCONNECTIONINFO Buffer;
  51. } FPNWCONNECTIONINFO_CONTAINER, *PFPNWCONNECTIONINFO_CONTAINER;
  52. typedef struct _NWCONNECTIONINFO_CONTAINER {
  53. DWORD EntriesRead;
  54. [size_is(EntriesRead)] PNWCONNECTIONINFO Buffer;
  55. } NWCONNECTIONINFO_CONTAINER, *PNWCONNECTIONINFO_CONTAINER;
  56. typedef struct _FPNWVOLUMECONNINFO_CONTAINER {
  57. DWORD EntriesRead;
  58. [size_is(EntriesRead)] PFPNWVOLUMECONNINFO Buffer;
  59. } FPNWVOLUMECONNINFO_CONTAINER, *PFPNWVOLUMECONNINFO_CONTAINER;
  60. typedef struct _NWVOLUMECONNINFO_CONTAINER {
  61. DWORD EntriesRead;
  62. [size_is(EntriesRead)] PNWVOLUMECONNINFO Buffer;
  63. } NWVOLUMECONNINFO_CONTAINER, *PNWVOLUMECONNINFO_CONTAINER;
  64. typedef struct _FPNWFILEINFO_CONTAINER {
  65. DWORD EntriesRead;
  66. [size_is(EntriesRead)] PFPNWFILEINFO Buffer;
  67. } FPNWFILEINFO_CONTAINER, *PFPNWFILEINFO_CONTAINER;
  68. typedef struct _NWFILEINFO_CONTAINER {
  69. DWORD EntriesRead;
  70. [size_is(EntriesRead)] PNWFILEINFO Buffer;
  71. } NWFILEINFO_CONTAINER, *PNWFILEINFO_CONTAINER;
  72. //
  73. // Internal 2 structure used for passing and/or returning
  74. // self-relative security descriptors.
  75. //
  76. typedef struct _FPNWVolumeInfo_2_I
  77. {
  78. [string] LPWSTR lpVolumeName;
  79. DWORD dwType;
  80. DWORD dwMaxUses;
  81. DWORD dwCurrentUses;
  82. [string] LPWSTR lpPath;
  83. DWORD dwFileSecurityDescriptorLength;
  84. [size_is(dwFileSecurityDescriptorLength)] PUCHAR FileSecurityDescriptor;
  85. } FPNWVOLUMEINFO_2_I, *PFPNWVOLUMEINFO_2_I;
  86. typedef [switch_type(unsigned long)] union _VOLUME_INFO { // for Get & Set Info
  87. [case(1)]
  88. FPNWVOLUMEINFO VolumeInfo1;
  89. [case(2)]
  90. FPNWVOLUMEINFO_2_I VolumeInfo2;
  91. [default]
  92. ;
  93. } VOLUME_INFO, *PVOLUME_INFO, *LPVOLUME_INFO;
  94. //
  95. // Function prototype
  96. //
  97. DWORD
  98. NwrServerGetInfo(
  99. [in, string, unique] NCPSVC_HANDLE pServerName,
  100. [in] DWORD dwLevel,
  101. [out] PFPNWSERVERINFO *ppServerInfo
  102. );
  103. DWORD
  104. NwrServerSetInfo(
  105. [in, string, unique] NCPSVC_HANDLE pServerName,
  106. [in] DWORD dwLevel,
  107. [in] PFPNWSERVERINFO pServerInfo
  108. );
  109. DWORD
  110. NwrVolumeAdd(
  111. [in, string, unique] NCPSVC_HANDLE pServerName,
  112. [in] DWORD dwLevel,
  113. [in, switch_is(dwLevel)] LPVOLUME_INFO pVolumeInfo
  114. );
  115. DWORD
  116. NwrVolumeDel(
  117. [in, string, unique] NCPSVC_HANDLE pServerName,
  118. [in, string] LPWSTR pVolumeName
  119. );
  120. DWORD
  121. NwrVolumeEnum(
  122. [in, string, unique] NCPSVC_HANDLE pServerName,
  123. [in] DWORD dwLevel,
  124. [out] PFPNWVOLUMEINFO_CONTAINER pVolumeInfoContainer,
  125. [in, out, unique] PDWORD resumeHandle
  126. );
  127. DWORD
  128. NwrVolumeGetInfo(
  129. [in, string, unique] NCPSVC_HANDLE pServerName,
  130. [in, string] LPWSTR pVolumeName,
  131. [in] DWORD dwLevel,
  132. [out, switch_is(dwLevel)] LPVOLUME_INFO *ppVolumeInfo
  133. );
  134. DWORD
  135. NwrVolumeSetInfo(
  136. [in, string, unique] NCPSVC_HANDLE pServerName,
  137. [in, string] LPWSTR pVolumeName,
  138. [in] DWORD dwLevel,
  139. [in, switch_is(dwLevel)] LPVOLUME_INFO pVolumeInfo
  140. );
  141. DWORD
  142. NwrConnectionEnum(
  143. [in, string, unique] NCPSVC_HANDLE pServerName,
  144. [in] DWORD dwLevel,
  145. [out] PFPNWCONNECTIONINFO_CONTAINER pConnectionInfoContainer,
  146. [in, out, unique] PDWORD resumeHandle
  147. );
  148. DWORD
  149. NwrConnectionDel(
  150. [in, string, unique] NCPSVC_HANDLE pServerName,
  151. [in] DWORD dwConnectionId
  152. );
  153. DWORD
  154. NwrVolumeConnEnum(
  155. [in, string, unique] NCPSVC_HANDLE pServerName,
  156. [in] DWORD dwLevel,
  157. [in, string, unique] LPWSTR pVolumeName,
  158. [in] DWORD dwConnectionId,
  159. [out] PFPNWVOLUMECONNINFO_CONTAINER pVolumeConnInfoContainer,
  160. [in, out, unique] PDWORD resumeHandle
  161. );
  162. DWORD
  163. NwrFileEnum(
  164. [in, string, unique] NCPSVC_HANDLE pServerName,
  165. [in] DWORD dwLevel,
  166. [in, string, unique] LPWSTR pPathName,
  167. [out] PFPNWFILEINFO_CONTAINER pFileInfoContainer,
  168. [in, out, unique] PDWORD resumeHandle
  169. );
  170. DWORD
  171. NwrFileClose(
  172. [in, string, unique] NCPSVC_HANDLE pServerName,
  173. [in] DWORD dwFileId
  174. );
  175. DWORD
  176. NwrMessageBufferSend(
  177. [in, string, unique] NCPSVC_HANDLE pServerName,
  178. [in] DWORD dwConnectionId,
  179. [in] DWORD fConsoleBroadcast,
  180. [in, size_is(cbBuffer)] LPBYTE pbBuffer,
  181. [in] DWORD cbBuffer
  182. );
  183. DWORD
  184. NwrSetDefaultQueue(
  185. [in, string, unique] NCPSVC_HANDLE pServerName,
  186. [in, string] LPWSTR pQueueName
  187. );
  188. DWORD
  189. NwrAddPServer(
  190. [in, string, unique] NCPSVC_HANDLE pServerName,
  191. [in, string] LPWSTR pPServerName
  192. );
  193. DWORD
  194. NwrRemovePServer(
  195. [in, string, unique] NCPSVC_HANDLE pServerName,
  196. [in, string] LPWSTR pPServerName
  197. );
  198. }