⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ifsmgr.inc

📁 用于查询PC机上的USB端口是否有设备挂接上
💻 INC
📖 第 1 页 / 共 5 页
字号:
;********************************************************************;
;**               Copyright(c) Microsoft Corp., 1990-1993          **;
;********************************************************************;
;***    IFSMgr service definitions

ifndef  IFSMgr_Device_ID
  IFSMgr_Device_ID equ 00040h
else
  .errnz IFSMgr_Device_ID - 00040h
endif

Begin_Service_Table IFSMgr

IFSMgr_Service  IFSMgr_Get_Version
IFSMgr_Service  IFSMgr_RegisterMount
IFSMgr_Service  IFSMgr_RegisterNet
IFSMgr_Service  IFSMgr_RegisterMailSlot
IFSMgr_Service  IFSMgr_Attach
IFSMgr_Service  IFSMgr_Detach
IFSMgr_Service  IFSMgr_Get_NetTime
IFSMgr_Service  IFSMgr_Get_DOSTime
IFSMgr_Service  IFSMgr_SetupConnection
IFSMgr_Service  IFSMgr_DerefConnection
IFSMgr_Service  IFSMgr_ServerDOSCall
IFSMgr_Service  IFSMgr_CompleteAsync
IFSMgr_Service  IFSMgr_RegisterHeap
IFSMgr_Service  IFSMgr_GetHeap
IFSMgr_Service  IFSMgr_RetHeap
IFSMgr_Service  IFSMgr_CheckHeap
IFSMgr_Service  IFSMgr_CheckHeapItem
IFSMgr_Service  IFSMgr_FillHeapSpare
IFSMgr_Service  IFSMgr_Block
IFSMgr_Service  IFSMgr_Wakeup
IFSMgr_Service  IFSMgr_Yield
IFSMgr_Service  IFSMgr_SchedEvent
IFSMgr_Service  IFSMgr_QueueEvent
IFSMgr_Service  IFSMgr_KillEvent
IFSMgr_Service  IFSMgr_FreeIOReq
IFSMgr_Service  IFSMgr_MakeMailSlot
IFSMgr_Service  IFSMgr_DeleteMailSlot
IFSMgr_Service  IFSMgr_WriteMailSlot
IFSMgr_Service  IFSMgr_PopUp
IFSMgr_Service  IFSMgr_printf
IFSMgr_Service  IFSMgr_AssertFailed
IFSMgr_Service  IFSMgr_LogEntry
IFSMgr_Service  IFSMgr_DebugMenu
IFSMgr_Service  IFSMgr_DebugVars
IFSMgr_Service  IFSMgr_GetDebugString
IFSMgr_Service  IFSMgr_GetDebugHexNum
IFSMgr_Service  IFSMgr_NetFunction
IFSMgr_Service  IFSMgr_DoDelAllUses
IFSMgr_Service  IFSMgr_SetErrString
IFSMgr_Service  IFSMgr_GetErrString
IFSMgr_Service  IFSMgr_SetReqHook
IFSMgr_Service  IFSMgr_SetPathHook
IFSMgr_Service  IFSMgr_UseAdd
IFSMgr_Service  IFSMgr_UseDel
IFSMgr_Service  IFSMgr_InitUseAdd
IFSMgr_Service  IFSMgr_ChangeDir
IFSMgr_Service  IFSMgr_DelAllUses
IFSMgr_Service  IFSMgr_CDROM_Attach
IFSMgr_Service  IFSMgr_CDROM_Detach
IFSMgr_Service  IFSMgr_Win32DupHandle
IFSMgr_Service  IFSMgr_Ring0_FileIO
IFSMgr_Service  IFSMgr_Win32_Get_Ring0_Handle
IFSMgr_Service  IFSMgr_Get_Drive_Info
IFSMgr_Service  IFSMgr_Ring0GetDriveInfo
IFSMgr_Service  IFSMgr_BlockNoEvents
IFSMgr_Service  IFSMgr_NetToDosTime
IFSMgr_Service  IFSMgr_DosToNetTime
IFSMgr_Service  IFSMgr_DosToWin32Time
IFSMgr_Service  IFSMgr_Win32ToDosTime
IFSMgr_Service  IFSMgr_NetToWin32Time
IFSMgr_Service  IFSMgr_Win32ToNetTime
IFSMgr_Service  IFSMgr_MetaMatch
IFSMgr_Service  IFSMgr_TransMatch
IFSMgr_Service  IFSMgr_CallProvider
IFSMgr_Service  UniToBCS
IFSMgr_Service  UniToBCSPath
IFSMgr_Service  BCSToUni
IFSMgr_Service  UniToUpper
IFSMgr_Service  UniCharToOEM
IFSMgr_Service  CreateBasis
IFSMgr_Service  MatchBasisName
IFSMgr_Service  AppendBasisTail
IFSMgr_Service  FcbToShort
IFSMgr_Service  ShortToFcb
IFSMgr_Service  IFSMgr_ParsePath
IFSMgr_Service  Query_PhysLock
IFSMgr_Service  _VolFlush
IFSMgr_Service  NotifyVolumeArrival
IFSMgr_Service  NotifyVolumeRemoval
IFSMgr_Service  QueryVolumeRemoval
IFSMgr_Service  IFSMgr_FSDUnmountCFSD
IFSMgr_Service  IFSMgr_GetConversionTablePtrs
IFSMgr_Service  IFSMgr_CheckAccessConflict
IFSMgr_Service  IFSMgr_LockFile
IFSMgr_Service  IFSMgr_UnlockFile
IFSMgr_Service  IFSMgr_RemoveLocks
IFSMgr_Service  IFSMgr_CheckLocks
IFSMgr_Service  IFSMgr_CountLocks
IFSMgr_Service  IFSMgr_ReassignLockFileInst
IFSMgr_Service  IFSMgr_UnassignLockList
IFSMgr_Service  IFSMgr_MountChildVolume
IFSMgr_Service  IFSMgr_UnmountChildVolume
IFSMgr_Service  IFSMgr_SwapDrives
IFSMgr_Service  IFSMgr_FSDMapFHtoIOREQ
IFSMgr_Service  IFSMgr_FSDParsePath
IFSMgr_Service  IFSMgr_FSDAttachSFT
IFSMgr_Service  IFSMgr_GetTimeZoneBias
IFSMgr_Service  IFSMgr_PNPEvent
IFSMgr_Service  IFSMgr_RegisterCFSD
IFSMgr_Service  IFSMgr_Win32MapExtendedHandleToSFT
IFSMgr_Service  IFSMgr_DbgSetFileHandleLimit
IFSMgr_Service  IFSMgr_Win32MapSFTToExtendedHandle
IFSMgr_Service  IFSMgr_FSDGetCurrentDrive
IFSMgr_Service  IFSMgr_InstallFileSystemApiHook
IFSMgr_Service  IFSMgr_RemoveFileSystemApiHook
IFSMgr_Service  IFSMgr_RunScheduledEvents
IFSMgr_Service	IFSMgr_CheckDelResource
IFSMgr_Service	IFSMgr_Win32GetVMCurdir
IFSMgr_Service	IFSMgr_SetupFailedConnection
IFSMgr_Service	_GetMappedErr
IFSMgr_Service	ShortToLossyFcb
IFSMgr_Service	IFSMgr_GetLockState
IFSMgr_Service	BcsToBcs
IFSMgr_Service	IFSMgr_SetLoopback
IFSMgr_Service	IFSMgr_ClearLoopback
IFSMgr_Service	IFSMgr_ParseOneElement
IFSMgr_Service	BcsToBcsUpper
IFSMgr_Service	IFSMgr_DeregisterFSD
IFSMgr_Service	IFSMgr_RegisterFSDWithPriority
IFSMgr_Service	IFSMgr_Get_DOSTimeRounded
IFSMgr_Service	_LongToFcbOem
IFSMgr_Service	IFSMgr_GetRing0FileHandle
IFSMgr_Service	IFSMgr_UpdateTimezoneInfo
IFSMgr_Service  IFSMgr_Ring0IsCPSingleByte
End_Service_Table IFSMgr


