Microsoft Visual C# 2008 Express Edition でウィンドウ アプリケーションを開発しています。アプリケーションを実行するとランタイム エラーが発生します。
string[] diskArray;
string driveNumber;
string driveLetter;
**searcher1 = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDiskToPartition");**
foreach (ManagementObject dm in searcher1.Get())
{
diskArray = null;
driveLetter = getValueInQuotes(dm["Dependent"].ToString());
diskArray = getValueInQuotes(dm["Antecedent"].ToString()).Split(',');
driveNumber = diskArray[0].Remove(0, 6).Trim();
if(driveLetter==this._driveLetter)
{
/* This is where we get the drive serial */
ManagementObjectSearcher disks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject disk in disks.Get())
{
if (disk["Name"].ToString() == ("\\\\.\\PHYSICALDRIVE" + driveNumber) & disk["InterfaceType"].ToString() == "USB") {
this._serialNumber = parseSerialFromDeviceID(disk["PNPDeviceID"].ToString());
(強調表示された行)
コンテキスト 0x3c74b38 が切断されています。COM コンポーネントで要求を処理するためにプロキシは使用されません。これにより、破損やデータ損失が発生する可能性があります。この問題を回避するには、内部に存在する COM コンポーネントを表す RuntimeCallableWrappers でアプリケーションが完全に完了するまで、すべてのコンテキスト/アパートメントが有効なままであることを確認してください。