public NVMeInfo GetInfo() { if (handle.IsClosed) { throw new ObjectDisposedException("WindowsNVMeSmart"); } try { byte[] rawData; NVMeIdentifyControllerData data = ReadPassThrough <NVMeIdentifyControllerData>(NVMePassThroughOpcode.AdminIdentify, 0x00000000, 0x000000001, out rawData); if (data.nn == 1) { byte[] rawDataNamespace; NVMeIdentifyNamespaceData nspace = ReadPassThrough <NVMeIdentifyNamespaceData>(NVMePassThroughOpcode.AdminIdentify, 0x000000001, 0x00000000, out rawDataNamespace); return(new NVMeInfoImpl(driveNumber, data, rawData, nspace, rawDataNamespace)); } return(new NVMeInfoImpl(driveNumber, data, rawData)); } catch (Win32Exception) { } return(null); }
public NVMeInfoImpl(int index, NVMeIdentifyControllerData data, byte[] rawData, NVMeIdentifyNamespaceData namespaceData, byte[] namespaceRawData) : this(index, data, rawData) { Namespace1 = new NVMeNamespaceInfoImpl(namespaceData, namespaceRawData); }