Compartilhar via


Função CcUnpinRepinnedBcb (ntifs.h)

A rotina CcUnpinRepinnedBcb desafixa um bloco de controle de buffer repinnado (BCB).

Sintaxe

void CcUnpinRepinnedBcb(
  [in]  PVOID            Bcb,
  [in]  BOOLEAN          WriteThrough,
  [out] PIO_STATUS_BLOCK IoStatus
);

Parâmetros

[in] Bcb

Ponteiro para o BCB repinnado.

[in] WriteThrough

Defina como verdadeiro se o BCB deve ser gravado.

[out] IoStatus

Ponteiro para uma estrutura IO_STATUS_BLOCK. Se a chamada para CcUnpinRepinnedBcb for bem-sucedida, IoStatus.Status será definida como STATUS_SUCCESS. Caso contrário, ele será definido como um código de erro NTSTATUS apropriado. IoStatus.Information é definido como o número real de bytes que foram liberados com êxito para o disco.

Valor de retorno

Nenhum

Observações

Os sistemas de arquivos chamam CcUnpinRepinnedBcb para gravar um buffer fixado anteriormente no disco.

Cada chamada para CcRepinBcb deve ser correspondida por uma chamada subsequente para ccUnpinRepinnedBcb.

Como CcUnpinRepinnedBcb adquire exclusivamente o recurso BCB, o chamador deve ter muito cuidado para evitar deadlocks. Se possível, o chamador não deve ter recursos. Caso contrário, o chamador deve garantir que ele não tem mais nada fixado no mesmo arquivo armazenado em cache. Normalmente ccUnpinRepinnedBcb é chamado durante a conclusão da solicitação, depois que todos os outros recursos foram liberados.

CcUnpinRepinnedBcb grava o buffer de forma síncrona (para solicitações de gravação) e desafixa o BCB repinnado pela chamada anterior para ccRepinBcb.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
cabeçalho ntifs.h (inclua Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe

Consulte também

CcRepinBcb