IOCTL_BTH_GET_DEVICE_INFO IOCTL (b)
IOCTL_BTH_GET_DEVICE_INFO要求會傳回所有快取、先前探索到已啟用藍牙的遠端無線電的相關信息。
主要程序代碼
輸入緩衝區
AssociatedIrp.SystemBuffer 成員指向BTH_DEVICE_INFO_LIST結構的緩衝區。
輸入緩衝區長度
BTH_DEVICE_INFO_LIST 結構的長度
輸出緩衝區
AssociatedIrp.SystemBuffer 成員指向保存BTH_DEVICE_INFO_LIST結構的緩衝區。 BTH_DEVICE_INFO_LIST 結構的 numOfDevices 成員包含有資訊和 BTH_DEVICE_INFO 結構數位的裝置數目;每個裝置的一個陣列專案。
輸出緩衝區長度
如果傳遞的輸出緩衝區大小不完全 sizeof(BTH_DEVICE_INFO_LIST)
加上 正確的倍數 sizeof(BTH_DEVICE_INFO)
,則要求將會失敗,並STATUS_INVALID_BUFFER_SIZE。
狀態區塊
如果要求成功,則STATUS_BLOCK結構 的信息成員會 設定為包含裝置陣列資訊的緩衝區大小,以位元組為單位。 BTH_DEVICE_INFO_LIST 結構包含第一個BTH_DEVICE_INFO結構的記憶體,因此如果沒有傳回任何裝置, 信息 成員就會設定為第一個結構的大小。
Status 成員會設定為下表中的其中一個值。
狀態值 | 描述 |
---|---|
STATUS_SUCCESS | IOCTL 成功完成。 |
STATUS_INVALID_PARAMETER | 傳入的輸入緩衝區為 NULL。 |
STATUS_INVALID_BUFFER_SIZE | 輸出緩衝區大小不正確。 |
備註
IOCTL_BTH_GET_DEVICE_INFO IOCTL 提供所有先前探索到遠端無線電的資訊。
BTH_DEVICE_INFO_LIST 結構的 numOfDevices 成員會傳回 IOCTL 所傳回的BTH_DEVICE_INFO結構總數。 如果呼叫驅動程式傳入小於 numOfDevices 成員值的緩衝區,則只會傳回一部分可用的結構。 藍牙驅動程式開發人員應該先使用小型緩衝區呼叫IOCTL_BTH_GET_DEVICE_INFO,例如 sizeof(BTH_DEVICE_INFO_LIST)
,然後使用傳回 的 numOfDevices 成員來正確調整緩衝區的大小以供後續呼叫使用。
BTH_DEVICE_INFO_LIST 結構包含第一個BTH_DEVICE_INFO結構的記憶體。 使用下列公式計算呼叫IOCTL_BTH_GET_DEVICE_INFO的正確緩衝區大小:
Buffer=sizeof(BTH_DEVICE_INFO_LIST)+(NumOfDevices-1)*sizeof(BTH_DEVICE_INFO)
。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista 和更新版本中的版本:_Supported。 |
標頭 | btlctl.h (包括 Btlctl.h) |
IRQL | <= PASSIVE_LEVEL |