IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2 IOCTL (sidebandaudio.h)

音訊驅動程式會發出 IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2 控制程式代碼,以取得透過側帶音訊裝置介面公開的音訊端點相關信息。 此 IOCTL 第 2 版可讓控制器驅動程式提供自定義裝置屬性,以新增至音訊裝置的介面。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

以 0 為基礎的端點索引值,根據 IOCTL_SBAUD_GET_DEVICE_DESCRIPTOR所報告的音訊端點數目。

這是從 0 到 (N-1) 的 ULONG 值,其中 N 是裝置的端點數目。

輸入緩衝區長度

ULONG 的大小。

輸出緩衝區

包含 SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2 結構的緩衝區,後面接著結構所參考的任何其他數據。 如果輸出緩衝區大小足夠,而且要求成功,就會傳回這個值。 特別是,緩衝區包含 SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2 結構之 FriendlyName 欄位所參考之字串的記憶體。

輸出緩衝區長度

SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2結構和參考數據的大小。

狀態區塊

如果例程成功,則 Status 會設定為 STATUS_SUCCESS,而 Information 成員是例程寫入輸出緩衝區的位元組數目。

注意 這可能大於 SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2 結構的大小,因為輸出緩衝區可能包含結構所參考的其他數據

如果 Status 設定為STATUS_BUFFER_TOO_SMALL,則音訊驅動程式應該讀取 信息 成員,以取得呼叫端應為此要求配置的緩衝區大小。

備註

此 IOCTL 只能從核心模式呼叫。

音訊驅動程式會傳送此要求,以取得已啟用音訊 Sideband 端點的相關信息。 啟用介面時資訊不會變更,但在停用介面時可能會變更。 因此,音訊驅動程式會在探索已啟用的裝置介面之後立即傳送此要求,並使用資訊來建置適當的KSFILTER_DESCRIPTOR結構。

音訊驅動程式會傳送此要求一次,輸出緩衝區大小為零 (0) ,以判斷所需的輸出緩衝區大小。 在此情況下,要求將會完成狀態STATUS_BUFFER_TOO_SMALL,並將 信息 成員設定為必要的緩衝區大小。 音訊驅動程序接著會配置必要的儲存空間,然後再次傳送要求。

規格需求

需求
標頭 sidebandaudio.h

另請參閱

SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2

I/O 控制程式代碼簡介

sidebandaudio.h