;**     IFSMgr_Get_Version - Get version number
;
;       This service is always valid.
;
; Entry None
; Exit  EAX = version number (3.10 for this release)
;       'C' clear
; Uses  EAX, Flags

IFSMGRVERSION   equ     022h

;**     IFSMgr_RegisterMount - register a filesystem provider
;
;       A filesystem provider calls this service to register a mount
;       routine with the redirector.
;
;	An FSD using this service to register itself always gets a 
;	priority of FS_DEFAULT_PRIORITY. To specify a priority, the
;	FSD must use the service IFSMgr_RegisterFSDWithPriority.
;
;       This procedure uses the C6 386 _cdecl calling sequence
;
; Entry TOS = Entrypoint for providers mount routine
;       TOS + 4 = Version of IFSMGR provider was built for
;       TOS + 8 = 1 if default FSD is requesting mount
;               = 0 if normal FSD is requesting mount
; Exit  EAX = Provider ID (-1 if error)
;       caller clears argument from stack
;
; Uses  C Registers


;**     MountFS - filesystem provider mount routine
;
;       This procedure uses the C6 386 _cdecl calling sequence
;
; Entry TOS = pointer to IOReq
;       ir_flags - 0 (indicates MOUNT)
;       ir_gi.g_ptr - flat address of BDD (from BlockDev)
;       ir_pos - first sector (physical sector # of logical sector 0)
;       ir_drv - drive to mount (0=A:, 1=B:, ...)
;
; Exit  EAX = 0 if success, non-zero if error
;       if success,
;               ir_pr = pointer to provider specific information
;               ir_gi = flat address of entry point table
;                       dword   number of entries in table
;                       dword   NetDelete
;                       dword   NetDir
;                       dword   NetFileAttributes
;                       dword   NetFileInfo
;                       dword   NetFlush
;                       dword   NetGetDiskInfo
;                       dword   NetOpen
;                       dword   NetRename
;                       dword   NetSearch
;                       dword   ShutDown
;
; Uses  C Registers  (EAX, ECX, EDX may be stomped)


;**     IFSMgr_RegisterNet - register a network provider
;
;       A filesystem provider calls this service to register a
;       connect routine with the redirector.
;
;	An FSD using this service to register itself always gets a 
;	priority of FS_DEFAULT_PRIORITY. To specify a priority, the
;	FSD must use the service IFSMgr_RegisterFSDWithPriority.
;
;       Versioning:
;       The FSD should first call IFSMgr_Get_Version.  If the
;       version returned by the IFS Manager is older than the
;       FSD is prepared to handle, the FSD should no come up.
;
;       The version number the FSD uses when calling IFSMgr_RegisterNet
;       should be IFSMGRVERSION for the newest version of the IFS Manager
;       that the FSD knows how to handle.  If the IFS Manager does not
;       support that version, it will return an error for this call.
;
; Entry TOS     = Entrypoint for providers connect routine
;       TOS + 4 = FSD version number
; Exit  EAX = Provider ID (-1 if error)
;       caller clears argument from stack
; Uses  C Registers


;**	IFSMgr_RegisterMailSlot - register a network mailslot provider
;
;	A filesystem provider calls this service to register itself as a
;	mailslot provider.
;
;	An FSD using this service to register itself always gets a 
;	priority of FS_DEFAULT_PRIORITY. To specify a priority, the
;	FSD must use the service IFSMgr_RegisterFSDWithPriority.
;
;       The version number the FSD uses when calling this function
;       should be IFSMGRVERSION for the newest version of the IFS Manager
;       that the FSD knows how to handle.  If the IFS Manager does not
;       support that version, it will return an error for this call.
;
;	This procedure uses the C6 386 _cdecl calling sequence
;
; Entry TOS     = Entrypoint for providers mailslot handling routine
;       TOS + 4 = FSD version number
; Exit  EAX = Provider ID (-1 if error)
;       caller clears argument from stack
; Uses  C Registers

;**     MailSlotFunction - Handle a mailslot request
;
; Entry TOS     - pointer to IOReq
;                 ir_flags = 0 - Mailslot just openned
;                   ir_options - number of mailslots now openned
;                 ir_flags = 1 - Mailslot closed
;                   ir_options - number of mailslots still openned
;                 ir_flags = 2 - Write remote 2nd class mailslot
;                   ir_ppath - Unicode string containing \MAILSLOT\<path>
;                   ir_ppath2 - 16 character remote server name
;                   ir_length - length of users buffer
;                   ir_options - priority of message
;                   ir_timeout - timeout

;**     Connect - network provider connect routine
;
;       This procedure uses the C6 386 _cdecl calling sequence
;
; Entry TOS = pointer to IOReq


;**     IFSMgr_Attach
;**     IFSMgr_Detach

;**     IFSMgr_InitUseAdd
;**     IFSMgr_UseAdd
;
;       This procedure uses the C6 386 _cdecl calling sequence
;
;       The use_info_2 structure is of the form:
;
;       typedef struct _LM_GUID {
;               unsigned short  guid_uid;         /* LM10 style user id */
;               unsigned long   guid_serial;      /* user record serial number */
;               unsigned char   guid_rsvd[10];    /* pad out to 16 bytes for now */
;       } LM_GUID;
;
;       struct use_info_2 {
; -->           char            ui2_local[DEVLEN+1];
;               char            ui2_pad_1;
; -->           char FAR *      ui2_remote;
; -->           char FAR *      ui2_password;
;               unsigned short  ui2_status;
; -->           short           ui2_asg_type;
;               unsigned short  ui2_refcount;
;               unsigned short  ui2_usecount;
; -->           unsigned short  ui2_res_type;
;               uar FAR *       ui2_remote;
; -->           char FAR *      ui2_password;
;               unsigned short  ui2_status;
; -->           short           ui2_asg_type;
;               unsigned short  ui2_refcount;
;               unsigned short  ui2_usecount;
; -->           unsigned short  ui2_res_type;
;               unsigned short  ui2_flags;
;               unsigned short  ui2_usrclass;
;               void FAR *      ui2_dirname;
;               struct _LM_GUID ui2_dfs_id;
;       };      /* use_info_2 */
;
;       This is the netuse_info form:
;
;       netuse_info {
;               void            *nu_data;
;               int             nu_info; 
;               unsigned long   nu_flags;
;               unsigned long   nu_rsvd;        
;       };      /* netuse_info */

;
; The fields marked with --> should be filled in. All other fields should
; be set to zero except ui2_res_type which should be set to USE_RES_UNC
;
; For IFSMgr_InitUseAdd (connection will be set up disconnected)
; Entry TOS     = pointer to use_info_2 structure (pointers must be flat)
;       TOS + 4 = Provider ID (may be -1 for all providers)
; Exit  EAX     = error code (0 for success)
;
;       The FSD may call this api with a NULL ptr for the IOReq, in this 
;       case a ptr to a filled in netuse_info struct must be passed as 
;       the third parameter.
;
; For IFSMgr_UseAdd
; Entry TOS     = pointer to IOReq
;           ir_data = pointer to use_info_2 structure (pointers must be flat)
;           ir_flags = 1 if connection should be set up disconnected, 0 otherwise
;       TOS + 4 = Provider ID (may be -1 for all providers)
;       TOS + 8 = ptr to netuse_info struct if ptr to IOReq is null otherwise pass null.
; Exit  ir_error set properly (0 for success)
;

;**     IFSMgr_UseDel
;
;       This procedure uses the C6 386 _cdecl calling sequence

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -