Compartilhar via


Função de retorno de chamada PFNKSPINIRP (ks.h)

A rotina de um minidriver AVStream é chamada quando uma atividade no pino é executada e recebe estes IRPs:

Sintaxe

PFNKSPINIRP Pfnkspinirp;

NTSTATUS Pfnkspinirp(
  [in] PKSPIN Pin,
  [in] PIRP Irp
)
{...}

Parâmetros

[in] Pin

Ponteiro para o KSPIN que acabou de ser criado.

[in] Irp

Ponteiro para o IRP para Fixar.

Valor de retorno

Se a rotina for bem-sucedida, a operação terá a garantia de êxito. Retornar STATUS_SUCCESS ou STATUS_PENDING.

Observações

IRP Descrição
IRP_MJ_CREATE Normalmente, essa rotina é usada por minidrivers que desejam inicializar o contexto e os recursos associados ao pino. O minidriver especifica o endereço dessa rotina no membro Criar de sua estrutura de KSPIN_DISPATCH. Essa rotina é chamada quando um pin é criado. No ponto em que essa rotina é chamada, o objeto de arquivo tem um contexto associado e o cabeçalho do objeto KS foi alocado. Normalmente, essa função será fornecida por minidrivers que desejam inicializar o contexto e os recursos associados ao pino. O mutex de controle de filtro é mantido durante essa função. A função será chamada em IRQL = PASSIVE_LEVEL. Essa rotina é opcional. Se a rotina for bem-sucedida, a operação de criação terá a garantia de ter êxito. Retornar STATUS_SUCCESS ou STATUS_PENDING. Se um minidriver retornar STATUS_PENDING, o AVStream não concluirá o IRP_MJ_CREATE imediatamente. No entanto, antes de retornar STATUS_PENDING, o minidriver deve chamar IoMarkIrpPending. Depois que o processamento da criação for concluído, o minidriver deverá definir o código de status do IRP e, em seguida, chamar KsCompletePendingRequest.
IRP_MJ_CLOSE O minidriver especifica o endereço dessa rotina no Fechar membro de sua estrutura de KSPIN_DISPATCH. No ponto em que a rotina é chamada, todos os eventos registrados no pino foram liberados, mas o objeto está intacto de outra forma. O mutex de controle de filtro é mantido durante essa função. Para obter mais informações sobre mutexes, consulte Mutexes no AVStream. Essa rotina é opcional.

Requisitos

Requisito Valor
da Plataforma de Destino Área de trabalho
cabeçalho ks.h (incluir Ks.h)
IRQL PASSIVE_LEVEL (seção Ver Comentários)

Consulte também

IoMarkIrpPending

KSPIN_DISPATCH

KsCompletePendingRequest