UCHAR iTerminal;
}USB_AUDIO_CONTROL_INPUT_TERMINAL_DESCRIPTOR, *PUSB_AUDIO_CONTROL_INPUT_TERMINAL_DESCRIPTOR;
+typedef struct
+{
+ UCHAR bLength;
+ UCHAR bDescriptorType;
+ UCHAR bDescriptorSubtype;
+ UCHAR bUnitID;
+ UCHAR bSourceID;
+ UCHAR bControlSize;
+ UCHAR bmaControls[1];
+ UCHAR iFeature;
+}USB_AUDIO_CONTROL_FEATURE_UNIT_DESCRIPTOR, *PUSB_AUDIO_CONTROL_FEATURE_UNIT_DESCRIPTOR;
+
+typedef struct
+{
+ UCHAR bLength;
+ UCHAR bDescriptorType;
+ UCHAR bDescriptorSubtype;
+ UCHAR bUnitID;
+ UCHAR bNrInPins;
+ UCHAR baSourceID[1];
+ UCHAR bNrChannels;
+ USHORT wChannelConfig;
+ UCHAR iChannelNames;
+ UCHAR bmControls;
+ UCHAR iMixer;
+}USB_AUDIO_CONTROL_MIXER_UNIT_DESCRIPTOR, *PUSB_AUDIO_CONTROL_MIXER_UNIT_DESCRIPTOR;
+
+
typedef struct
{
UCHAR bLength;
PUCHAR Buffer; /* iso buffer*/
ULONG BufferSize; /* iso buffer size */
PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor; /* interface descriptor */
- WORK_QUEUE_ITEM CaptureWorkItem; /* work item */
- PKSWORKER CaptureWorker; /* capture worker */
- WORK_QUEUE_ITEM StarvationWorkItem; /* work item */
- PKSWORKER StarvationWorker; /* capture worker */
+ WORK_QUEUE_ITEM CaptureWorkItem; /* work item */
+ PKSWORKER CaptureWorker; /* capture worker */
+ WORK_QUEUE_ITEM StarvationWorkItem; /* work item */
+ PKSWORKER StarvationWorker; /* capture worker */
}PIN_CONTEXT, *PPIN_CONTEXT;
+typedef struct
+{
+ PUSB_COMMON_DESCRIPTOR Descriptor;
+ ULONG NodeCount;
+ ULONG Nodes[20];
+}NODE_CONTEXT, *PNODE_CONTEXT;
+
+
/* filter.c */
NTSTATUS
FreeFunction(
IN PVOID Item);
+VOID
+NTAPI
+CountTerminalUnits(
+ IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
+ OUT PULONG NonStreamingTerminalDescriptorCount,
+ OUT PULONG TotalTerminalDescriptorCount);
+
/* usbaudio.c */
NTSTATUS
/* pin.c*/
+NTSTATUS
+NTAPI
+UsbAudioPinDataIntersect(
+ _In_ PVOID Context,
+ _In_ PIRP Irp,
+ _In_ PKSP_PIN Pin,
+ _In_ PKSDATARANGE DataRange,
+ _In_ PKSDATARANGE MatchingDataRange,
+ _In_ ULONG DataBufferSize,
+ _Out_ PVOID Data,
+ _Out_ PULONG DataSize);
+
NTSTATUS
NTAPI
UsbAudioCaptureComplete(