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 
7 #ifndef _INC_WDSTPDI
8 #define _INC_WDSTPDI
9 #if (_WIN32_WINNT >= 0x0600)
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 /* 	Wdsmc.dll is missing an implib because Vista clients don't have the dll to generate it from */
16 
17 #ifndef WDSMCSAPI
18 #define WDSMCSAPI WINAPI
19 #endif
20 
21 typedef enum _TRANSPORTPROVIDER_CALLBACK_ID {
22   WDS_TRANSPORTPROVIDER_CREATE_INSTANCE         = 0,
23   WDS_TRANSPORTPROVIDER_COMPARE_CONTENT         = 1,
24   WDS_TRANSPORTPROVIDER_OPEN_CONTENT            = 2,
25   WDS_TRANSPORTPROVIDER_USER_ACCESS_CHECK       = 3,
26   WDS_TRANSPORTPROVIDER_GET_CONTENT_SIZE        = 4,
27   WDS_TRANSPORTPROVIDER_READ_CONTENT            = 5,
28   WDS_TRANSPORTPROVIDER_CLOSE_CONTENT           = 6,
29   WDS_TRANSPORTPROVIDER_CLOSE_INSTANCE          = 7,
30   WDS_TRANSPORTPROVIDER_SHUTDOWN                = 8,
31   WDS_TRANSPORTPROVIDER_DUMP_STATE              = 9,
32   WDS_TRANSPORTPROVIDER_REFRESH_SETTINGS        = 10,
33   WDS_TRANSPORTPROVIDER_GET_CONTENT_METADATA    = 11,
34   WDS_TRANSPORTPROVIDER_MAX_CALLBACKS           = 12
35 } TRANSPORTPROVIDER_CALLBACK_ID, *PTRANSPORTPROVIDER_CALLBACK_ID;
36 
37 typedef enum _WDS_MC_SEVERITY {
38   WDS_MC_TRACE_VERBOSE = 0x00010000,
39   WDS_MC_TRACE_INFO = 0x00020000,
40   WDS_MC_TRACE_WARNING = 0x00040000,
41   WDS_MC_TRACE_ERROR = 0x00080000,
42   WDS_MC_TRACE_FATAL = 0x00010000
43 } WDS_MC_SEVERITY;
44 
45 typedef struct _WDS_TRANSPORTPROVIDER_INIT_PARAMS {
46   ULONG  ulLength;
47   ULONG  ulMcServerVersion;
48   HKEY   hRegistryKey;
49   HANDLE hProvider;
50 } WDS_TRANSPORTPROVIDER_INIT_PARAMS, *PWDS_TRANSPORTPROVIDER_INIT_PARAMS;
51 
52 typedef struct _WDS_TRANSPORTPROVIDER_SETTINGS {
53   ULONG ulLength;
54   ULONG ulLength;
55 } WDS_TRANSPORTPROVIDER_SETTINGS, *PWDS_TRANSPORTPROVIDER_SETTINGS;
56 
57 PVOID WDSMCSAPI WdsTransportServerAllocateBuffer(
58   HANDLE hProvider,
59   ULONG ulBufferSize
60 );
61 
62 HRESULT WDSMCSAPI WdsTransportServerCompleteRead(
63   HANDLE hProvider,
64   ULONG ulBytesRead,
65   PVOID pvUserData,
66   HRESULT hReadResult
67 );
68 
69 HRESULT WDSMCSAPI WdsTransportServerFreeBuffer(
70   HANDLE hProvider,
71   PVOID pvBuffer
72 );
73 
74 HRESULT WDSMCSAPI WdsTransportServerRegisterCallback(
75   HANDLE hProvider,
76   TRANSPORTPROVIDER_CALLBACK_ID CallbackId,
77   PVOID pfnCallback
78 );
79 
80 HRESULT WDSMCSAPI WdsTransportServerTraceV(
81   HANDLE hProvider,
82   WDS_MC_SEVERITY Severity,
83   LPCWSTR pwszFormat,
84   va_list Params
85 );
86 
87 HRESULT WDSMCSAPI WdsTransportServerTrace(
88   HANDLE hProvider,
89   WDS_MC_SEVERITY Severity,
90   LPCWSTR pwszFormat
91 );
92 
93 #ifdef __cplusplus
94 }
95 #endif
96 #endif /*(_WIN32_WINNT >= 0x0600)*/
97 #endif /*_INC_WDSTPDI*/
98