Compartilhar via


Função WdfUsbInterfaceGetConfiguredPipe (wdfusb.h)

[Aplica-se a KMDF e UMDF]

O método WdfUsbInterfaceGetConfiguredPipe retorna um identificador para o objeto de pipe da estrutura associado a uma interface de dispositivo USB especificada e ao índice de pipe. Opcionalmente, o método também retorna informações sobre o pipe.

Sintaxe

WDFUSBPIPE WdfUsbInterfaceGetConfiguredPipe(
  [in]                WDFUSBINTERFACE           UsbInterface,
  [in]                UCHAR                     PipeIndex,
  [in, out, optional] PWDF_USB_PIPE_INFORMATION PipeInfo
);

Parâmetros

[in] UsbInterface

Um identificador para um objeto de interface USB que foi obtido chamando WdfUsbTargetDeviceGetInterface.

[in] PipeIndex

Um índice baseado em zero no conjunto de objetos de pipe de estrutura associados ao objeto de interface especificado.

[in, out, optional] PipeInfo

Um ponteiro para uma estrutura de WDF_USB_PIPE_INFORMATION alocada pelo chamador que a estrutura preenche. Esse parâmetro é opcional e pode ser NULL.

Retornar valor

Se a operação for bem-sucedida, WdfUsbInterfaceGetConfiguredPipe retornará um identificador para o objeto de pipe da estrutura associado ao objeto de interface e ao índice de pipe especificados. O método retornará NULL se o tamanho da estrutura WDF_USB_PIPE_INFORMATION estiver incorreto ou se o valor do índice de pipe for muito grande.

Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.

Comentários

Seu driver pode chamar WdfUsbInterfaceGetConfiguredPipe depois de chamar WdfUsbTargetDeviceSelectConfig.

Para obter mais informações sobre o método WdfUsbInterfaceGetConfiguredPipe e destinos de E/S USB, consulte Destinos de E/S USB.

Exemplos

O exemplo de código a seguir envia uma solicitação de anulação USB para cada pipe configurado de uma interface USB especificada.

BYTE  count, i;
NTSTATUS  status;

count = WdfUsbInterfaceGetNumConfiguredPipes(UsbInterface);

for (i = 0; i < count; i++) {
    WDFUSBPIPE pipe;
    pipe = WdfUsbInterfaceGetConfiguredPipe(
                                            UsbInterface,
                                            i,
                                            NULL
                                            );
    status = WdfUsbTargetPipeAbortSynchronously(
                                            pipe,
                                            WDF_NO_HANDLE,
                                            NULL
                                            );

    if (!NT_SUCCESS(status)) {
        break;
    }
}

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Versão mínima do UMDF 2,0
Cabeçalho wdfusb.h (inclua Wdfusb.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
Regras de conformidade de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), UsbKmdfIrql(kmdf), UsbKmdfIrql2(kmdf), UsbKmdfIrqlExplicit(kmdf)

Confira também

WDF_USB_PIPE_INFORMATION

WdfUsbInterfaceGetNumConfiguredPipes

WdfUsbTargetDeviceGetInterface

WdfUsbTargetDeviceSelectConfig