KsDeviceGetBusData 函式 (ks.h)
KsDeviceGetBusData 函式會從指定 AVStream 裝置所在的總線讀取數據。
語法
KSDDKAPI ULONG KsDeviceGetBusData(
[in] PKSDEVICE Device,
[in] ULONG DataType,
[in] PVOID Buffer,
[in] ULONG Offset,
[in] ULONG Length
);
參數
[in] Device
KSDEVICE 結構的指標,代表應該從總線讀取數據的指定 AVStream 裝置。
[in] DataType
此參數表示要讀取的總線數據類型。 零對應於組態空間。 如需詳細資訊,請參閱參考頁面中的 WhichSpace 討論 IRP_MN_READ_CONFIG。
[in] Buffer
接收從總線讀取之數據的緩衝區指標。 長度至少必須和 長度一樣大。
[in] Offset
此參數包含 dataType 所指定空間中的位元組位移,DataType 從中讀取數據。
[in] Length
這個參數會指定要讀取到緩衝區 位元組數目。
傳回值
KsDeviceGetBusData 會傳回實際從總線讀取的位元組數目。 如果發生錯誤,這個值會是零。
言論
根據指定裝置所在之總線的驅動程式而定,此函式有兩個可能的行為和限制集。 如果指定的總線驅動程式支援總線介面標準(通常是PCI),請在IRQL = PASSIVE_LEVEL或DISPATCH_LEVEL呼叫此函式。 呼叫之後,KsDeviceGetBusData 會傳回從要求的空間讀取的實際位元組數目。 不過,如果指定的總線驅動程式不支援總線介面標準,則AVStream會透過ioCallDriver 與總線驅動程序通訊。 請注意,這會將 KsDeviceGetBusData 限制為 IRQL = PASSIVE_LEVEL,也表示如果數據擷取成功,則傳回值為 0,或等於 Length。
為了確保相容性,minidriver 寫入器可能會想要將 KsDeviceGetBusData 限制為 IRQL = PASSIVE_LEVEL。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Microsoft Windows XP 和更新版本的作系統和 DirectX 8.0 和更新版本的 DirectX 版本中提供。 |
目標平臺 | 普遍 |
標頭 | ks.h (包括 Ks.h) |
連結庫 | Ks.lib |
IRQL | PASSIVE_LEVEL (請參閱一節) |