1

これは本当に簡単なことだと思いますが、現時点では回避しています。ほとんどの例は、「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()んか?

4

0 に答える 0