Função IoCsqInitialize (wdm.h)

A rotina IoCsqInitialize inicializa a tabela de expedição de fila IRP cancel-safe do driver.

Sintaxe

NTSTATUS IoCsqInitialize(
  [out] PIO_CSQ                       Csq,
  [in]  PIO_CSQ_INSERT_IRP            CsqInsertIrp,
  [in]  PIO_CSQ_REMOVE_IRP            CsqRemoveIrp,
  [in]  PIO_CSQ_PEEK_NEXT_IRP         CsqPeekNextIrp,
  [in]  PIO_CSQ_ACQUIRE_LOCK          CsqAcquireLock,
  [in]  PIO_CSQ_RELEASE_LOCK          CsqReleaseLock,
  [in]  PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp
);

Parâmetros

[out] Csq

Ponteiro para a estrutura IO_CSQ a ser inicializada por IoCsqInitialize.

[in] CsqInsertIrp

Ponteiro para a função CsqInsertIrp definida pelo driver para a fila IRP cancel-safe do driver.

[in] CsqRemoveIrp

Ponteiro para a função CsqRemoveIrp definida pelo driver para a fila IRP cancel-safe do driver.

[in] CsqPeekNextIrp

Ponteiro para a função CsqPeekNextIrp definida pelo driver para a fila IRP cancel-safe do driver.

[in] CsqAcquireLock

Ponteiro para a função CsqAcquireLock definida pelo driver para a fila IRP cancel-safe do driver.

[in] CsqReleaseLock

Ponteiro para a função CsqReleaseLock definida pelo driver para a fila IRP cancel-safe do driver.

[in] CsqCompleteCanceledIrp

Ponteiro para a função CsqCompleteCanceledIrp definida pelo driver para a fila IRP cancel-safe do driver.

Retornar valor

Essa rotina retorna STATUS_SUCCESS em caso de êxito ou o código de erro NTSTATUS apropriado em caso de falha.

Comentários

A rotina IoCsqInitialize inicializa uma estrutura de IO_CSQ que descreve a fila IRP cancel-safe de um driver. Os drivers também podem usar IoCsqInitializeEx para criar uma fila IRP com recursos estendidos. Para obter mais informações, consulte Filas IRP cancel-safe.

Observe que as rotinas do IoCsqXxx usam o membro DriverContext[3] do IRP para armazenar informações de contexto IRP. Os drivers que usam essas rotinas para enfileirar IRPs devem deixar esse membro não utilizado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows XP e versões posteriores do sistema operacional Windows. Os drivers que também devem funcionar para Windows 2000 e Windows 98/Me podem, em vez disso, vincular-se ao Csq.lib para usar a rotina.
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Qualquer nível

Confira também

CsqAcquireLock

CsqCompleteCanceledIrp

CsqInsertIrp

CsqInsertIrpEx

CsqPeekNextIrp

CsqReleaseLock

CsqRemoveIrp

IO_CSQ

IoCsqInitializeEx

IoCsqInsertIrp

IoCsqInsertIrpEx

IoCsqRemoveIrp

IoCsqRemoveNextIrp