Post

Replies

Boosts

Views

Activity

Reply to How to get distribution entitlements for DriverKit on iPadOS?
@Quinn, thank you very much for quick reply! You are correct that the docs need improving here. Once you’re done, I’d appreciate you filing a bug against any docs that you found misleading. We've filled a bug - FB11700685 Once you’re done, you can request the distribution capabilities using the form you referenced.  OK. We will send another request for distribution. BTW, how we can track progress of our request rather than check email?
Topic: Code Signing SubTopic: Entitlements Tags:
Oct ’22
Reply to DriverKit: limitations of AsyncCallback in IOConnectCallAsyncStructMethod?
@Drewbadour "Communicating Between a DriverKit Extension and a Client App" shows how to transfer struct synchronously via arguments->structureOutput. However in our case we want to save arguments->completion and transfer data asynchronously when it's provided by USB device. So we have to call AsyncCompletion that has following signature void AsyncCompletion(OSAction *action, IOReturn status, const IOUserClientAsyncArgumentsArray asyncData, uint32_t asyncDataCount, OSDispatchMethod supermethod); where typedef uint64_t IOUserClientAsyncArgumentsArray[16];
Topic: App & System Services SubTopic: Drivers Tags:
Aug ’22
Reply to How to do async IO using IOUSBHostPipe?
I think it is more or less your implementation of the ioCompleteCallback function that is missing. It's because we don't know how to read data. Here is method declaration in MyDriver.iig:     virtual void ReadComplete(OSAction *action,                               IOReturn  status,                               uint32_t  actualByteCount,                               uint64_t  completionTimestamp) TYPE(IOUSBHostPipe::CompleteAsyncIO); No data is passed
Topic: App & System Services SubTopic: Core OS Tags:
Jul ’22
Reply to How to get distribution entitlements for DriverKit on iPadOS?
@Quinn, thank you very much for quick reply! You are correct that the docs need improving here. Once you’re done, I’d appreciate you filing a bug against any docs that you found misleading. We've filled a bug - FB11700685 Once you’re done, you can request the distribution capabilities using the form you referenced.  OK. We will send another request for distribution. BTW, how we can track progress of our request rather than check email?
Topic: Code Signing SubTopic: Entitlements Tags:
Replies
Boosts
Views
Activity
Oct ’22
Reply to DriverKit: limitations of AsyncCallback in IOConnectCallAsyncStructMethod?
@Drewbadour "Communicating Between a DriverKit Extension and a Client App" shows how to transfer struct synchronously via arguments->structureOutput. However in our case we want to save arguments->completion and transfer data asynchronously when it's provided by USB device. So we have to call AsyncCompletion that has following signature void AsyncCompletion(OSAction *action, IOReturn status, const IOUserClientAsyncArgumentsArray asyncData, uint32_t asyncDataCount, OSDispatchMethod supermethod); where typedef uint64_t IOUserClientAsyncArgumentsArray[16];
Topic: App & System Services SubTopic: Drivers Tags:
Replies
Boosts
Views
Activity
Aug ’22
Reply to DriverKit on iOS - can't actually communicate with a driver in seed 1?
@eskimo, It looks like it's not fixed. I tested on Xcode - Version 14.0 beta 3 (14A5270f), macOS 12.5 Steps: Created new iOS project On General tab -> Frameworks, Libraries and Embedded Content clicked + Found and added IOKit.framework Added import IOKit in ContentView.swift Actual result: complier error - No such module IOKit
Topic: App & System Services SubTopic: Drivers Tags:
Replies
Boosts
Views
Activity
Jul ’22
Reply to How to do async IO using IOUSBHostPipe?
Take a look here... We reviewed sample that you mentioned. It has callbacks with different purpose and signature. For example callbacks have IOUserClientMethodArguments* arguments param to pass and get data back. So IOUSBHostPipe::CompleteAsyncIO has different signature
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Jul ’22
Reply to How to do async IO using IOUSBHostPipe?
I think it is more or less your implementation of the ioCompleteCallback function that is missing. It's because we don't know how to read data. Here is method declaration in MyDriver.iig:     virtual void ReadComplete(OSAction *action,                               IOReturn  status,                               uint32_t  actualByteCount,                               uint64_t  completionTimestamp) TYPE(IOUSBHostPipe::CompleteAsyncIO); No data is passed
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Jul ’22