Line 422: |
Line 422: |
| == CreateInterfaceAvailableEvent == | | == CreateInterfaceAvailableEvent == |
| Takes an input u8 and returns an output handle. | | Takes an input u8 and returns an output handle. |
| + | |
| + | Value 0: when signaled, this indicates that the user-process should use [[#QueryAvailableInterfaces]] and [[#AcquireUsbIf]] with the output interfaces (and the rest of interface setup). |
| | | |
| == DestroyInterfaceAvailableEvent == | | == DestroyInterfaceAvailableEvent == |
Line 428: |
Line 430: |
| == GetInterfaceStateChangeEvent == | | == GetInterfaceStateChangeEvent == |
| No input, returns an output event handle with autoclear disabled. | | No input, returns an output event handle with autoclear disabled. |
| + | |
| + | When signaled, this indicates that the user-process should use [[#QueryAcquiredInterfaces]] and cleanup state for interfaces which were already initialized. |
| | | |
| == AcquireUsbIf == | | == AcquireUsbIf == |
Line 453: |
Line 457: |
| | 5 || [[#CtrlXferAsync]] || | | | 5 || [[#CtrlXferAsync]] || |
| |- | | |- |
− | | 6 || || No input, returns an output handle. | + | | 6 || || No input, returns an output handle. Signaled when [[#CtrlXferAsync]] finishes. |
| |- | | |- |
| | 7 || [[#GetCtrlXferReport]] || | | | 7 || [[#GetCtrlXferReport]] || |
Line 461: |
Line 465: |
| | 9 || [[#OpenUsbEp]] || | | | 9 || [[#OpenUsbEp]] || |
| |} | | |} |
| + | |
| + | Official sw uses autoclear=false for the above events. |
| | | |
| === SetInterface === | | === SetInterface === |
Line 503: |
Line 509: |
| | 1 || [[#Close]] || | | | 1 || [[#Close]] || |
| |- | | |- |
− | | 2 || || No input, returns an output handle. | + | | 2 || || No input, returns an output handle. Signaled when [[#PostBufferAsync_2|#PostBufferAsync]] finishes. |
| |- | | |- |
| | 3 || [[#Populate]] || | | | 3 || [[#Populate]] || |
Line 517: |
Line 523: |
| | 8 || [4.0.0+] || | | | 8 || [4.0.0+] || |
| |} | | |} |
| + | |
| + | Official sw uses autoclear=false for the above event. |
| + | |
| + | Immediately after opening the endpoint session, official sw uses [[#Populate]] and cmd2. |
| | | |
| ==== Open ==== | | ==== Open ==== |
Line 523: |
Line 533: |
| ==== Close ==== | | ==== Close ==== |
| No input/output. | | No input/output. |
| + | |
| + | Used by official sw prior to closing the endpoint session. |
| | | |
| ==== Populate ==== | | ==== Populate ==== |
| No input/output. | | No input/output. |
| + | |
| + | Used after opening the endpoint session (see above). |
| | | |
| ==== PostBufferAsync ==== | | ==== PostBufferAsync ==== |