Compartilhar via


IStream::LockRegion

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Este método restringe acessar para um intervalo especificado de bytes na transmitir. Suporte a essa funcionalidade é opcional, pois alguns sistemas arquivo não fornecem-lo.

Syntax

HRESULT LockRegion( 
  LARGE_INTEGER libOffset, 
  LARGE_INTEGER cb, 
  DWORD dwLockType 
);

Parameters

  • libOffset
    [no] Número inteiro que especifica o deslocamento de byte para o início do intervalo.
  • cb
    [no] Número inteiro que especifica o comprimento do intervalo, em bytes, seja restrito.
  • dwLockType
    [no] Especifica as restrições que está sendo solicitadas em acessando o intervalo.

Return Value

A seguinte tabela mostra os valores de retorno para este método.

Valor Descrição

S_OK

O intervalo especificado de bytes foi bloqueado.

E_PENDING

Somente armazenamento assíncrono: Parte ou todos os dados de transmitir é atualmente não disponível.

STG_E_INVALIDFUNCTION

O bloqueio não com suporte em todos ou de tipo específico de bloqueio solicitado não é com suporte.

STG_E_LOCKVIOLATION

Solicitada bloqueio é com suporte, mas não podem ser concedidas because of um bloqueio existente.

STG_E_REVERTED

O objeto tenha sido invalidado por uma operação de reversão acima na árvore de transação.

Remarks

O intervalo byte pode estender após a atual final da transmitir.

O bloqueio além do final de um transmitir é útil como um método de comunicação entre diferentes instâncias da transmitir sem alteração que seja realmente parte da transmitir dados.

Três tipos de bloqueando podem ser com suporte: bloqueando para excluir outros autores, bloqueando para excluir outros autores ou leitores e bloqueando que permite que somente um solicitante para obter um bloqueio no intervalo determinado, que geralmente é um alias para um dos outros tipos bloqueio dois.

Uma instância transmitir determinado talvez suporte os primeiros dois tipos, ou ambos.

O tipo bloqueio é especificado pelo dwLockType, usando um valor a partir de LOCKTYPE enumeração.

Qualquer região bloqueado com IStream::LockRegion Mais tarde deve ser explicitamente desbloqueada por chamado de IStream::UnlockRegion método com exatamente os mesmos valores para o libOffset, cb, e dwLockType parâmetros.

A região deve estar desbloqueada antes de transmitir seja liberado.

Dois adjacente regiões não podem ser bloqueadas separadamente e, em seguida, desbloqueadas com um chamar desbloquear único.

Para determinar se a plataforma oferece suporte a esta interface, consulte Determinando suporte COM APIs.

Notas para chamadores

Porque o tipo de bloqueando com suporte é opcional e pode variar em diferentes implementações de IStream, você deve fornecer codificar para lidar com o erro STG_E_INVALIDFUNCTION.

Este método não tem nenhum efeito na implementação de arquivo composto, pois a implementação não suporte bloqueando intervalo.

Notas para Implementers

Suporte para este método é opcional para implementações de transmitir objetos porque ele não pode ser com suporte pela subjacente sistema de arquivos.

O tipo de bloqueando com suporte também é opcional.

O erro STG_E_INVALIDFUNCTION será retornado se o tipo solicitado de bloqueando não é com suporte.

Requirements

Header objidl.h, objidl.idl
Library ole32.lib, uuid.lib
Windows Embedded CE Windows CE 2.0 and later
Windows Mobile Windows Mobile Version 5.0 and later