IOCTL_BTH_GET_DEVICE_INFO IOCTL (b)

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結構的緩衝區。 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

另請參閱

BTH_DEVICE_INFO

BTH_DEVICE_INFO_LIST