これは本当に簡単なことだと思いますが、現時点では回避しています。ほとんどの例は、「BSD 名 /dev/disk を持っている場合、デバイスを見つける方法」を扱っていますが、デバイスを登録したばかりで、与えられた BSD 名を見つけたいと思っています。つまり、/dev/disk2.
基準を作ります
class net_lundman_zfs_zvol : public IOService
class net_lundman_zfs_zvol_device : public IOBlockStorageDevice
新しいデバイスのナブを作成します。
bool net_lundman_zfs_zvol::createBlockStorageDevice (zvol_state_t *zv)
{
net_lundman_zfs_zvol_device *nub = NULL;
bool result = false;
nub = new net_lundman_zfs_zvol_device;
if (nub == NULL) goto bail;
if (nub->init(zv) == false) goto bail;
if (nub->attach(this) == false) goto bail;
nub->registerService();
}
ここで、新しい nub に与えられた BSDName を知りたいと思います。net_lundman_zfs_zvol または net_lundman_zfs_zvol_device にあるかどうかは私には関係ありません。
私はちょうど私が呼び出すことができると思った
getProperty(kIOBSDNameKey);
ただし、常に NULL です。それで、おそらく私は自分を見つけてそこからIOMedia *
電話しなければなりませgetProperty()
んか?