共用方式為


IOCTL_BTH_GET_DEVICE_INFO IOCTL (btlctl.h)

IOCTL_BTH_GET_DEVICE_INFO要求會傳回所有快取且先前探索到已啟用藍牙的遠端無線電的相關信息。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

AssociatedIrp.SystemBuffer 成員指向 BTH_DEVICE_INFO_LIST 結構的緩衝區。

輸入緩衝區長度

BTH_DEVICE_INFO_LIST 結構的長度

輸出緩衝區

AssociatedIrp.SystemBuffer 成員指向保存 BTH_DEVICE_INFO_LIST 結構的緩衝區。 numOfDevices BTH_DEVICE_INFO_LIST 結構的成員包含有資訊和 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 提供所有先前探索到遠端無線電的資訊。

numOfDevices 成員BTH_DEVICE_INFO_LIST結構會傳回 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 (include Btlctl.h)
IRQL <= PASSIVE_LEVEL

另請參閱

BTH_DEVICE_INFO

BTH_DEVICE_INFO_LIST