Class IOKit.IOObject

  • All Implemented Interfaces:
    NativeMapped
    Direct Known Subclasses:
    IOKit.IOIterator, IOKit.IORegistryEntry
    Enclosing interface:
    IOKit

    public static class IOKit.IOObject
    extends PointerType
    IOKitLib implements non-kernel task access to common IOKit object types - IORegistryEntry, IOService, IOIterator etc. These functions are generic - families may provide API that is more specific.

    IOKitLib represents IOKit objects outside the kernel with the types io_object_t, io_registry_entry_t, io_service_t, and io_connect_t. Function names usually begin with the type of object they are compatible with - e.g., IOObjectRelease can be used with any io_object_t. Inside the kernel, the c++ class hierarchy allows the subclasses of each object type to receive the same requests from user level clients, for example in the kernel, IOService is a subclass of IORegistryEntry, which means any of the IORegistryEntryXXX functions in IOKitLib may be used with io_service_t's as well as io_registry_t's. There are functions available to introspect the class of the kernel object which any io_object_t et al. represents. IOKit objects returned by all functions should be released with IOKit.IOObjectRelease(com.sun.jna.platform.mac.IOKit.IOObject).