JD2022-TU1/main/extern/Camcam/PlatformSDK/Include/WdsClientApi.h

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__