54 lines
1.2 KiB
C
54 lines
1.2 KiB
C
|
/*
|
||
|
* DRIVEARB.H
|
||
|
*
|
||
|
* External header
|
||
|
*
|
||
|
* DRIVEARB.DLL - Shared Drive Aribiter for shared disks and libraries
|
||
|
* - inter-machine sharing client
|
||
|
* - inter-app sharing service
|
||
|
*
|
||
|
* Author: ErvinP
|
||
|
*
|
||
|
* (c) 2000 Microsoft Corporation
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
|
||
|
/*
|
||
|
* AcquireDrive flags
|
||
|
*/
|
||
|
#define DRIVEARB_REQUEST_READ (1 << 0)
|
||
|
#define DRIVEARB_REQUEST_WRITE (1 << 1)
|
||
|
#define DRIVEARB_INTRANODE_SHARE_READ (1 << 2)
|
||
|
#define DRIVEARB_INTRANODE_SHARE_WRITE (1 << 3)
|
||
|
|
||
|
#define DRIVEARB_NOWAIT (1 << 15)
|
||
|
|
||
|
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C"{
|
||
|
#endif
|
||
|
|
||
|
typedef VOID (CALLBACK* INVALIDATE_DRIVE_HANDLE_PROC)(HANDLE);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* API for drive arbiter SERVICE
|
||
|
*/
|
||
|
HANDLE __stdcall RegisterSharedDrive(LPSTR driveName);
|
||
|
BOOL __stdcall UnRegisterSharedDrive(HANDLE hDrive);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* API for drive arbiter CLIENT
|
||
|
*/
|
||
|
HANDLE __stdcall OpenDriveSession(LPSTR driveName, INVALIDATE_DRIVE_HANDLE_PROC invalidateHandleProc);
|
||
|
VOID __stdcall CloseDriveSession(HANDLE hDrive);
|
||
|
BOOL __stdcall AcquireDrive(HANDLE hDriveSession, DWORD flags);
|
||
|
VOID __stdcall ReleaseDrive(HANDLE hDriveSession);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|