Home | History | Annotate | Download | only in include
      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
     12 extern "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 
     21 typedef VOID (CALLBACK *PFN_WdsTransportClientReceiveContents)(
     22   HANDLE hSessionKey,
     23   PVOID pCallerData,
     24   PVOID pMetadata,
     25   ULONG ulSize,
     26   PULARGE_INTEGER pContentOffset
     27 );
     28 
     29 typedef VOID (CALLBACK *PFN_WdsTransportClientReceiveMetadata)(
     30   HANDLE hSessionKey,
     31   PVOID pCallerData,
     32   PVOID pMetadata,
     33   ULONG ulSize
     34 );
     35 
     36 typedef VOID (CALLBACK *PFN_WdsTransportClientSessionComplete)(
     37   HANDLE hSessionKey,
     38   PVOID pCallerData,
     39   DWORD dwError
     40 );
     41 
     42 typedef VOID (CALLBACK *PFN_WdsTransportClientSessionStart)(
     43   HANDLE hSessionKey,
     44   PVOID pCallerData,
     45   PULARGE_INTEGER FileSize
     46 );
     47 
     48 typedef VOID (CALLBACK *PFN_WdsTransportClientSessionStartEx)(
     49   HANDLE hSessionKey,
     50   PVOID pCallerData,
     51   PTRANSPORTCLIENT_SESSION_INFO Info
     52 );
     53 
     54 typedef 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 
     63 typedef 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 
     76 typedef 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 
     89 DWORD WDSTCIAPI WdsTransportClientStartSession(
     90   HANDLE hSessionKey
     91 );
     92 
     93 DWORD WDSTCIAPI WdsTransportClientAddRefBuffer(
     94   PVOID pvBuffer
     95 );
     96 
     97 DWORD WDSTCIAPI WdsTransportClientCancelSession(
     98   HANDLE hSessionKey
     99 );
    100 
    101 DWORD WDSTCIAPI WdsTransportClientCloseSession(
    102   HANDLE hSessionKey
    103 );
    104 
    105 DWORD WDSTCIAPI WdsTransportClientCompleteReceive(
    106   HANDLE hSessionKey,
    107   HANDLE ulSize,
    108   PULARGE_INTEGER pullOffset
    109 );
    110 
    111 DWORD WDSTCIAPI WdsTransportClientInitialize(void);
    112 
    113 DWORD WDSTCIAPI WdsTransportClientInitializeSession(
    114   PWDS_TRANSPORTCLIENT_REQUEST pSessionRequest,
    115   PVOID pCallerData,
    116   PHANDLE hSessionKey
    117 );
    118 
    119 DWORD WDSTCIAPI WdsTransportClientQueryStatus(
    120   HANDLE hSessionKey,
    121   PULONG puStatus,
    122   PULONG puErrorCode
    123 );
    124 
    125 DWORD WDSTCIAPI WdsTransportClientRegisterCallback(
    126   HANDLE hSessionKey,
    127   TRANSPORTCLIENT_CALLBACK_ID CallbackId,
    128   PVOID pfnCallback
    129 );
    130 
    131 DWORD WDSTCIAPI WdsTransportClientReleaseBuffer(
    132   PVOID pvBuffer
    133 );
    134 
    135 DWORD WDSTCIAPI WdsTransportClientShutdown(void);
    136 
    137 DWORD 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