IOCTL_BTHX_READ_HCI IOCTL (bthxddi.h)
IOCTL_BTHX_READ_HCI viene usato per leggere i dati e gli eventi ACL Bluetooth dal livello di trasporto.
Codice principale
Buffer di input
I driver di profilo devono usare KMDF e il relativo metodo WdfRequestRetrieveInputMemory per recuperare i parametri di input. Ad esempio, per ottenere il buffer di output:
Status = WdfRequestRetrieveInputMemory(_Request, &ReqInMemory);
Per altre informazioni, vedere gli esempi Bluetooth WDK.
Lunghezza del buffer di input
Il buffer descrive un UCHAR che rappresenta il tipo di lettura. La lunghezza del buffer è la dimensione dell'UCHAR.
Buffer di output
I driver di profilo devono usare KMDF e il relativo metodo WdfRequestRetrieveOutputMemory per recuperare i parametri di input. Ad esempio, per ottenere il buffer di output:
Status = WdfRequestRetrieveOutputMemory(_Request, &ReqOutMemory);
Per altre informazioni, vedere gli esempi Bluetooth WDK.
Lunghezza del buffer di output
Il membro AssociatedIrp.SystemBuffer punta a un buffer che contiene una struttura BTHX_HCI_READ_WRITE_CONTEXT e dati aggiuntivi associati alla lettura. Il buffer deve essere sufficientemente grande da contenere l'evento più grande o il pacchetto di dati ACL, a seconda del tipo di pacchetto.
Per un pacchetto di eventi, si tratta di FIELD_OFFSET(BTHX_HCI_READ_WRITE_CONTEXT, Data) +257 dove 257 è la somma di un'intestazione di evento a 2 byte e di 255 byte dati dell'evento.
Per un pacchetto di dati ACL, è FIELD_OFFSET(BTHX_HCI_READ_WRITE_CONTEXT, Data) + MaxAclTransferInSize dove MaxAclTransferInSize è il valore in BTHX_CAPABILITIES restituito dal driver di trasporto con IOCTL_BTHX_QUERY_CAPABILITIES.
Blocco dello stato
Il membro Information della struttura STATUS_BLOCK viene impostato sul numero di byte di dati restituiti.
Il membro Status è impostato su uno dei valori della tabella seguente.
Valore di stato | Descrizione |
---|---|
STATUS_SUCCESS | L'IOCTL è stato completato correttamente. |
STATUS_CANCELLED | L'IOCTL è stato annullato. |
Commenti
Il buffer di input punta al tipo di pacchetto da leggere.
Il buffer di output punta a una struttura BTHX_HCI_READ_WRITE_CONTEXT il cui membro DataLen specifica il numero di byte nel membro Data . Il membro Type deve essere impostato sullo stesso tipo di pacchetto di input.
Il membro Information del STATUS_BLOCK deve essere impostato su FIELD_OFFSET(BTHX_HCI_READ_WRITE_CONTEXT, Data) + DataLen.
La dimensione massima del membro Data per una lettura ACL è determinata da MaxAclTransferInSize, specificata nella struttura BTHX_CAPABILITIES. La dimensione massima del membro Dati per un evento è 255.
Questo IOCTL deve restituire STATUS_SUCCESS solo con il normale funzionamento. Gli errori specifici del trasporto non devono essere restituiti. L'IOCTL deve restituire STATUS_CANCELLED solo se questo IOCTL è stato annullato.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato a partire da Windows 8. |
Intestazione | bthxddi.h |
IRQL | <= PASSIVE_LEVEL |