private IOHIDDeviceGetReport ( |
||
device | ||
type | IOHIDReportType | |
reportID | ||
report | ||
reportLength | ||
Résultat | IOReturn |
public unsafe override void GetFeature(byte[] buffer, int offset, int count) { Throw.If.OutOfRange(buffer, offset, count); HandleAcquireIfOpenOrFail(); try { fixed(byte *bufferBytes = buffer) { int reportID = buffer[offset]; var hasReportID = ((MacHidDevice)Device).ReportsUseID; int reportOffset = hasReportID ? 0 : 1; var reportPtr = (IntPtr)(bufferBytes + offset + reportOffset); count -= reportOffset; if (count <= 0) { throw new ArgumentException(); } IntPtr reportLength = (IntPtr)count; if (NativeMethods.IOReturn.Success != NativeMethods.IOHIDDeviceGetReport(_handle, NativeMethods.IOHIDReportType.Feature, (IntPtr)reportID, reportPtr, ref reportLength)) { throw new IOException("GetFeature failed."); } } } finally { HandleRelease(); } }
public unsafe override void GetFeature(byte[] buffer, int offset, int count) { Throw.If.OutOfRange(buffer, offset, count); HandleAcquireIfOpenOrFail(); try { fixed(byte *bufferBytes = buffer) { IntPtr reportLength = (IntPtr)count; if (NativeMethods.IOReturn.Success != NativeMethods.IOHIDDeviceGetReport(_handle, NativeMethods.IOHIDReportType.Feature, (IntPtr)buffer[offset], (IntPtr)(bufferBytes + offset), ref reportLength)) { throw new IOException("GetFeature failed."); } } } finally { HandleRelease(); } }