Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

536 lines
18 KiB

/*++
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;