Função MbbDeviceReceiveDeviceServiceSessionData (mbbcx.h)

Os drivers cliente chamam o método MbbDeviceReceiveServiceSessionData para passar dados de sessão de serviço de dispositivo recebidos para um aplicativo por meio da estrutura MBBCx.

Sintaxe

void MbbDeviceReceiveDeviceServiceSessionData(
  WDFDEVICE      Device,
  DSS_SESSION_ID SessionId,
  WDFMEMORY      Data
);

Parâmetros

Device

Um identificador para um objeto de dispositivo de estrutura que o driver cliente obteve de uma chamada anterior para WdfDeviceCreate.

SessionId

A ID da sessão de serviço do dispositivo obtida de uma chamada anterior para MbbAdapterGetSessionId.

Data

Um objeto WDFMEMORY alocado pelo driver que contém os dados a serem passados para o aplicativo.

Retornar valor

Nenhum

Comentários

Para obter mais informações, consulte Manipulando sessões de serviço de dispositivo.

Exemplo

O exemplo a seguir mostra como um driver de cliente pode passar dados DSS recebidos para o manipulador de recebimento DSS da estrutura.

VOID
MyReceiveDssData(
    _In_ PMY_DEVICE_CONTEXT DeviceContext,
    _In_ ULONG SessionId,
    _In_ PUCHAR InBuffer,
    _In_ ULONG InBufferSize
)
{
    NTSTATUS status = STATUS_SUCCESS;
    WDFMEMORY data;

    // Allocate the WDFMEMORY object from the received data buffer
    status = WdfMemoryAllocatePreallocated(WDF_NO_OBJECT_ATTRIBUTES,
                                            InBuffer,
                                            InBufferSize,
                                            &data);

    // Pass the received data to the framework
    if(NT_SUCCESS(status))
    {
        DeviceContext->DSSPacketsReceivedCount++;

        MbbDeviceReceiveServiceSessionData(DeviceContext->WdfDevice,
                                            SessionId,
                                            data);
        WdfObjectDelete(data);
    }
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 1809
Plataforma de Destino Universal
Versão mínima do KMDF 1.27
Cabeçalho mbbcx.h
Biblioteca mbbcxstub.lib
IRQL PASSIVE_LEVEL