537 lines
18 KiB
C
537 lines
18 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 2000 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
ismproc.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Callback function prototype definitions for the Intermediate State Manager.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Jim Schmidt (jimschm) 15-Nov-1999
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
<alias> <date> <comments>
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
//
|
||
|
// Types
|
||
|
//
|
||
|
|
||
|
//
|
||
|
// misc types
|
||
|
//
|
||
|
|
||
|
#define ISM_VERSION 0x10000
|
||
|
|
||
|
typedef VOID (WINAPI MIG_LOGCALLBACK)(PVOID Arg);
|
||
|
typedef MIG_LOGCALLBACK * PMIG_LOGCALLBACK;
|
||
|
|
||
|
typedef VOID(PROGRESSBARFN)(
|
||
|
MIG_PROGRESSPHASE Phase,
|
||
|
MIG_PROGRESSSTATE State,
|
||
|
UINT WorkDone,
|
||
|
UINT TotalWork,
|
||
|
ULONG_PTR Arg
|
||
|
);
|
||
|
|
||
|
typedef PROGRESSBARFN * PPROGRESSBARFN;
|
||
|
|
||
|
//
|
||
|
// transport
|
||
|
//
|
||
|
|
||
|
typedef BOOL(WINAPI TRANSPORTINITIALIZE)(PMIG_LOGCALLBACK LogCallback);
|
||
|
typedef TRANSPORTINITIALIZE *PTRANSPORTINITIALIZE;
|
||
|
|
||
|
typedef VOID(WINAPI TRANSPORTESTIMATEPROGRESSBAR)(MIG_PLATFORMTYPEID PlatformTypeId);
|
||
|
typedef TRANSPORTESTIMATEPROGRESSBAR *PTRANSPORTESTIMATEPROGRESSBAR;
|
||
|
|
||
|
typedef BOOL(WINAPI TRANSPORTQUERYCAPABILITIES)(
|
||
|
IN MIG_TRANSPORTSTORAGEID TransportStorageId,
|
||
|
OUT PMIG_TRANSPORTTYPE TransportType,
|
||
|
OUT PMIG_TRANSPORTCAPABILITIES Capabilities,
|
||
|
OUT PCTSTR *FriendlyDescription
|
||
|
);
|
||
|
typedef TRANSPORTQUERYCAPABILITIES *PTRANSPORTQUERYCAPABILITIES;
|
||
|
|
||
|
typedef BOOL(WINAPI TRANSPORTSETSTORAGE)(
|
||
|
IN MIG_PLATFORMTYPEID Platform,
|
||
|
IN MIG_TRANSPORTSTORAGEID TransportStorageId,
|
||
|
IN MIG_TRANSPORTCAPABILITIES Capabilities,
|
||
|
IN PCTSTR StoragePath,
|
||
|
OUT PBOOL Valid,
|
||
|
OUT PBOOL ImageExists
|
||
|
);
|
||
|
typedef TRANSPORTSETSTORAGE *PTRANSPORTSETSTORAGE;
|
||
|
|
||
|
typedef VOID(WINAPI TRANSPORTRESETSTORAGE)(MIG_TRANSPORTSTORAGEID TransportStorageId);
|
||
|
typedef TRANSPORTRESETSTORAGE *PTRANSPORTRESETSTORAGE;
|
||
|
|
||
|
typedef VOID(WINAPI TRANSPORTTERMINATE)(VOID);
|
||
|
typedef TRANSPORTTERMINATE *PTRANSPORTTERMINATE;
|
||
|
|
||
|
typedef BOOL(WINAPI TRANSPORTSAVESTATE)(VOID);
|
||
|
typedef TRANSPORTSAVESTATE *PTRANSPORTSAVESTATE;
|
||
|
|
||
|
typedef BOOL(WINAPI TRANSPORTRESUMESAVESTATE)(VOID);
|
||
|
typedef TRANSPORTRESUMESAVESTATE *PTRANSPORTRESUMESAVESTATE;
|
||
|
|
||
|
typedef BOOL(WINAPI TRANSPORTBEGINAPPLY)(VOID);
|
||
|
typedef TRANSPORTBEGINAPPLY *PTRANSPORTBEGINAPPLY;
|
||
|
|
||
|
typedef BOOL(WINAPI TRANSPORTRESUMEAPPLY)(VOID);
|
||
|
typedef TRANSPORTRESUMEAPPLY *PTRANSPORTRESUMEAPPLY;
|
||
|
|
||
|
typedef BOOL(WINAPI TRANSPORTACQUIREOBJECT)(
|
||
|
IN MIG_OBJECTTYPEID ObjectTypeId,
|
||
|
IN MIG_OBJECTSTRINGHANDLE ObjectName,
|
||
|
IN OUT PMIG_CONTENT ObjectContent,
|
||
|
IN MIG_CONTENTTYPE ContentType,
|
||
|
IN UINT MemoryContentLimit
|
||
|
);
|
||
|
typedef TRANSPORTACQUIREOBJECT *PTRANSPORTACQUIREOBJECT;
|
||
|
|
||
|
typedef BOOL(WINAPI TRANSPORTRELEASEOBJECT)(PMIG_CONTENT ObjectContent);
|
||
|
typedef TRANSPORTRELEASEOBJECT *PTRANSPORTRELEASEOBJECT;
|
||
|
|
||
|
typedef VOID(WINAPI TRANSPORTENDAPPLY)(VOID);
|
||
|
typedef TRANSPORTENDAPPLY *PTRANSPORTENDAPPLY;
|
||
|
|
||
|
typedef struct {
|
||
|
UINT Version;
|
||
|
PTRANSPORTINITIALIZE TransportInitialize;
|
||
|
PTRANSPORTESTIMATEPROGRESSBAR TransportEstimateProgressBar;
|
||
|
PTRANSPORTQUERYCAPABILITIES TransportQueryCapabilities;
|
||
|
PTRANSPORTSETSTORAGE TransportSetStorage;
|
||
|
PTRANSPORTRESETSTORAGE TransportResetStorage;
|
||
|
PTRANSPORTTERMINATE TransportTerminate;
|
||
|
PTRANSPORTSAVESTATE TransportSaveState;
|
||
|
PTRANSPORTRESUMESAVESTATE TransportResumeSaveState;
|
||
|
PTRANSPORTBEGINAPPLY TransportBeginApply;
|
||
|
PTRANSPORTRESUMEAPPLY TransportResumeApply;
|
||
|
PTRANSPORTACQUIREOBJECT TransportAcquireObject;
|
||
|
PTRANSPORTRELEASEOBJECT TransportReleaseObject;
|
||
|
PTRANSPORTENDAPPLY TransportEndApply;
|
||
|
} TRANSPORT_ENTRYPOINTS, *PTRANSPORT_ENTRYPOINTS;
|
||
|
|
||
|
//
|
||
|
// operations
|
||
|
//
|
||
|
|
||
|
typedef BOOL (WINAPI OPMFILTERCALLBACK)(
|
||
|
PCMIG_FILTERINPUT InputData,
|
||
|
PMIG_FILTEROUTPUT OutputData,
|
||
|
BOOL NoRestoreObject,
|
||
|
PCMIG_BLOB SourceOperationData, OPTIONAL
|
||
|
PCMIG_BLOB DestinationOperationData OPTIONAL
|
||
|
);
|
||
|
typedef OPMFILTERCALLBACK *POPMFILTERCALLBACK;
|
||
|
|
||
|
typedef BOOL (WINAPI OPMAPPLYCALLBACK)(
|
||
|
MIG_OBJECTTYPEID SrcObjectTypeId,
|
||
|
MIG_OBJECTSTRINGHANDLE SrcObjectName,
|
||
|
PCMIG_CONTENT OriginalContent,
|
||
|
PCMIG_CONTENT CurrentContent,
|
||
|
PMIG_CONTENT NewContent,
|
||
|
PCMIG_BLOB SourceOperationData, OPTIONAL
|
||
|
PCMIG_BLOB DestinationOperationData OPTIONAL
|
||
|
);
|
||
|
typedef OPMAPPLYCALLBACK *POPMAPPLYCALLBACK;
|
||
|
|
||
|
//
|
||
|
// message passing
|
||
|
//
|
||
|
|
||
|
typedef ULONG_PTR(CALLBACK MESSAGECALLBACK)(UINT Message, ULONG_PTR Arg);
|
||
|
typedef MESSAGECALLBACK *PMESSAGECALLBACK;
|
||
|
|
||
|
//
|
||
|
// ETM entry points
|
||
|
//
|
||
|
|
||
|
typedef BOOL(WINAPI TYPE_ENUMFIRSTPHYSICALOBJECT)(
|
||
|
IN OUT PMIG_TYPEOBJECTENUM EnumPtr,
|
||
|
IN MIG_OBJECTSTRINGHANDLE Pattern,
|
||
|
IN UINT MaxLevel
|
||
|
);
|
||
|
typedef TYPE_ENUMFIRSTPHYSICALOBJECT *PTYPE_ENUMFIRSTPHYSICALOBJECT;
|
||
|
|
||
|
typedef BOOL(WINAPI TYPE_ENUMNEXTPHYSICALOBJECT)(
|
||
|
IN OUT PMIG_TYPEOBJECTENUM EnumPtr
|
||
|
);
|
||
|
typedef TYPE_ENUMNEXTPHYSICALOBJECT *PTYPE_ENUMNEXTPHYSICALOBJECT;
|
||
|
|
||
|
typedef VOID(WINAPI TYPE_ABORTENUMCURRENTPHYSICALNODE)(
|
||
|
IN OUT PMIG_TYPEOBJECTENUM EnumPtr
|
||
|
);
|
||
|
typedef TYPE_ABORTENUMCURRENTPHYSICALNODE *PTYPE_ABORTENUMCURRENTPHYSICALNODE;
|
||
|
|
||
|
typedef VOID(WINAPI TYPE_ABORTENUMPHYSICALOBJECT)(
|
||
|
IN OUT PMIG_TYPEOBJECTENUM EnumPtr
|
||
|
);
|
||
|
typedef TYPE_ABORTENUMPHYSICALOBJECT *PTYPE_ABORTENUMPHYSICALOBJECT;
|
||
|
|
||
|
typedef PCTSTR(WINAPI TYPE_CONVERTOBJECTTOMULTISZ)(
|
||
|
IN MIG_OBJECTSTRINGHANDLE ObjectName,
|
||
|
IN PMIG_CONTENT ObjectContent
|
||
|
);
|
||
|
typedef TYPE_CONVERTOBJECTTOMULTISZ *PTYPE_CONVERTOBJECTTOMULTISZ;
|
||
|
|
||
|
typedef BOOL(WINAPI TYPE_CONVERTMULTISZTOOBJECT)(
|
||
|
IN PCTSTR ObjectMultiSz,
|
||
|
OUT MIG_OBJECTSTRINGHANDLE *ObjectName,
|
||
|
OUT PMIG_CONTENT ObjectContent OPTIONAL
|
||
|
);
|
||
|
typedef TYPE_CONVERTMULTISZTOOBJECT *PTYPE_CONVERTMULTISZTOOBJECT;
|
||
|
|
||
|
typedef PCTSTR(WINAPI TYPE_GETNATIVEOBJECTNAME)(
|
||
|
IN MIG_OBJECTSTRINGHANDLE ObjectName
|
||
|
);
|
||
|
typedef TYPE_GETNATIVEOBJECTNAME *PTYPE_GETNATIVEOBJECTNAME;
|
||
|
|
||
|
typedef BOOL(WINAPI TYPE_ACQUIREPHYSICALOBJECT)(
|
||
|
IN MIG_OBJECTSTRINGHANDLE ObjectName,
|
||
|
OUT PMIG_CONTENT ObjectContent,
|
||
|
IN MIG_CONTENTTYPE ContentType,
|
||
|
IN UINT MemoryContentLimit
|
||
|
);
|
||
|
typedef TYPE_ACQUIREPHYSICALOBJECT *PTYPE_ACQUIREPHYSICALOBJECT;
|
||
|
|
||
|
typedef BOOL(WINAPI TYPE_RELEASEPHYSICALOBJECT)(
|
||
|
IN OUT PMIG_CONTENT ObjectContent
|
||
|
);
|
||
|
typedef TYPE_RELEASEPHYSICALOBJECT *PTYPE_RELEASEPHYSICALOBJECT;
|
||
|
|
||
|
typedef BOOL(WINAPI TYPE_DOESPHYSICALOBJECTEXIST)(
|
||
|
IN MIG_OBJECTSTRINGHANDLE ObjectName
|
||
|
);
|
||
|
typedef TYPE_DOESPHYSICALOBJECTEXIST *PTYPE_DOESPHYSICALOBJECTEXIST;
|
||
|
|
||
|
typedef BOOL(WINAPI TYPE_REMOVEPHYSICALOBJECT)(
|
||
|
IN MIG_OBJECTSTRINGHANDLE ObjectName
|
||
|
);
|
||
|
typedef TYPE_REMOVEPHYSICALOBJECT *PTYPE_REMOVEPHYSICALOBJECT;
|
||
|
|
||
|
typedef BOOL(WINAPI TYPE_CREATEPHYSICALOBJECT)(
|
||
|
IN MIG_OBJECTSTRINGHANDLE ObjectName,
|
||
|
IN PMIG_CONTENT ObjectContent
|
||
|
);
|
||
|
typedef TYPE_CREATEPHYSICALOBJECT *PTYPE_CREATEPHYSICALOBJECT;
|
||
|
|
||
|
typedef BOOL(WINAPI TYPE_REPLACEPHYSICALOBJECT)(
|
||
|
IN MIG_OBJECTSTRINGHANDLE ObjectName,
|
||
|
IN PMIG_CONTENT ObjectContent
|
||
|
);
|
||
|
typedef TYPE_REPLACEPHYSICALOBJECT *PTYPE_REPLACEPHYSICALOBJECT;
|
||
|
|
||
|
typedef PMIG_CONTENT(WINAPI TYPE_CONVERTOBJECTCONTENTTOUNICODE)(
|
||
|
IN MIG_OBJECTSTRINGHANDLE ObjectName,
|
||
|
IN PMIG_CONTENT ObjectContent
|
||
|
);
|
||
|
typedef TYPE_CONVERTOBJECTCONTENTTOUNICODE *PTYPE_CONVERTOBJECTCONTENTTOUNICODE;
|
||
|
|
||
|
typedef PMIG_CONTENT(WINAPI TYPE_CONVERTOBJECTCONTENTTOANSI)(
|
||
|
IN MIG_OBJECTSTRINGHANDLE ObjectName,
|
||
|
IN PMIG_CONTENT ObjectContent
|
||
|
);
|
||
|
typedef TYPE_CONVERTOBJECTCONTENTTOANSI *PTYPE_CONVERTOBJECTCONTENTTOANSI;
|
||
|
|
||
|
typedef BOOL(WINAPI TYPE_FREECONVERTEDOBJECTCONTENT)(
|
||
|
IN PMIG_CONTENT ObjectContent
|
||
|
);
|
||
|
typedef TYPE_FREECONVERTEDOBJECTCONTENT *PTYPE_FREECONVERTEDOBJECTCONTENT;
|
||
|
|
||
|
typedef struct {
|
||
|
PTYPE_ENUMFIRSTPHYSICALOBJECT EnumFirstPhysicalObject;
|
||
|
PTYPE_ENUMNEXTPHYSICALOBJECT EnumNextPhysicalObject;
|
||
|
PTYPE_ABORTENUMCURRENTPHYSICALNODE AbortEnumCurrentPhysicalNode;
|
||
|
PTYPE_ABORTENUMPHYSICALOBJECT AbortEnumPhysicalObject;
|
||
|
PTYPE_CONVERTOBJECTTOMULTISZ ConvertObjectToMultiSz;
|
||
|
PTYPE_CONVERTMULTISZTOOBJECT ConvertMultiSzToObject;
|
||
|
PTYPE_GETNATIVEOBJECTNAME GetNativeObjectName;
|
||
|
PTYPE_ACQUIREPHYSICALOBJECT AcquirePhysicalObject;
|
||
|
PTYPE_RELEASEPHYSICALOBJECT ReleasePhysicalObject;
|
||
|
PTYPE_DOESPHYSICALOBJECTEXIST DoesPhysicalObjectExist;
|
||
|
PTYPE_REMOVEPHYSICALOBJECT RemovePhysicalObject;
|
||
|
PTYPE_CREATEPHYSICALOBJECT CreatePhysicalObject;
|
||
|
PTYPE_REPLACEPHYSICALOBJECT ReplacePhysicalObject;
|
||
|
PTYPE_CONVERTOBJECTCONTENTTOUNICODE ConvertObjectContentToUnicode;
|
||
|
PTYPE_CONVERTOBJECTCONTENTTOANSI ConvertObjectContentToAnsi;
|
||
|
PTYPE_FREECONVERTEDOBJECTCONTENT FreeConvertedObjectContent;
|
||
|
} TYPE_REGISTER, *PTYPE_REGISTER;
|
||
|
|
||
|
typedef BOOL (WINAPI MIG_PHYSICALENUMCHECK)(
|
||
|
IN PMIG_TYPEOBJECTENUM ObjectEnum,
|
||
|
IN ULONG_PTR Arg
|
||
|
);
|
||
|
|
||
|
typedef MIG_PHYSICALENUMCHECK *PMIG_PHYSICALENUMCHECK;
|
||
|
|
||
|
typedef BOOL (WINAPI MIG_PHYSICALENUMADD)(
|
||
|
IN OUT PMIG_TYPEOBJECTENUM ObjectEnum,
|
||
|
IN MIG_OBJECTSTRINGHANDLE Pattern, // NULL if Abort is TRUE
|
||
|
IN MIG_PARSEDPATTERN ParsedPattern, // NULL if Abort is TRUE
|
||
|
IN ULONG_PTR Arg,
|
||
|
IN BOOL Abort
|
||
|
);
|
||
|
|
||
|
typedef MIG_PHYSICALENUMADD *PMIG_PHYSICALENUMADD;
|
||
|
|
||
|
typedef BOOL (WINAPI MIG_PHYSICALACQUIREHOOK)(
|
||
|
IN MIG_OBJECTSTRINGHANDLE ObjectName,
|
||
|
IN PMIG_CONTENT ObjectContent,
|
||
|
IN MIG_CONTENTTYPE ContentType,
|
||
|
IN UINT MemoryContentLimit,
|
||
|
OUT PMIG_CONTENT *NewObjectContent, CALLER_INITIALIZED OPTIONAL
|
||
|
IN BOOL ReleaseContent,
|
||
|
IN ULONG_PTR Arg
|
||
|
);
|
||
|
|
||
|
typedef MIG_PHYSICALACQUIREHOOK *PMIG_PHYSICALACQUIREHOOK;
|
||
|
|
||
|
typedef VOID (WINAPI MIG_PHYSICALACQUIREFREE)(PMIG_CONTENT ObjectContent);
|
||
|
|
||
|
typedef MIG_PHYSICALACQUIREFREE *PMIG_PHYSICALACQUIREFREE;
|
||
|
|
||
|
|
||
|
//
|
||
|
// module entry points
|
||
|
//
|
||
|
|
||
|
typedef BOOL(WINAPI MODULEINITIALIZE)(VOID);
|
||
|
typedef MODULEINITIALIZE * PMODULEINITIALIZE;
|
||
|
|
||
|
typedef VOID(WINAPI MODULETERMINATE)(VOID);
|
||
|
typedef MODULETERMINATE * PMODULETERMINATE;
|
||
|
|
||
|
typedef BOOL(WINAPI ETMINITIALIZE)(MIG_PLATFORMTYPEID Platform, PMIG_LOGCALLBACK LogCallback, PVOID Reserved);
|
||
|
typedef ETMINITIALIZE * PETMINITIALIZE;
|
||
|
|
||
|
typedef BOOL(WINAPI ETMPARSE)(PVOID Reserved);
|
||
|
typedef ETMPARSE *PETMPARSE;
|
||
|
|
||
|
typedef VOID(WINAPI ETMTERMINATE)(VOID);
|
||
|
typedef ETMTERMINATE * PETMTERMINATE;
|
||
|
|
||
|
typedef VOID(WINAPI ETMNEWUSERCREATED)(PCTSTR UserName, PCTSTR DomainName, PCTSTR UserProfileRoot, PSID UserSid);
|
||
|
typedef ETMNEWUSERCREATED * PETMNEWUSERCREATED;
|
||
|
|
||
|
typedef struct {
|
||
|
UINT Version;
|
||
|
PETMINITIALIZE EtmInitialize;
|
||
|
PETMPARSE EtmParse;
|
||
|
PETMTERMINATE EtmTerminate;
|
||
|
PETMNEWUSERCREATED EtmNewUserCreated;
|
||
|
} TYPE_ENTRYPOINTS, *PTYPE_ENTRYPOINTS;
|
||
|
|
||
|
typedef BOOL(WINAPI VCMINITIALIZE)(PMIG_LOGCALLBACK LogCallback, PVOID Reserved);
|
||
|
typedef VCMINITIALIZE * PVCMINITIALIZE;
|
||
|
|
||
|
typedef BOOL(WINAPI VCMPARSE)(PVOID Reserved);
|
||
|
typedef VCMPARSE * PVCMPARSE;
|
||
|
|
||
|
typedef BOOL(WINAPI VCMQUEUEENUMERATION)(PVOID Reserved);
|
||
|
typedef VCMQUEUEENUMERATION * PVCMQUEUEENUMERATION;
|
||
|
|
||
|
typedef BOOL(WINAPI VCMQUEUEHIGHPRIORITYENUMERATION)(PVOID Reserved);
|
||
|
typedef VCMQUEUEHIGHPRIORITYENUMERATION * PVCMQUEUEHIGHPRIORITYENUMERATION;
|
||
|
|
||
|
typedef UINT(WINAPI VCMENUMERATIONCALLBACK)(
|
||
|
IN PCMIG_OBJECTENUMDATA Data,
|
||
|
IN ULONG_PTR CallerArg
|
||
|
);
|
||
|
typedef VCMENUMERATIONCALLBACK * PVCMENUMERATIONCALLBACK;
|
||
|
|
||
|
typedef VOID(WINAPI VCMTERMINATE)(VOID);
|
||
|
typedef VCMTERMINATE * PVCMTERMINATE;
|
||
|
|
||
|
typedef struct {
|
||
|
UINT Version;
|
||
|
PVCMINITIALIZE VcmInitialize;
|
||
|
PVCMPARSE VcmParse;
|
||
|
PVCMQUEUEENUMERATION VcmQueueEnumeration;
|
||
|
PVCMQUEUEHIGHPRIORITYENUMERATION VcmQueueHighPriorityEnumeration;
|
||
|
PVCMTERMINATE VcmTerminate;
|
||
|
} VIRTUAL_COMPUTER_ENTRYPOINTS, *PVIRTUAL_COMPUTER_ENTRYPOINTS;
|
||
|
|
||
|
typedef BOOL(WINAPI SGMINITIALIZE)(PMIG_LOGCALLBACK LogCallback, PVOID Reserved);
|
||
|
typedef SGMINITIALIZE * PSGMINITIALIZE;
|
||
|
|
||
|
typedef BOOL(WINAPI SGMPARSE)(PVOID Reserved);
|
||
|
typedef SGMPARSE * PSGMPARSE;
|
||
|
|
||
|
typedef BOOL(WINAPI SGMQUEUEENUMERATION)(PVOID Reserved);
|
||
|
typedef SGMQUEUEENUMERATION * PSGMQUEUEENUMERATION;
|
||
|
|
||
|
typedef BOOL(WINAPI SGMQUEUEHIGHPRIORITYENUMERATION)(PVOID Reserved);
|
||
|
typedef SGMQUEUEHIGHPRIORITYENUMERATION * PSGMQUEUEHIGHPRIORITYENUMERATION;
|
||
|
|
||
|
typedef UINT(WINAPI SGMENUMERATIONCALLBACK)(
|
||
|
IN PCMIG_OBJECTENUMDATA Data,
|
||
|
IN ULONG_PTR CallerArg
|
||
|
);
|
||
|
typedef SGMENUMERATIONCALLBACK * PSGMENUMERATIONCALLBACK;
|
||
|
|
||
|
typedef VOID(WINAPI SGMTERMINATE)(VOID);
|
||
|
typedef SGMTERMINATE * PSGMTERMINATE;
|
||
|
|
||
|
typedef BOOL(WINAPI SAMINITIALIZE)(PMIG_LOGCALLBACK LogCallback, PVOID Reserved);
|
||
|
typedef SAMINITIALIZE * PSAMINITIALIZE;
|
||
|
|
||
|
typedef BOOL(WINAPI SAMEXECUTE)(VOID);
|
||
|
typedef SAMEXECUTE * PSAMEXECUTE;
|
||
|
|
||
|
typedef VOID(WINAPI SAMESTIMATEPROGRESSBAR)(VOID);
|
||
|
typedef SAMESTIMATEPROGRESSBAR *PSAMESTIMATEPROGRESSBAR;
|
||
|
|
||
|
typedef VOID(WINAPI SAMTERMINATE)(VOID);
|
||
|
typedef SAMTERMINATE * PSAMTERMINATE;
|
||
|
|
||
|
typedef struct {
|
||
|
UINT Version;
|
||
|
PSGMINITIALIZE SgmInitialize;
|
||
|
PSGMPARSE SgmParse;
|
||
|
PSGMQUEUEENUMERATION SgmQueueEnumeration;
|
||
|
PSGMQUEUEHIGHPRIORITYENUMERATION SgmQueueHighPriorityEnumeration;
|
||
|
PSGMTERMINATE SgmTerminate;
|
||
|
PSAMINITIALIZE SamInitialize;
|
||
|
PSAMEXECUTE SamExecute;
|
||
|
PSAMESTIMATEPROGRESSBAR SamEstimateProgressBar;
|
||
|
PSAMTERMINATE SamTerminate;
|
||
|
} SOURCE_ENTRYPOINTS, *PSOURCE_ENTRYPOINTS;
|
||
|
|
||
|
typedef BOOL(WINAPI DGMINITIALIZE)(PMIG_LOGCALLBACK LogCallback, PVOID Reserved);
|
||
|
typedef DGMINITIALIZE * PDGMINITIALIZE;
|
||
|
|
||
|
typedef BOOL(WINAPI DGMQUEUEENUMERATION)(PVOID Reserved);
|
||
|
typedef DGMQUEUEENUMERATION * PDGMQUEUEENUMERATION;
|
||
|
|
||
|
typedef BOOL(WINAPI DGMQUEUEHIGHPRIORITYENUMERATION)(PVOID Reserved);
|
||
|
typedef DGMQUEUEHIGHPRIORITYENUMERATION * PDGMQUEUEHIGHPRIORITYENUMERATION;
|
||
|
|
||
|
typedef UINT(WINAPI DGMENUMERATIONCALLBACK)(
|
||
|
IN PCMIG_OBJECTENUMDATA Data,
|
||
|
IN ULONG_PTR CallerArg
|
||
|
);
|
||
|
typedef DGMENUMERATIONCALLBACK * PDGMENUMERATIONCALLBACK;
|
||
|
|
||
|
typedef VOID(WINAPI DGMTERMINATE)(VOID);
|
||
|
typedef DGMTERMINATE * PDGMTERMINATE;
|
||
|
|
||
|
typedef BOOL(WINAPI DAMINITIALIZE)(PMIG_LOGCALLBACK LogCallback, PVOID Reserved);
|
||
|
typedef DAMINITIALIZE * PDAMINITIALIZE;
|
||
|
|
||
|
typedef BOOL(WINAPI DAMEXECUTE)(VOID);
|
||
|
typedef DAMEXECUTE * PDAMEXECUTE;
|
||
|
|
||
|
typedef VOID(WINAPI DAMESTIMATEPROGRESSBAR)(VOID);
|
||
|
typedef DAMESTIMATEPROGRESSBAR *PDAMESTIMATEPROGRESSBAR;
|
||
|
|
||
|
typedef VOID(WINAPI DAMTERMINATE)(VOID);
|
||
|
typedef DAMTERMINATE * PDAMTERMINATE;
|
||
|
|
||
|
typedef BOOL(WINAPI CSMINITIALIZE)(PMIG_LOGCALLBACK LogCallback, PVOID Reserved);
|
||
|
typedef CSMINITIALIZE * PCSMINITIALIZE;
|
||
|
|
||
|
typedef BOOL(WINAPI CSMEXECUTE)(VOID);
|
||
|
typedef CSMEXECUTE * PCSMEXECUTE;
|
||
|
|
||
|
typedef VOID(WINAPI CSMESTIMATEPROGRESSBAR)(VOID);
|
||
|
typedef CSMESTIMATEPROGRESSBAR *PCSMESTIMATEPROGRESSBAR;
|
||
|
|
||
|
typedef VOID(WINAPI CSMTERMINATE)(VOID);
|
||
|
typedef CSMTERMINATE * PCSMTERMINATE;
|
||
|
|
||
|
typedef BOOL(WINAPI OPMINITIALIZE)(PMIG_LOGCALLBACK LogCallback, PVOID Reserved);
|
||
|
typedef OPMINITIALIZE * POPMINITIALIZE;
|
||
|
|
||
|
typedef VOID(WINAPI OPMTERMINATE)(VOID);
|
||
|
typedef OPMTERMINATE * POPMTERMINATE;
|
||
|
|
||
|
typedef struct {
|
||
|
UINT Version;
|
||
|
PDGMINITIALIZE DgmInitialize;
|
||
|
PDGMQUEUEENUMERATION DgmQueueEnumeration;
|
||
|
PDGMQUEUEHIGHPRIORITYENUMERATION DgmQueueHighPriorityEnumeration;
|
||
|
PDGMTERMINATE DgmTerminate;
|
||
|
PDAMINITIALIZE DamInitialize;
|
||
|
PDAMEXECUTE DamExecute;
|
||
|
PDAMESTIMATEPROGRESSBAR DamEstimateProgressBar;
|
||
|
PDAMTERMINATE DamTerminate;
|
||
|
PCSMINITIALIZE CsmInitialize;
|
||
|
PCSMEXECUTE CsmExecute;
|
||
|
PCSMESTIMATEPROGRESSBAR CsmEstimateProgressBar;
|
||
|
PCSMTERMINATE CsmTerminate;
|
||
|
POPMINITIALIZE OpmInitialize;
|
||
|
POPMTERMINATE OpmTerminate;
|
||
|
} DESTINATION_ENTRYPOINTS, *PDESTINATION_ENTRYPOINTS;
|
||
|
|
||
|
//
|
||
|
// callback prototypes
|
||
|
//
|
||
|
|
||
|
typedef UINT (WINAPI MIG_OBJECTENUMCALLBACK)(PCMIG_OBJECTENUMDATA Data, ULONG_PTR CallerArg);
|
||
|
typedef MIG_OBJECTENUMCALLBACK *PMIG_OBJECTENUMCALLBACK;
|
||
|
|
||
|
typedef BOOL (WINAPI MIG_PREENUMCALLBACK)(VOID);
|
||
|
typedef MIG_PREENUMCALLBACK *PMIG_PREENUMCALLBACK;
|
||
|
|
||
|
typedef BOOL (WINAPI MIG_POSTENUMCALLBACK)(VOID);
|
||
|
typedef MIG_POSTENUMCALLBACK *PMIG_POSTENUMCALLBACK;
|
||
|
|
||
|
typedef BOOL (WINAPI MIG_DYNAMICEXCLUSIONCALLBACK)(
|
||
|
MIG_OBJECTTYPEID ObjectTypeId,
|
||
|
MIG_OBJECTSTRINGHANDLE EncodedObjectName,
|
||
|
ULONG_PTR Arg
|
||
|
);
|
||
|
|
||
|
typedef MIG_DYNAMICEXCLUSIONCALLBACK *PMIG_DYNAMICEXCLUSIONCALLBACK;
|
||
|
|
||
|
typedef BOOL (WINAPI MIG_RESTORECALLBACK)(MIG_OBJECTTYPEID,MIG_OBJECTID,MIG_OBJECTSTRINGHANDLE);
|
||
|
typedef MIG_RESTORECALLBACK *PMIG_RESTORECALLBACK;
|
||
|
|
||
|
//
|
||
|
// entry points that return module funciton addresses
|
||
|
//
|
||
|
|
||
|
typedef BOOL(WINAPI VIRTUALCOMPUTERMODULE)(
|
||
|
IN PCTSTR ModuleId,
|
||
|
IN OUT PVIRTUAL_COMPUTER_ENTRYPOINTS VirtualComputerEntryPoints
|
||
|
);
|
||
|
typedef VIRTUALCOMPUTERMODULE *PVIRTUALCOMPUTERMODULE;
|
||
|
|
||
|
typedef BOOL(WINAPI SOURCEMODULE)(
|
||
|
IN PCTSTR ModuleId,
|
||
|
IN OUT PSOURCE_ENTRYPOINTS SourceEntryPoints
|
||
|
);
|
||
|
typedef SOURCEMODULE *PSOURCEMODULE;
|
||
|
|
||
|
typedef BOOL(WINAPI DESTINATIONMODULE)(
|
||
|
IN PCTSTR ModuleId,
|
||
|
IN OUT PDESTINATION_ENTRYPOINTS DestinationEntryPoints
|
||
|
);
|
||
|
typedef DESTINATIONMODULE *PDESTINATIONMODULE;
|
||
|
|
||
|
typedef BOOL(WINAPI TYPEMODULE)(
|
||
|
IN PCTSTR ModuleId,
|
||
|
IN OUT PTYPE_ENTRYPOINTS TypeEntryPoints
|
||
|
);
|
||
|
typedef TYPEMODULE *PTYPEMODULE;
|
||
|
|
||
|
typedef BOOL(WINAPI TRANSPORTMODULE)(
|
||
|
IN PCTSTR ModuleId,
|
||
|
IN OUT PTRANSPORT_ENTRYPOINTS TransportEntryPoints
|
||
|
);
|
||
|
typedef TRANSPORTMODULE *PTRANSPORTMODULE;
|
||
|
|
||
|
|