wdstci.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef _INC_WDSCLIENTAPI
  7. #define _INC_WDSCLIENTAPI
  8. #include <wdstpdi.h>
  9. #if (_WIN32_WINNT >= 0x0600)
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13. #ifndef WDSTCIAPI
  14. #define WDSTCIAPI WINAPI
  15. #endif
  16. /* Wdstptc.dll is missing an implib because Vista clients don't have the dll to generate it from */
  17. typedef VOID (CALLBACK *PFN_WdsTransportClientReceiveContents)(
  18. HANDLE hSessionKey,
  19. PVOID pCallerData,
  20. PVOID pMetadata,
  21. ULONG ulSize,
  22. PULARGE_INTEGER pContentOffset
  23. );
  24. typedef VOID (CALLBACK *PFN_WdsTransportClientReceiveMetadata)(
  25. HANDLE hSessionKey,
  26. PVOID pCallerData,
  27. PVOID pMetadata,
  28. ULONG ulSize
  29. );
  30. typedef VOID (CALLBACK *PFN_WdsTransportClientSessionComplete)(
  31. HANDLE hSessionKey,
  32. PVOID pCallerData,
  33. DWORD dwError
  34. );
  35. typedef VOID (CALLBACK *PFN_WdsTransportClientSessionStart)(
  36. HANDLE hSessionKey,
  37. PVOID pCallerData,
  38. PULARGE_INTEGER FileSize
  39. );
  40. typedef VOID (CALLBACK *PFN_WdsTransportClientSessionStartEx)(
  41. HANDLE hSessionKey,
  42. PVOID pCallerData,
  43. PTRANSPORTCLIENT_SESSION_INFO Info
  44. );
  45. typedef enum _TRANSPORTCLIENT_CALLBACK_ID {
  46. WDS_TRANSPORTCLIENT_SESSION_START = 0,
  47. WDS_TRANSPORTCLIENT_RECEIVE_CONTENTS = 1,
  48. WDS_TRANSPORTCLIENT_SESSION_COMPLETE = 2,
  49. WDS_TRANSPORTCLIENT_RECEIVE_METADATA = 3,
  50. WDS_TRANSPORTCLIENT_SESSION_STARTEX = 4,
  51. WDS_TRANSPORTCLIENT_MAX_CALLBACKS = 5
  52. } TRANSPORTCLIENT_CALLBACK_ID,*PTRANSPORTCLIENT_CALLBACK_ID;
  53. typedef struct _TRANSPORTCLIENT_SESSION_INFO {
  54. ULONG ulStructureLength;
  55. ULARGE_INTEGER ullFileSize;
  56. ULONG ulBlockSize;
  57. } TRANSPORTCLIENT_SESSION_INFO, *PTRANSPORTCLIENT_SESSION_INFO;
  58. #define WDS_TRANSPORT_CLIENT_CURRENT_API_VERSION 1
  59. #define WDS_TRANSPORTCLIENT_AUTH 1
  60. #define WDS_TRANSPORTCLIENT_NO_AUTH 2
  61. #define WDS_TRANSPORTCLIENT_PROTOCOL_MULTICAST 1
  62. typedef struct _WDS_TRANSPORTCLIENT_REQUEST {
  63. ULONG ulLength;
  64. ULONG ulApiVersion;
  65. ULONG ulAuthLevel;
  66. LPCWSTR pwszServer;
  67. LPCWSTR pwszNamespace;
  68. LPCWSTR pwszObjectName;
  69. ULONG ulCacheSize;
  70. ULONG ulProtocol;
  71. PVOID pvProtocolData;
  72. ULONG ulProtocolDataLength;
  73. } WDS_TRANSPORTCLIENT_REQUEST, *PWDS_TRANSPORTCLIENT_REQUEST;
  74. DWORD WDSTCIAPI WdsTransportClientStartSession(
  75. HANDLE hSessionKey
  76. );
  77. DWORD WDSTCIAPI WdsTransportClientAddRefBuffer(
  78. PVOID pvBuffer
  79. );
  80. DWORD WDSTCIAPI WdsTransportClientCancelSession(
  81. HANDLE hSessionKey
  82. );
  83. DWORD WDSTCIAPI WdsTransportClientCloseSession(
  84. HANDLE hSessionKey
  85. );
  86. DWORD WDSTCIAPI WdsTransportClientCompleteReceive(
  87. HANDLE hSessionKey,
  88. HANDLE ulSize,
  89. PULARGE_INTEGER pullOffset
  90. );
  91. DWORD WDSTCIAPI WdsTransportClientInitialize(void);
  92. DWORD WDSTCIAPI WdsTransportClientInitializeSession(
  93. PWDS_TRANSPORTCLIENT_REQUEST pSessionRequest,
  94. PVOID pCallerData,
  95. PHANDLE hSessionKey
  96. );
  97. DWORD WDSTCIAPI WdsTransportClientQueryStatus(
  98. HANDLE hSessionKey,
  99. PULONG puStatus,
  100. PULONG puErrorCode
  101. );
  102. DWORD WDSTCIAPI WdsTransportClientRegisterCallback(
  103. HANDLE hSessionKey,
  104. TRANSPORTCLIENT_CALLBACK_ID CallbackId,
  105. PVOID pfnCallback
  106. );
  107. DWORD WDSTCIAPI WdsTransportClientReleaseBuffer(
  108. PVOID pvBuffer
  109. );
  110. DWORD WDSTCIAPI WdsTransportClientShutdown(void);
  111. DWORD WDSTCIAPI WdsTransportClientWaitForCompletion(
  112. HANDLE hSessionKey,
  113. ULONG uTimeout
  114. );
  115. #ifdef __cplusplus
  116. }
  117. #endif
  118. #endif /*(_WIN32_WINNT >= 0x0600)*/
  119. #endif /*_INC_WDSCLIENTAPI*/