Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
FSCTL_OFFLOAD_READ-kontrollkoden initierar en avlastningsläsning för ett datablock i ett lagringssystem som stöder avlastning av läspri primitiver.
Om du vill utföra den här åtgärden anropar du FltFsControlFile eller ZwFsControlFile med följande parametrar.
Parameterar
Instans [in]: Endast FltFsControlFile . En ogenomskinlig instanspekare för anroparen. Den här parametern krävs och kan inte vara NULL.
FileObject [in]: Endast FltFsControlFile . Filpekarobjektet som anger filen som ska läsas från. Den här parametern krävs och kan inte vara NULL.
FileHandle [in]: Endast ZwFsControlFile . Filhandtaget för filen som ska läsas från. Den här parametern krävs och kan inte vara NULL.
FsControlCode [in]: Kontrollkoden för åtgärden. Använd FSCTL_OFFLOAD_READ för den här åtgärden.
InputBuffer [in]: En pekare till en FSCTL_OFFLOAD_READ_INPUT struktur som innehåller storleken och förskjutningen av ett datablock som ska läsas.
InputBufferLength [in]: Storleken, i byte, på bufferten som inputBuffer pekar på. Det här värdet är sizeof(FSCTL_OFFLOAD_READ_INPUT).
OutputBuffer [out]: En pekare till en FSCTL_OFFLOAD_READ_OUTPUT struktur som tar emot resultatet av läsåtgärden för avlastning.
OutputBufferLength [out]: Storleken, i byte, på bufferten som pekas på av parametern OutputBuffer . Det här värdet måste vara minst sizeof(FSCTL_OFFLOAD_READ_OUTPUT).
Statusblock
FltFsControlFile eller ZwFsControlFile returnerar STATUS_SUCCESS om åtgärden lyckas. Annars kan lämplig funktion returnera något av följande NTSTATUS-värden.
| Kod | Meaning |
|---|---|
| STATUS_INVALID_DEVICE_REQUEST | Det angivna handtaget är inte ett giltigt filhandtag |
| STATUS_INVALID_PARAMETER | En parameter är ogiltig. Se Kommentarer. |
| STATUS_VOLUME_DISMOUNTED | Filsystemvolymen är demonterad. |
| STATUS_NOT_SUPPORTED | Läs av läsåtgärder stöds inte på den här volymen. |
| STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED | Den begärda filtypen stöds inte. Avlastningsåtgärder stöds inte för dessa filtyper: En transacted-fil (TxF); Filer som inte är användarfiler; Komprimerade filer; Krypterade filer; Glesa filer; NTFS-metadatafiler. |
| STATUS_FILE_DELETED | Dataströmmen för den här filen är ogiltig. |
| STATUS_FILE_CLOSED | Filhandtaget är stängt. |
| STATUS_INVALID_HANDLE | Det angivna filhandtaget är ogiltigt. |
| STATUS_FILE_LOCK_CONFLICT | Otillräcklig läsåtkomst på grund av det aktuella fillåsningstillståndet. |
| STATUS_END_OF_FILE | FileOffset-medlemmen i FSCTL_OFFLOAD_READ_INPUT börjar efter filslutet (EOF). |
| STATUS_DISMOUNTED_VOLUME | Det går inte att läsa av en avlastning på en demonterad volym. |
| STATUS_INSUFFICIENT_RESOURCES | Det finns inte tillräckligt med resurser för att slutföra begäran. |
| STATUS_BUFFER_TOO_SMALL | OutputBufferLength är för litet för att OutputBuffer ska kunna ta emot en FSCTL_OFFLOAD_READ_OUTPUT struktur. |
Anmärkningar
Läs in läsning är endast tillgängligt för vanliga filer. En lista över filtyper som inte stöds finns i beskrivningen för STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED .
Det är möjligt för läsningar att börja utöver VDL (Valid Data Length), men inte bortom EOF.
När STATUS_INVALID_PARAMETER returneras kan felet vara en av följande ogiltiga parametrar:
- Filstorleken är mindre än PAGE_SIZE.
-
InputBufferLength<
sizeof(FSCTL_OFFLOAD_READ_INPUT). - En eller flera av dessa medlemmar i FSCTL_OFFLOAD_READ_INPUT är felaktiga:
- FileOffset är inte en multipel av volymens logiska sektorstorlek.
- CopyLength är inte en multipel av volymens logiska sektorstorlek.
- Storleken är inte storleken på den FSCTL_OFFLOAD_READ_INPUT strukturen.
- FileOffset + CopyLength>MAXULONGLONG.
Kravspecifikation
| Kravtyp | Krav |
|---|---|
| Lägsta klient som stöds | Windows 8 |
| Header | Ntifs.h (inkludera Ntifs.h eller Fltkernel.h) |