Función IoIsOperationSynchronous (ntifs.h)
La rutina IoIsOperationSynchronous determina si un IRP determinado representa una solicitud de E/S sincrónica o asincrónica.
Sintaxis
BOOLEAN IoIsOperationSynchronous(
[in] PIRP Irp
);
Parámetros
[in] Irp
Puntero al IRP para la operación.
Valor devuelto
IoIsOperationSynchronous devuelve TRUE si la operación es sincrónica; en caso contrario, FALSE.
Comentarios
IoIsOperationSynchronous determina si un IRP determinado solicita una operación de E/S sincrónica o asincrónica, según las condiciones siguientes:
Si el IRP solicita E/S de paginación asincrónica, la operación es asincrónica, incluso si se cumple una de las otras condiciones.
Si el IRP solicita E/S de paginación sincrónica, la operación es sincrónica.
Si el objeto de archivo se abrió para E/S sincrónica, la operación es sincrónica.
Si la marca IRP_SYNCHRONOUS_API se establece en irP, la operación es sincrónica. Esta marca se establece para las operaciones, como ZwQueryInformationFile y ZwSetInformationFile, que siempre son sincrónicas, incluso cuando se realizan en un objeto de archivo que se abrió para E/S asincrónica.
Si ninguna de las condiciones anteriores es verdadera, la operación es asincrónica.
IoIsOperationSynchronous también devuelve TRUE si irP contiene una solicitud IOCTL o FSCTL con un código de control de sistema de archivos o E/S definido con METHOD_BUFFERED, incluso si el objeto de archivo se abrió para E/S asincrónica. Es probable que este tipo de solicitud se realice sincrónicamente por el sistema de archivos, pero esto no es necesariamente cierto en todos los casos.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | ntifs.h (incluya Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | Cualquier nivel |