Откуда поступают вызовы NTSTATUS из CloseHandle ()? - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь выяснить, есть ли способ вернуть коды NTSTATUS обратно в вызывающую функцию CloseHandle (), используя образец драйвера проходного фильтра Windows.

Согласно документации: - IRP_MJ_CLEANUP: происходит, когда последняя ссылка на файл была закрыта. Итак, я предполагаю, что даже если этот IRP может сообщать коды NTSTATUS, он не будет вызывать функцию CloseHandle ()? (нужно задаться вопросом, где это заканчивается?) - IRP_MJ_CLOSE: происходит после IRP_MJ_CLEANUP, поэтому этот IRP также не может сообщить код NTSTATUS. - IRP_MJ_WRITE с IRP_MN_COMPLETE? ну что же, швы должны быть связаны только с очисткой буферов памяти?

Так как я могу сообщить о кодах NTSTATUS обратно в вызывающую функцию CloseHandle ()?

Например, Linux Это можно сделать в вызове flu sh (), как это происходит непосредственно перед вызовом release (), поскольку вызовы release () являются асинхронными ...

Пожалуйста, помогите мне понять, если есть способ сообщить о кодах NTSTATUS обратно к вызывающей стороне, или если что-то будет сигнализировать драйверу фильтра файловой системы windows, что с дескриптором больше не будет записей. Например, это последний вызов Write ().

С уважением, Томас

...