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
12extern "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
21typedef 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
37typedef 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
45typedef 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
52typedef struct _WDS_TRANSPORTPROVIDER_SETTINGS {
53  ULONG ulLength;
54  ULONG ulLength;
55} WDS_TRANSPORTPROVIDER_SETTINGS, *PWDS_TRANSPORTPROVIDER_SETTINGS;
56
57PVOID WDSMCSAPI WdsTransportServerAllocateBuffer(
58  HANDLE hProvider,
59  ULONG ulBufferSize
60);
61
62HRESULT WDSMCSAPI WdsTransportServerCompleteRead(
63  HANDLE hProvider,
64  ULONG ulBytesRead,
65  PVOID pvUserData,
66  HRESULT hReadResult
67);
68
69HRESULT WDSMCSAPI WdsTransportServerFreeBuffer(
70  HANDLE hProvider,
71  PVOID pvBuffer
72);
73
74HRESULT WDSMCSAPI WdsTransportServerRegisterCallback(
75  HANDLE hProvider,
76  TRANSPORTPROVIDER_CALLBACK_ID CallbackId,
77  PVOID pfnCallback
78);
79
80HRESULT WDSMCSAPI WdsTransportServerTraceV(
81  HANDLE hProvider,
82  WDS_MC_SEVERITY Severity,
83  LPCWSTR pwszFormat,
84  va_list Params
85);
86
87HRESULT 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