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.
Die FltOplockFsctrlEx Routine führt verschiedene opportunistische Sperrvorgänge (Oplock) im Auftrag eines Minifiltertreibers aus.
Syntax
FLT_PREOP_CALLBACK_STATUS FLTAPI FltOplockFsctrlEx(
[in] POPLOCK Oplock,
[in] PFLT_CALLBACK_DATA CallbackData,
[in] ULONG OpenCount,
[in] ULONG Flags
);
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.
[in] Flags
Eine Bitmaske für die zugeordneten Oplock-Vorgänge. Ein Minifiltertreiber legt Bits fest, um das Verhalten von FltOplockFsctrlExanzugeben. Der parameter Flags verfügt über die folgenden Optionen:
Wert | Bedeutung |
---|---|
OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH (0x00000001) | Das Dateisystem hat überprüft, ob alle Oplock-Schlüssel auf allen aktuell geöffneten Handles übereinstimmen. Wenn Sie dieses Kennzeichen angeben, können Sie dem Oplock-Paket ein Oplock der Ebene RW oder RWH gewähren, wenn mehr als ein geöffnetes Handle für die Datei vorhanden ist. Weitere Informationen zu Oplock-Typen finden Sie unter Oplock Overview. |
Rückgabewert
FltOplockFsctrlEx 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 FltOplockFsctrlEx FLT_PREOP_COMPLETE zurück.
Bemerkungen
Ein Minifiltertreiber ruft FltOplockFsctrlEx- auf, um verschiedene opportunistische Sperrvorgänge für einen Erstellungs- oder Dateisystemsteuerungs-E/A-Vorgang 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 FltOplockFsctrlEx- 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
- FSCTL_REQUEST_OPLOCK
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 |
---|---|
mindestens unterstützte Client- | Diese Routine ist ab Windows 8 verfügbar. |
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