Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
FltOplockFsctrl verschiedene opportunistische Sperrvorgänge (Oplock) im Auftrag eines Minifiltertreibers ausführt.
Syntax
FLT_PREOP_CALLBACK_STATUS FLTAPI FltOplockFsctrl(
[in] POPLOCK Oplock,
[in] PFLT_CALLBACK_DATA CallbackData,
[in] ULONG OpenCount
);
Parameter
[in] Oplock
Opaque oplock pointer for the file. Dieser Zeiger muss durch einen vorherigen Aufruf von FltInitializeOplockinitialisiert worden sein.
[in] CallbackData
Zeiger auf die FLT_CALLBACK_DATA Struktur für den E/A-Vorgang. Dieser Parameter ist erforderlich und kann nicht NULL-werden.
[in] OpenCount
Anzahl der Benutzerhandles für die Datei, wenn ein exklusiver Oplock angefordert wird. Wenn Sie einen Wert ungleich Null für eine Oplockanforderung der Ebene 2, R oder RH festlegen, wird angegeben, dass die Datei über Bytebereichssperren verfügt. Informationen zu Oplock-Typen finden Sie unter Oplock Overview.
Rückgabewert
FltOplockFsctrl gibt FLT_PREOP_PENDING für einige FSCTL-Vorgänge zurück. Weitere Informationen finden Sie auf den Referenzseiten für die FSCTL-Codes, die im folgenden Abschnitt "Hinweise" aufgeführt sind. Andernfalls gibt FltOplockFsctrl FLT_PREOP_COMPLETE zurück.
Bemerkungen
Ein Minifiltertreiber ruft FltOplockFsctrl auf, um verschiedene opportunistische Sperrvorgänge für einen E/A-Vorgang für die Erstellung oder Dateisystemsteuerung auszuführen.
Die FLT_CALLBACK_DATA Struktur, auf die der CallbackData--Parameter verweist, muss einen IRP-basierten IRP_MJ_FILE_SYSTEM_CONTROL- oder IRP_MJ_CREATE-Vorgang darstellen.
Wenn es sich bei dem Vorgang um einen IRP_MJ_FILE_SYSTEM_CONTROL Vorgang handelt, können FltOplockFsctrl mit den folgenden FSCTL-Codes verwendet werden:
- FSCTL_OPBATCH_ACK_CLOSE_PENDING
- FSCTL_OPLOCK_BREAK_ACK_NO_2
- FSCTL_OPLOCK_BREAK_ACKNOWLEDGE
- FSCTL_OPLOCK_BREAK_NOTIFY
- FSCTL_REQUEST_BATCH_OPLOCK
- FSCTL_REQUEST_FILTER_OPLOCK
- FSCTL_REQUEST_OPLOCK_LEVEL_1
- FSCTL_REQUEST_OPLOCK_LEVEL_2
Der FSCTL-Code wird im FsControlCode Member der FLT_PARAMETERS Struktur für den Vorgang festgelegt. Weitere Informationen zu FsControlCode- und anderen IRP_MJ_FILE_SYSTEM_CONTROL Parametern finden Sie unter FLT_PARAMETERS für IRP_MJ_FILE_SYSTEM_CONTROL.
Weitere Informationen zu opportunistischen Sperren finden Sie in der Microsoft Windows SDK-Dokumentation.
Wenn es sich bei dem Vorgang um eine IRP_MJ_CREATE Anforderung handelt, können FltOplockFsctrl verwendet werden, um eine ausstehende opportunistische Filtersperre anzufordern, wenn alle folgenden Bedingungen zutreffen:
- Der Wert des OpenCount--Parameters muss 1 sein.
- Der Wert des DesiredAccess-Parameters für die IRP_MJ_CREATE-Anforderung ist FILE_READ_ATTRIBUTES. Dieser Parameter wird im SecurityContext Member der FLT_PARAMETERS Struktur für den Vorgang festgelegt. Weitere Informationen finden Sie unter FLT_PARAMETERS für IRP_MJ_CREATE.
- Der Wert des ShareAccess-Parameters für den IRP_MJ_CREATE Vorgang ist FILE_SHARE_READ, FILE_SHARE_WRITE oder FILE_SHARE_DELETE. Dieser Parameter wird im ShareAccess Member der FLT_PARAMETERS Struktur für den Vorgang festgelegt. Weitere Informationen finden Sie unter FLT_PARAMETERS für IRP_MJ_CREATE.
Filter und Dateisysteme, die diese Funktion aufrufen, müssen Aufrufe im vom System bereitgestellten Oplock-Paket synchronisieren. Weitere Informationen finden Sie unter Oplock-Synchronisierungs-.
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform- | Universal |
| Header- | fltkernel.h (include Fltkernel.h) |
| Library | FltMgr.lib |
| DLL- | Fltmgr.sys |
| IRQL- | <= APC_LEVEL |
Siehe auch
FLT_PARAMETERS für IRP_MJ_CREATE
FLT_PARAMETERS für IRP_MJ_FILE_SYSTEM_CONTROL
FSCTL_OPBATCH_ACK_CLOSE_PENDING