Condividi tramite


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

IRP_MJ_DEVICE_CONTROL

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