public ControlCode(ControlCodeDeviceType deviceType, uint function, ControlCodeMethod method, ControlCodeAccess access) { Value = ((uint)deviceType << 16) | ((uint)access << 14) | (function << 2) | (uint)method; }
public void ValidateMountDeviceCodes(ControlCodes.MountDevice code, uint function, ControlCodeMethod method, ControlCodeAccess access) { ControlCode generatedCode = new ControlCode(ControlCodeDeviceType.MountDevice, function, method, access); ((ControlCode)code).Should().Be(generatedCode, $"generated code is 0x{generatedCode.Value:x8}"); }
// https://msdn.microsoft.com/en-us/library/ms902086.aspx public static uint CTL_CODE(ControlCodeDeviceType deviceType, uint function, ControlCodeMethod method, ControlCodeAccess access) { return(((uint)deviceType << 16) | ((uint)access << 14) | (function << 2) | (uint)method); }