mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-06-16 17:55:15 +00:00
svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V2.0@5141 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V2.0@51352 . - FLOSS - Some files will need a follow-up -root/projects/repository/source/java/org/alfresco/repo/avm/wf/AVMRemoveWFStoreHandler.java (not yet on HEAD: 5094) -root/projects/repository/source/java/org/alfresco/filesys/server/state/FileStateLockManager.java (not yet on HEAD: 5093) -onContentUpdateRecord (not on HEAD) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5167 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
251 lines
11 KiB
Java
251 lines
11 KiB
Java
/*
|
|
* Copyright (C) 2005 Alfresco, Inc.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
* As a special exception to the terms and conditions of version 2.0 of
|
|
* the GPL, you may redistribute this Program in connection with Free/Libre
|
|
* and Open Source Software ("FLOSS") applications as described in Alfresco's
|
|
* FLOSS exception. You should have recieved a copy of the text describing
|
|
* the FLOSS exception, and it is also available here:
|
|
* http://www.alfresco.com/legal/licensing"
|
|
*/
|
|
package org.alfresco.filesys.smb;
|
|
|
|
/**
|
|
* NT IO Control Codes Class
|
|
*/
|
|
public class NTIOCtl
|
|
{
|
|
|
|
// Device type codes
|
|
|
|
public static final int DeviceBeep = 0x0001;
|
|
public static final int DeviceCDRom = 0x0002;
|
|
public static final int DeviceCDRomFileSystem = 0x0003;
|
|
public static final int DeviceController = 0x0004;
|
|
public static final int DeviceDataLink = 0x0005;
|
|
public static final int DeviceDFS = 0x0006;
|
|
public static final int DeviceDisk = 0x0007;
|
|
public static final int DeviceDiskFileSystem = 0x0008;
|
|
public static final int DeviceFileSystem = 0x0009;
|
|
public static final int DeviceInportPort = 0x000A;
|
|
public static final int DeviceKeyboard = 0x000B;
|
|
public static final int DeviceMailSlot = 0x000C;
|
|
public static final int DeviceMidiIn = 0x000D;
|
|
public static final int DeviceMidiOut = 0x000E;
|
|
public static final int DeviceMouse = 0x000F;
|
|
public static final int DeviceMultiUNCProvider = 0x0010;
|
|
public static final int DeviceNamedPipe = 0x0011;
|
|
public static final int DeviceNetwork = 0x0012;
|
|
public static final int DeviceNetworkBrowser = 0x0013;
|
|
public static final int DeviceNetworkFileSystem = 0x0014;
|
|
public static final int DeviceNull = 0x0015;
|
|
public static final int DeviceParallelPort = 0x0016;
|
|
public static final int DevicePhysicalNetCard = 0x0017;
|
|
public static final int DevicePrinter = 0x0018;
|
|
public static final int DeviceScanner = 0x0019;
|
|
public static final int DeviceSerialMousePort = 0x001A;
|
|
public static final int DeviceSerialPort = 0x001B;
|
|
public static final int DeviceScreen = 0x001C;
|
|
public static final int DeviceSound = 0x001D;
|
|
public static final int DeviceStreams = 0x001E;
|
|
public static final int DeviceTape = 0x001F;
|
|
public static final int DeviceTapeFileSystem = 0x0020;
|
|
public static final int DeviceTransport = 0x0021;
|
|
public static final int DeviceUnknown = 0x0022;
|
|
public static final int DeviceVideo = 0x0023;
|
|
public static final int DeviceVirtualDisk = 0x0024;
|
|
public static final int DeviceWaveIn = 0x0025;
|
|
public static final int DeviceWaveOut = 0x0026;
|
|
public static final int Device8042Port = 0x0027;
|
|
public static final int DeviceNetworkRedirector = 0x0028;
|
|
public static final int DeviceBattery = 0x0029;
|
|
public static final int DeviceBusExtender = 0x002A;
|
|
public static final int DeviceModem = 0x002B;
|
|
public static final int DeviceVDM = 0x002C;
|
|
public static final int DeviceMassStorage = 0x002D;
|
|
public static final int DeviceSMB = 0x002E;
|
|
public static final int DeviceKS = 0x002F;
|
|
public static final int DeviceChanger = 0x0030;
|
|
public static final int DeviceSmartCard = 0x0031;
|
|
public static final int DeviceACPI = 0x0032;
|
|
public static final int DeviceDVD = 0x0033;
|
|
public static final int DeviceFullScreenVideo = 0x0034;
|
|
public static final int DeviceDFSFileSystem = 0x0035;
|
|
public static final int DeviceDFSVolume = 0x0036;
|
|
|
|
// Method types for I/O and filesystem controls
|
|
|
|
public static final int MethodBuffered = 0;
|
|
public static final int MethodInDirect = 1;
|
|
public static final int MethodOutDirect = 2;
|
|
public static final int MethodNeither = 3;
|
|
|
|
// Access check types
|
|
|
|
public static final int AccessAny = 0;
|
|
public static final int AccessRead = 0x0001;
|
|
public static final int AccessWrite = 0x0002;
|
|
|
|
// Filesystem function codes
|
|
|
|
public static final int FsCtlRequestOplockLevel1 = 0;
|
|
public static final int FsCtlRequestOplockLevel2 = 1;
|
|
public static final int FsCtlRequestBatchOplock = 2;
|
|
public static final int FsCtlOplockBreakAck = 3;
|
|
public static final int FsCtlOpBatchAckClosePend = 4;
|
|
public static final int FsCtlOplockBreakNotify = 5;
|
|
public static final int FsCtlLockVolume = 6;
|
|
public static final int FsCtlUnlockVolume = 7;
|
|
public static final int FsCtlDismountVolume = 8;
|
|
public static final int FsCtlIsVolumeMounted = 10;
|
|
public static final int FsCtlIsPathnameValid = 11;
|
|
public static final int FsCtlMarkVolumeDirty = 12;
|
|
public static final int FsCtlQueryRetrievalPtrs = 14;
|
|
public static final int FsCtlGetCompression = 15;
|
|
public static final int FsCtlSetCompression = 16;
|
|
public static final int FsCtlMarkAsSystemHive = 19;
|
|
public static final int FsCtlOplockBreakAck2 = 20;
|
|
public static final int FsCtlInvalidateVolumes = 21;
|
|
public static final int FsCtlQueryFatBPB = 22;
|
|
public static final int FsCtlRequestFilterOplock = 23;
|
|
public static final int FsCtlFileSysGetStats = 24;
|
|
public static final int FsCtlGetNTFSVolumeData = 25;
|
|
public static final int FsCtlGetNTFSFileRecord = 26;
|
|
public static final int FsCtlGetVolumeBitmap = 27;
|
|
public static final int FsCtlGetRetrievalPtrs = 28;
|
|
public static final int FsCtlMoveFile = 29;
|
|
public static final int FsCtlIsVolumeDirty = 30;
|
|
public static final int FsCtlGetHFSInfo = 31;
|
|
public static final int FsCtlAllowExtenDasdIO = 32;
|
|
public static final int FsCtlReadPropertyData = 33;
|
|
public static final int FsCtlWritePropertyData = 34;
|
|
public static final int FsCtlFindFilesBySID = 35;
|
|
public static final int FsCtlDumpPropertyData = 37;
|
|
public static final int FsCtlSetObjectId = 38;
|
|
public static final int FsCtlGetObjectId = 39;
|
|
public static final int FsCtlDeleteObjectId = 40;
|
|
public static final int FsCtlSetReparsePoint = 41;
|
|
public static final int FsCtlGetReparsePoint = 42;
|
|
public static final int FsCtlDeleteReparsePoint = 43;
|
|
public static final int FsCtlEnumUsnData = 44;
|
|
public static final int FsCtlSecurityIdCheck = 45;
|
|
public static final int FsCtlReadUsnJournal = 46;
|
|
public static final int FsCtlSetObjectIdExtended = 47;
|
|
public static final int FsCtlCreateOrGetObjectId = 48;
|
|
public static final int FsCtlSetSparse = 49;
|
|
public static final int FsCtlSetZeroData = 50;
|
|
public static final int FsCtlQueryAllocRanges = 51;
|
|
public static final int FsCtlEnableUpgrade = 52;
|
|
public static final int FsCtlSetEncryption = 53;
|
|
public static final int FsCtlEncryptionFsCtlIO = 54;
|
|
public static final int FsCtlWriteRawEncrypted = 55;
|
|
public static final int FsCtlReadRawEncrypted = 56;
|
|
public static final int FsCtlCreateUsnJournal = 57;
|
|
public static final int FsCtlReadFileUsnData = 58;
|
|
public static final int FsCtlWriteUsnCloseRecord = 59;
|
|
public static final int FsCtlExtendVolume = 60;
|
|
|
|
// Base value for custom control codes
|
|
|
|
public static final int FsCtlCustom = 0x800;
|
|
|
|
/**
|
|
* Extract the device type from an I/O control code
|
|
*
|
|
* @param ioctl int
|
|
* @return int
|
|
*/
|
|
public final static int getDeviceType(int ioctl)
|
|
{
|
|
return (ioctl >> 16) & 0x0000FFFF;
|
|
}
|
|
|
|
/**
|
|
* Extract the access type from an I/O control code
|
|
*
|
|
* @param ioctl int
|
|
* @return int
|
|
*/
|
|
public final static int getAccessType(int ioctl)
|
|
{
|
|
return (ioctl >> 14) & 0x00000003;
|
|
}
|
|
|
|
/**
|
|
* Extract the function code from the I/O control code
|
|
*
|
|
* @param ioctl int
|
|
* @return int
|
|
*/
|
|
public final static int getFunctionCode(int ioctl)
|
|
{
|
|
return (ioctl >> 2) & 0x00000FFF;
|
|
}
|
|
|
|
/**
|
|
* Extract the method code from the I/O control code
|
|
*
|
|
* @param ioctl int
|
|
* @return int
|
|
*/
|
|
public final static int getMethod(int ioctl)
|
|
{
|
|
return ioctl & 0x00000003;
|
|
}
|
|
|
|
/**
|
|
* Make a control code
|
|
*
|
|
* @param devType int
|
|
* @param func int
|
|
* @param method int
|
|
* @param access int
|
|
* @return int
|
|
*/
|
|
public final static int makeControlCode(int devType, int func, int method, int access)
|
|
{
|
|
return (devType << 16) + (access << 14) + (func << 2) + (method);
|
|
}
|
|
|
|
/**
|
|
* Return an I/O control code as a string
|
|
*
|
|
* @param ioctl int
|
|
* @return String
|
|
*/
|
|
public final static String asString(int ioctl)
|
|
{
|
|
StringBuffer str = new StringBuffer();
|
|
|
|
str.append("[Func:");
|
|
str.append(getFunctionCode(ioctl));
|
|
|
|
str.append(",DevType:");
|
|
str.append(getDeviceType(ioctl));
|
|
|
|
str.append(",Access:");
|
|
str.append(getAccessType(ioctl));
|
|
|
|
str.append(",Method:");
|
|
str.append(getMethod(ioctl));
|
|
|
|
str.append("]");
|
|
|
|
return str.toString();
|
|
}
|
|
}
|