windows-nt/Source/XPSP1/NT/drivers/storage/drivearb/inc/drivearb.h
2020-09-26 16:20:57 +08:00

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