_BRB_PSM結構(bthddi.h)
_BRB_PSM結構描述用來註冊或取消註冊的通訊協定/服務多任務器(PSM)。
語法
struct _BRB_PSM {
BRB_HEADER Hdr;
USHORT Psm;
};
成員
Hdr
包含目前 BRB 相關信息的 BRB_HEADER 結構。
Psm
當_BRB_PSM結構當做 BRB_REGISTER_PSM BRB 呼叫的輸入傳遞時,這是配置檔驅動程式嘗試註冊的 PSM。 如果配置檔驅動程式將此值設定為零,就會動態產生 PSM。 如果配置檔驅動程式在 BRB_REGISTER_PSM 輸入上指定零,則在此成員的輸出中會包含已註冊的 PSM。
當_BRB_PSM結構當做 BRB_UNREGISTER_PSM BRB 呼叫的輸入傳遞時,這是配置檔驅動程序嘗試取消註冊的 PSM。 此值必須是目前註冊的 PSM。 如需有效 PSM 值的詳細資訊,請參閱一節。
某些 PSM 保留供 Windows 使用:
SDP:0x01
RFCOMM:0x03
HID 控制件:0x11
HID 數據:0x13
BNEP: 0x0F
言論
若要註冊 PSM,配置檔驅動程式應該 建置並傳送BRB_REGISTER_PSM 要求。
註冊 PSM 之後,配置檔驅動程式可以從遠端裝置接收連線通知,並可建置和傳送 BRB_L2CA_OPEN_CHANNEL_RESPONSE 接受連入連線的要求。
配置文件驅動程式可以指定特定的 PSM,也可以藉由在 Psm 成員中指定PSM_INVALID來要求動態產生 PSM。 如果配置檔驅動程式指定PSM_INVALID,在輸出時,所指派的 PSM 將會在 結構的 Psm 成員中傳回。
藍牙驅動程式堆疊會註冊下列配置檔的 PSM:HCRP、HID、PAN、SDP 和 RFCOMM。
如需 L2CAP 伺服器和 PSM 的詳細資訊,請參閱 在藍牙配置檔驅動程式中接受 L2CAP 連線。
配置文件驅動程式無法註冊已由另一個驅動程式註冊的 PSM。 如果嘗試這樣做,則會傳回STATUS_ALREADY_COMMITTED錯誤。 BRB_REGISTER_PSM 要求不會影響 SDP 記錄。 註冊 PSM 之後,驅動程式可以透過 SDP 公告 PSM,方法是傳送 IOCTL_BTH_SDP_SUBMIT_RECORD IOCTL。
若要取消註冊先前註冊的 PSM,配置檔驅動程式應該 建置並傳送BRB_UNREGISTER_PSM 要求。 配置檔驅動程序必須指定目前註冊的 PSM。 如果配置檔驅動程式在 Psm 成員中傳送值為零的BRB_REGISTER_PSM要求,則動態指派的 PSM 值應該在BRB_UNREGISTER_PSM要求中傳遞。
BRB_UNREGISTER_PSM 要求不會影響嘗試連線到 PSM 的 SDP 記錄。 配置文件驅動程式可以藉由傳送 來移除相關的 SDP 記錄 IOCTL_BTH_SDP_REMOVE_RECORD IOCTL。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows Vista 和更新版本中的版本:_Supported。 |
標頭 | bthddi.h (包括 Bthddi.h) |