예제 #1
0
 private void Dispose(bool disposing)
 {
     if (!disposing)
     {
         return;
     }
     Patches = null;
     eio.Dispose();
     eio        = null;
     IsOpen     = false;
     IsDisposed = true;
 }
예제 #2
0
 public XenonPatch(Stream XenonPatch)
 {
     if (!XenonPatch.CanRead || !XenonPatch.CanWrite)
     {
         throw new Exception("XenonPatch: Invalid Xenon patch specified. It doesn't support reading/writing.");
     }
     if (XenonPatch.Length > 0x4000 || XenonPatch.Length < 12 || (XenonPatch.Length % 4) != 0)
     {
         throw new Exception("XenonPatch: Invalid Xenon patch specified. It is not a valid size.");
     }
     eio    = new EndianIO(XenonPatch, EndianTypes.BigEndian);
     IsOpen = true;
 }
예제 #3
0
 public NeighborhoodDrives(XboxConsole Console, EndianIO XMS, uint NopAddress, uint DriveTableAddress, uint MountedPackageTableAddress, uint[] XBDMRange)
 {
     if (XBDMRange.Length != 2 || XBDMRange[0] == 0 || XBDMRange[1] == 0)
     {
         throw new Exception("NeighborhoodDrives: Invalid XBDM range specified.");
     }
     console    = Console;
     xms        = XMS;
     dtAddress  = DriveTableAddress;
     mptAddress = MountedPackageTableAddress;
     xbdmRange  = XBDMRange;
     if (NopAddress != 0)
     {
         xms.SetPosition(NopAddress);
         xms.Writer.Write(0x60000000);
     }
 }