345 lines
5.8 KiB
C
345 lines
5.8 KiB
C
/*++
|
|
|
|
Copyright (c) 2006 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
WdsClientApi.h
|
|
|
|
Abstract:
|
|
|
|
WDS Client API public header file.
|
|
|
|
Environment:
|
|
|
|
User Mode
|
|
|
|
--*/
|
|
#ifndef __WDSCLIENTAPI_H__
|
|
#define __WDSCLIENTAPI_H__
|
|
|
|
#if (_MSC_VER > 1000)
|
|
#pragma once
|
|
#endif
|
|
|
|
#define WDSCLIAPI WINAPI
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
//
|
|
// Structures
|
|
//
|
|
|
|
|
|
// Credentials structure.
|
|
//
|
|
typedef struct tagWDS_CLI_CRED
|
|
{
|
|
PCWSTR pwszUserName,
|
|
pwszDomain,
|
|
pwszPassword;
|
|
} WDS_CLI_CRED, *PWDS_CLI_CRED, *LPWDS_CLI_CRED;
|
|
|
|
|
|
//
|
|
// General functions
|
|
//
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliClose(
|
|
__in HANDLE Handle );
|
|
|
|
|
|
typedef
|
|
VOID
|
|
(WDSCLIAPI *PFN_WdsCliTraceFunction)(
|
|
__in LPCWSTR pwszFormat,
|
|
__in va_list Params
|
|
);
|
|
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliRegisterTrace(
|
|
__in_opt PFN_WdsCliTraceFunction pfn );
|
|
|
|
//
|
|
// Image enumeration functions
|
|
//
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliFindFirstImage(
|
|
__in HANDLE hSession,
|
|
__out PHANDLE phFindHandle );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliFindNextImage(
|
|
__in HANDLE Handle );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetEnumerationFlags(
|
|
__in HANDLE Handle,
|
|
__out PDWORD pdwFlags );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetImageHandleFromFindHandle(
|
|
__in HANDLE FindHandle,
|
|
__out PHANDLE phImageHandle );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetImageHandleFromTransferHandle(
|
|
__in HANDLE hTransfer,
|
|
__out PHANDLE phImageHandle );
|
|
|
|
|
|
//
|
|
// Image enumeration constants
|
|
//
|
|
|
|
enum
|
|
{
|
|
WdsCliFlagEnumFilterVersion = 0x0001
|
|
};
|
|
|
|
//
|
|
// Session functions
|
|
//
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliCreateSession(
|
|
__in PWSTR pwszServer,
|
|
__in_opt PWDS_CLI_CRED pCred,
|
|
__out PHANDLE phSession );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliAuthorizeSession(
|
|
__inout HANDLE hSession,
|
|
__in_opt PWDS_CLI_CRED pCred );
|
|
|
|
//
|
|
// Client -> Server Logging functions
|
|
//
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliInitializeLog(
|
|
__in HANDLE hSession,
|
|
__in ULONG ulClientArchitecture,
|
|
__in PWSTR pwszClientId,
|
|
__in PWSTR pwszClientAddress );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliLog(
|
|
__in HANDLE hSession,
|
|
__in ULONG ulLogLevel,
|
|
__in ULONG ulMessageCode,
|
|
... );
|
|
|
|
//
|
|
// Log events sent by the client to the server.
|
|
// Each one of these has a set of variables associated with it
|
|
// that must be present in the request in order for the request to be
|
|
// considered valid.
|
|
//
|
|
typedef enum
|
|
{
|
|
WDS_LOG_TYPE_CLIENT_ERROR = 1,
|
|
WDS_LOG_TYPE_CLIENT_STARTED,
|
|
WDS_LOG_TYPE_CLIENT_FINISHED,
|
|
WDS_LOG_TYPE_CLIENT_IMAGE_SELECTED,
|
|
WDS_LOG_TYPE_CLIENT_APPLY_STARTED,
|
|
WDS_LOG_TYPE_CLIENT_APPLY_FINISHED,
|
|
WDS_LOG_TYPE_CLIENT_GENERIC_MESSAGE,
|
|
WDS_LOG_TYPE_CLIENT_UNATTEND_MODE,
|
|
WDS_LOG_TYPE_CLIENT_TRANSFER_START,
|
|
WDS_LOG_TYPE_CLIENT_TRANSFER_END,
|
|
WDS_LOG_TYPE_CLIENT_TRANSFER_DOWNGRADE,
|
|
WDS_LOG_TYPE_CLIENT_DOMAINJOINERROR,
|
|
WDS_LOG_TYPE_CLIENT_POST_ACTIONS_START,
|
|
WDS_LOG_TYPE_CLIENT_POST_ACTIONS_END,
|
|
WDS_LOG_TYPE_CLIENT_APPLY_STARTED_2,
|
|
WDS_LOG_TYPE_CLIENT_APPLY_FINISHED_2,
|
|
WDS_LOG_TYPE_CLIENT_DOMAINJOINERROR_2, // Only add entries before WDS_LOG_TYPE_CLIENT_MAX_CODE.
|
|
WDS_LOG_TYPE_CLIENT_MAX_CODE
|
|
};
|
|
|
|
//
|
|
// Log levels.
|
|
//
|
|
typedef enum
|
|
{
|
|
WDS_LOG_LEVEL_DISABLED = 0,
|
|
WDS_LOG_LEVEL_ERROR = 1,
|
|
WDS_LOG_LEVEL_WARNING = 2,
|
|
WDS_LOG_LEVEL_INFO = 3
|
|
};
|
|
|
|
//
|
|
// Image information functions
|
|
//
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetImageName(
|
|
__in HANDLE hIfh,
|
|
__out PWSTR *ppwszValue );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetImageDescription(
|
|
__in HANDLE hIfh,
|
|
__out PWSTR *ppwszValue );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetImageLanguage(
|
|
__in HANDLE hIfh,
|
|
__out PWSTR *ppwszValue );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetImageLanguages(
|
|
__in HANDLE hIfh,
|
|
__out_ecount(*pdwNumValues) PTSTR **pppszValues,
|
|
__out PDWORD pdwNumValues );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetImageVersion(
|
|
__in HANDLE hIfh,
|
|
__out PWSTR *ppwszValue );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetImagePath(
|
|
__in HANDLE hIfh,
|
|
__out PWSTR *ppwszValue );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetImageIndex(
|
|
__in HANDLE hIfh,
|
|
__out PDWORD pdwValue );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetImageArchitecture(
|
|
__in HANDLE hIfh,
|
|
__out PDWORD pdwValue );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetImageLastModifiedTime(
|
|
__in HANDLE hIfh,
|
|
__out PSYSTEMTIME *ppSysTimeValue );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetImageSize(
|
|
__in HANDLE hIfh,
|
|
__out PULONGLONG pullValue );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetImageHalName(
|
|
__in HANDLE hIfh,
|
|
__out PWSTR *ppwszValue );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetImageGroup(
|
|
__in HANDLE hIfh,
|
|
__out PWSTR *ppwszValue );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetImageNamespace(
|
|
__in HANDLE hIfh,
|
|
__out PWSTR *ppwszValue );
|
|
|
|
|
|
//
|
|
// Image transfer functions.
|
|
//
|
|
|
|
// Callback function
|
|
//
|
|
|
|
typedef
|
|
VOID
|
|
(WDSCLIAPI *PFN_WdsCliCallback)(
|
|
DWORD dwMessageId,
|
|
__in_opt WPARAM wParam,
|
|
__in_opt LPARAM lParam,
|
|
__in_opt PVOID pvUserData );
|
|
|
|
// Callback messages.
|
|
//
|
|
typedef enum
|
|
{
|
|
WDS_CLI_MSG_START = 0,
|
|
WDS_CLI_MSG_COMPLETE,
|
|
WDS_CLI_MSG_PROGRESS,
|
|
WDS_CLI_MSG_TEXT,
|
|
};
|
|
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliGetTransferSize(
|
|
__in HANDLE hIfh,
|
|
__out PULONGLONG pullValue );
|
|
|
|
// Flags for transfer functions
|
|
//
|
|
#define WDS_CLI_TRANSFER_ASYNCHRONOUS 0x00000001
|
|
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliTransferImage(
|
|
__in HANDLE hImage,
|
|
__in PWSTR pwszLocalPath,
|
|
__in DWORD dwFlags,
|
|
__in DWORD dwReserved,
|
|
__in_opt PFN_WdsCliCallback pfnWdsCliCallback,
|
|
__in_opt PVOID pvUserData,
|
|
__out PHANDLE phTransfer );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliTransferFile(
|
|
__in PCWSTR pwszServer,
|
|
__in PCWSTR pwszNamespace,
|
|
__in PCWSTR pwszRemoteFilePath,
|
|
__in PCWSTR pwszLocalFilePath,
|
|
__in DWORD dwFlags,
|
|
__in DWORD dwReserved,
|
|
__in_opt PFN_WdsCliCallback pfnWdsCliCallback,
|
|
__in_opt PVOID pvUserData,
|
|
__out PHANDLE phTransfer );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliCancelTransfer(
|
|
__in HANDLE hTransfer );
|
|
|
|
HRESULT
|
|
WDSCLIAPI
|
|
WdsCliWaitForTransfer(
|
|
__in HANDLE hTransfer );
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // __WDSCLIENTAPI_H__
|
|
|