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 11#ifdef __cplusplus 12extern "C" { 13#endif 14 15#ifndef WDSTCIAPI 16#define WDSTCIAPI WINAPI 17#endif 18 19/* Wdstptc.dll is missing an implib because Vista clients don't have the dll to generate it from */ 20 21typedef VOID (CALLBACK *PFN_WdsTransportClientReceiveContents)( 22 HANDLE hSessionKey, 23 PVOID pCallerData, 24 PVOID pMetadata, 25 ULONG ulSize, 26 PULARGE_INTEGER pContentOffset 27); 28 29typedef VOID (CALLBACK *PFN_WdsTransportClientReceiveMetadata)( 30 HANDLE hSessionKey, 31 PVOID pCallerData, 32 PVOID pMetadata, 33 ULONG ulSize 34); 35 36typedef VOID (CALLBACK *PFN_WdsTransportClientSessionComplete)( 37 HANDLE hSessionKey, 38 PVOID pCallerData, 39 DWORD dwError 40); 41 42typedef VOID (CALLBACK *PFN_WdsTransportClientSessionStart)( 43 HANDLE hSessionKey, 44 PVOID pCallerData, 45 PULARGE_INTEGER FileSize 46); 47 48typedef VOID (CALLBACK *PFN_WdsTransportClientSessionStartEx)( 49 HANDLE hSessionKey, 50 PVOID pCallerData, 51 PTRANSPORTCLIENT_SESSION_INFO Info 52); 53 54typedef enum _TRANSPORTCLIENT_CALLBACK_ID { 55 WDS_TRANSPORTCLIENT_SESSION_START = 0, 56 WDS_TRANSPORTCLIENT_RECEIVE_CONTENTS = 1, 57 WDS_TRANSPORTCLIENT_SESSION_COMPLETE = 2, 58 WDS_TRANSPORTCLIENT_RECEIVE_METADATA = 3, 59 WDS_TRANSPORTCLIENT_SESSION_STARTEX = 4, 60 WDS_TRANSPORTCLIENT_MAX_CALLBACKS = 5 61} TRANSPORTCLIENT_CALLBACK_ID,*PTRANSPORTCLIENT_CALLBACK_ID; 62 63typedef struct _TRANSPORTCLIENT_SESSION_INFO { 64 ULONG ulStructureLength; 65 ULARGE_INTEGER ullFileSize; 66 ULONG ulBlockSize; 67} TRANSPORTCLIENT_SESSION_INFO, *PTRANSPORTCLIENT_SESSION_INFO; 68 69#define WDS_TRANSPORT_CLIENT_CURRENT_API_VERSION 1 70 71#define WDS_TRANSPORTCLIENT_AUTH 1 72#define WDS_TRANSPORTCLIENT_NO_AUTH 2 73 74#define WDS_TRANSPORTCLIENT_PROTOCOL_MULTICAST 1 75 76typedef struct _WDS_TRANSPORTCLIENT_REQUEST { 77 ULONG ulLength; 78 ULONG ulApiVersion; 79 ULONG ulAuthLevel; 80 LPCWSTR pwszServer; 81 LPCWSTR pwszNamespace; 82 LPCWSTR pwszObjectName; 83 ULONG ulCacheSize; 84 ULONG ulProtocol; 85 PVOID pvProtocolData; 86 ULONG ulProtocolDataLength; 87} WDS_TRANSPORTCLIENT_REQUEST, *PWDS_TRANSPORTCLIENT_REQUEST; 88 89DWORD WDSTCIAPI WdsTransportClientStartSession( 90 HANDLE hSessionKey 91); 92 93DWORD WDSTCIAPI WdsTransportClientAddRefBuffer( 94 PVOID pvBuffer 95); 96 97DWORD WDSTCIAPI WdsTransportClientCancelSession( 98 HANDLE hSessionKey 99); 100 101DWORD WDSTCIAPI WdsTransportClientCloseSession( 102 HANDLE hSessionKey 103); 104 105DWORD WDSTCIAPI WdsTransportClientCompleteReceive( 106 HANDLE hSessionKey, 107 HANDLE ulSize, 108 PULARGE_INTEGER pullOffset 109); 110 111DWORD WDSTCIAPI WdsTransportClientInitialize(void); 112 113DWORD WDSTCIAPI WdsTransportClientInitializeSession( 114 PWDS_TRANSPORTCLIENT_REQUEST pSessionRequest, 115 PVOID pCallerData, 116 PHANDLE hSessionKey 117); 118 119DWORD WDSTCIAPI WdsTransportClientQueryStatus( 120 HANDLE hSessionKey, 121 PULONG puStatus, 122 PULONG puErrorCode 123); 124 125DWORD WDSTCIAPI WdsTransportClientRegisterCallback( 126 HANDLE hSessionKey, 127 TRANSPORTCLIENT_CALLBACK_ID CallbackId, 128 PVOID pfnCallback 129); 130 131DWORD WDSTCIAPI WdsTransportClientReleaseBuffer( 132 PVOID pvBuffer 133); 134 135DWORD WDSTCIAPI WdsTransportClientShutdown(void); 136 137DWORD WDSTCIAPI WdsTransportClientWaitForCompletion( 138 HANDLE hSessionKey, 139 ULONG uTimeout 140); 141 142#ifdef __cplusplus 143} 144#endif 145#endif /*(_WIN32_WINNT >= 0x0600)*/ 146#endif /*_INC_WDSCLIENTAPI*/ 147