Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

6 Appendix A: Full IDL

For ease of implementation, the full IDL is provided below, where "ms-dtyp.idl" refers to the IDL found in [MS-DTYP] section 5. The syntax uses the IDL syntax extensions defined in [MS-RPCE] section 2.2.4 and [MS-RPCE] section 3.1.1.5.1. For example, as noted in [MS-RPCE] section 2.2.4.9, a pointer_default declaration is not required and pointer_default(unique) is assumed.

import "ms-dtyp.idl";

[
    uuid(A8E0653C-2744-4389-A61D-7373DF8B2292),
    version(1.0),
    ms_union,
    pointer_default(unique)
]
    
interface FileServerVssAgent
{
    typedef struct _FSSAGENT_SHARE_MAPPING_1 {
        GUID ShadowCopySetId;
        GUID ShadowCopyId;
        [string] LPWSTR ShareNameUNC;
        [string] LPWSTR ShadowCopyShareName;
        LONGLONG CreationTimestamp;
    } FSSAGENT_SHARE_MAPPING_1, *PFSSAGENT_SHARE_MAPPING_1;           
    
    typedef [switch_type(unsigned long)] union _FSSAGENT_SHARE_MAPPING {
        [case(1)]
            FSSAGENT_SHARE_MAPPING_1 *ShareMapping1;
        [default]
            ;
    } FSSAGENT_SHARE_MAPPING, *PFSSAGENT_SHARE_MAPPING;
    
    DWORD GetSupportedVersion (
    [out] DWORD *MinVersion,
    [out] DWORD *MaxVersion);
    
    DWORD SetContext (
    [in] handle_t hBinding,
    [in] unsigned long Context);
    
    DWORD StartShadowCopySet (
    [in] handle_t  hBinding,
    [in] GUID ClientShadowCopySetId,
    [out] GUID *pShadowCopySetId);
    
    DWORD AddToShadowCopySet (
    [in] handle_t hBinding,
    [in] GUID ClientShadowCopyId,
    [in] GUID ShadowCopySetId,
    [in] [string] LPWSTR ShareName,
    [out] GUID *pShadowCopyId);
    
    DWORD CommitShadowCopySet (
    [in] handle_t hBinding,
    [in] GUID ShadowCopySetId,
    [in] unsigned long TimeOutInMilliseconds);
    
    DWORD ExposeShadowCopySet (
    [in] handle_t hBinding,
    [in] GUID ShadowCopySetId,
    [in] unsigned long TimeOutInMilliseconds);
    
    DWORD RecoveryCompleteShadowCopySet (
    [in] handle_t hBinding,
    [in] GUID ShadowCopySetId);
    
    DWORD AbortShadowCopySet (
    [in] handle_t hBinding,
    [in] GUID ShadowCopySetId);
    
    DWORD IsPathSupported (
    [in] handle_t hBinding,
    [in] [string] LPWSTR ShareName,
    [out] BOOL* SupportedByThisProvider,
    [out] [string] LPWSTR* OwnerMachineName);
    
    DWORD IsPathShadowCopied (
    [in] handle_t hBinding,
    [in] [string] LPWSTR ShareName,
    [out] BOOL* ShadowCopyPresent,
    [out] long* ShadowCopyCompatibility);
    
    DWORD GetShareMapping (
    [in] handle_t hBinding,
    [in] GUID ShadowCopyId,
    [in] GUID ShadowCopySetId,
    [in] [string] LPWSTR ShareName,
    [in] DWORD Level,
    [out] [switch_is(Level)] FSSAGENT_SHARE_MAPPING *ShareMapping);
    
    DWORD DeleteShareMapping (
    [in] handle_t hBinding,
    [in] GUID ShadowCopySetId,
    [in] GUID ShadowCopyId,
    [in] [string] LPWSTR ShareName);
    
    DWORD PrepareShadowCopySet (
    [in] handle_t hBinding,
    [in] GUID ShadowCopySetId,
    [in] unsigned long TimeOutInMilliseconds);
}
 
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.