在kext中为IOBlockStorageDevice查找我自己的BSD名称

时间:2013-07-10 05:57:30

标签: kernel iokit darwin kernel-extension

我认为这应该是非常简单的事情,但此刻它正在躲避我。最 示例处理“如果你有一个BSD名称/开发/磁盘,你怎么能找到设备”,而我刚刚注册了我的设备,并希望找到它给出的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();
}

现在,我想找出我的新小组给出的BSDName。如果它对我没关系 如果在net_lundman_zfs_zvol或net_lundman_zfs_zvol_device。

我以为我可以打电话

 getProperty(kIOBSDNameKey);

但它始终为NULL。我可能需要找到IOMedia *并从那里拨打getProperty()吗?

0 个答案:

没有答案