Função StorPortSynchronizeAccess (storport.h)
A rotina StorPortSynchronizeAccess fornece acesso sincronizado à extensão de dispositivo de um driver de miniport.
Sintaxe
STORPORT_API BOOLEAN StorPortSynchronizeAccess(
[in] PVOID HwDeviceExtension,
[in] PSTOR_SYNCHRONIZED_ACCESS SynchronizedAccessRoutine,
[in, optional] PVOID Context
);
Parâmetros
[in] HwDeviceExtension
Um ponteiro para a extensão do dispositivo de hardware. Essa é uma área de armazenamento por HBA que o driver de porta aloca e inicializa em nome do driver de miniporta. Os drivers de miniporta geralmente armazenam informações específicas do HBA nessa extensão, como o estado do HBA e os intervalos de acesso mapeados para o HBA. Essa área está disponível para o driver de miniporta imediatamente após o driver de miniporto chamar StorPortInitialize. O driver de porta libera essa memória quando remove o dispositivo.
[in] SynchronizedAccessRoutine
Ponteiro para uma rotina fornecida pelo chamador cuja execução deve ser sincronizada com a execução do ISR associado aos objetos de interrupção. Para obter um protótipo dessa rotina, consulte a seção Comentários mais adiante neste tópico.
[in, optional] Context
Ponteiro para uma área de contexto a ser passada para a rotina de retorno de chamada fornecida pelo chamador quando ela é chamada.
Retornar valor
O valor retornado de SynchronizedAccessRoutine.
Comentários
Os drivers de miniport que operam no modo full-duplex e que acessam informações compartilhadas entre a rotina HwStorStartIo e a rotina de serviço de interrupção devem usar essa rotina para acessar os dados compartilhados de maneira sincronizada.
O driver de miniporta passa uma rotina de retorno de chamada para StorPortSynchronizeAccess e StorPortSynchronizeAccess a chama depois de garantir acesso exclusivo a estruturas de dados confidenciais. A rotina de retorno de chamada do driver de miniporto deve estar em conformidade com o seguinte protótipo:
typedef
BOOLEAN
(* PSTOR_SYNCHRONIZED_ACCESS) (
IN PVOID HwDeviceExtension,
IN PVOID Context
);
em que HwDeviceExtension é um ponteiro para a extensão do dispositivo de hardware e Context é apenas um ponteiro para as mesmas informações de contexto que o chamador forneceu ao chamar StorPortSynchronizeAccess.
Para obter mais informações, consulte Acesso sincronizado em rotinas de driver de miniporto não sincronizadas.
Para obter mais informações sobre rotinas de sincronização, consulte KeSynchronizeExecution.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | storport.h (inclua Storport.h) |
Biblioteca | Storport.lib |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de