public static Result GetAndClearPatrolReadAllocateBufferCount(this StorageService service, out long successCount, out long failureCount) { UnsafeHelpers.SkipParamInit(out successCount, out failureCount); ReferenceCountedDisposable <IStorageDeviceOperator> mmcOperator = null; try { Result rc = service.GetMmcManagerOperator(out mmcOperator); if (rc.IsFailure()) { return(rc); } int operationId = MakeOperationId(MmcManagerOperationIdValue.GetAndClearPatrolReadAllocateBufferCount); OutBuffer successCountBuffer = OutBuffer.FromStruct(ref successCount); OutBuffer failureCountBuffer = OutBuffer.FromStruct(ref failureCount); return(mmcOperator.Target.OperateOut2(out _, successCountBuffer, out _, failureCountBuffer, operationId)); } finally { mmcOperator?.Dispose(); } }
public static Result GetAndClearMmcErrorInfo(this StorageService service, out StorageErrorInfo errorInfo, out long logSize, Span <byte> logBuffer) { UnsafeHelpers.SkipParamInit(out errorInfo, out logSize); ReferenceCountedDisposable <IStorageDeviceOperator> mmcOperator = null; try { Result rc = service.GetMmcManagerOperator(out mmcOperator); if (rc.IsFailure()) { return(rc); } int operationId = MakeOperationId(MmcManagerOperationIdValue.GetAndClearErrorInfo); var logOutBuffer = new OutBuffer(logBuffer); OutBuffer errorInfoOutBuffer = OutBuffer.FromStruct(ref errorInfo); return(mmcOperator.Target.OperateOut2(out _, errorInfoOutBuffer, out logSize, logOutBuffer, operationId)); } finally { mmcOperator?.Dispose(); } }
public static Result GetMmcSpeedMode(this StorageService service, out MmcSpeedMode speedMode) { UnsafeHelpers.SkipParamInit(out speedMode); ReferenceCountedDisposable <IStorageDeviceOperator> mmcOperator = null; try { Result rc = service.GetMmcOperator(out mmcOperator, MmcPartition.UserData); if (rc.IsFailure()) { return(rc); } Unsafe.SkipInit(out SpeedMode sdmmcSpeedMode); OutBuffer outBuffer = OutBuffer.FromStruct(ref sdmmcSpeedMode); int operationId = MakeOperationId(MmcOperationIdValue.GetSpeedMode); rc = mmcOperator.Target.OperateOut(out _, outBuffer, operationId); if (rc.IsFailure()) { return(rc); } speedMode = sdmmcSpeedMode switch { SpeedMode.MmcIdentification => MmcSpeedMode.Identification, SpeedMode.MmcLegacySpeed => MmcSpeedMode.LegacySpeed, SpeedMode.MmcHighSpeed => MmcSpeedMode.HighSpeed, SpeedMode.MmcHs200 => MmcSpeedMode.Hs200, SpeedMode.MmcHs400 => MmcSpeedMode.Hs400, _ => MmcSpeedMode.Unknown }; return(Result.Success); } finally { mmcOperator?.Dispose(); } }
public static Result GetMmcPatrolCount(this StorageService service, out uint count) { UnsafeHelpers.SkipParamInit(out count); ReferenceCountedDisposable <IStorageDeviceOperator> mmcOperator = null; try { Result rc = service.GetMmcManagerOperator(out mmcOperator); if (rc.IsFailure()) { return(rc); } int operationId = MakeOperationId(MmcManagerOperationIdValue.GetPatrolCount); OutBuffer outBuffer = OutBuffer.FromStruct(ref count); return(mmcOperator.Target.OperateOut(out _, outBuffer, operationId)); } finally { mmcOperator?.Dispose(); } }