Udostępnij przez


kod kontrolny FSCTL_OFFLOAD_WRITE

Kod kontrolny FSCTL_OFFLOAD_WRITE inicjuje odciążanie bloku danych w systemie magazynu, który obsługuje odciążanie typów pierwotnych zapisu.

Aby wykonać tę operację, sterowniki minifiltru wywołają metodę FltFsControlFile z następującymi parametrami, systemami plików, przekierowaniami i starszymi sterownikami filtrów systemu plików wywołają plik ZwFsControlFile z następującymi parametrami.

Parametry

  • Wystąpienie [in]: Tylko fltFsControlFile . Nieprzezroczystym wskaźnikiem wystąpienia obiektu wywołującego. Ten parametr jest wymagany i nie może mieć wartości NULL.

  • FileObject [in]: Tylko fltFsControlFile . Obiekt wskaźnika pliku określający plik do zapisu. Ten parametr jest wymagany i nie może mieć wartości NULL.

  • FileHandle [in]: tylko ZwFsControlFile . Dojście do pliku do zapisu w pliku. Ten parametr jest wymagany i nie może mieć wartości NULL.

  • FsControlCode [in]: kod kontrolny operacji. Użyj FSCTL_OFFLOAD_WRITE dla tej operacji.

  • InputBuffer [in]: Wskaźnik do struktury FSCTL_OFFLOAD_WRITE_INPUT , która zawiera rozmiar i przesunięcie bloku danych do odczytu.

  • InputBufferLength [in]: rozmiar w bajtach buforu wskazywanego przez inputBuffer. Ta wartość to sizeof(FSCTL_OFFLOAD_WRITE_INPUT).

  • OutputBuffer [out]: wskaźnik do struktury FSCTL_OFFLOAD_WRITE_INPUT , która zawiera rozmiar i przesunięcie bloku danych do odczytu.

  • OutputBufferLength [out]: rozmiar w bajtach buforu wskazywanego przez parametr OutputBuffer . Ta wartość musi być co najmniej sizeof(FSCTL_OFFLOAD_READ_OUTPUT).

Blok stanu

Funkcja FltFsControlFile lub ZwFsControlFile zwraca STATUS_SUCCESS, jeśli operacja zakończy się pomyślnie. W przeciwnym razie odpowiednia funkcja może zwrócić jedną z następujących wartości NTSTATUS.

Code Meaning
STATUS_INVALID_DEVICE_REQUEST Określony uchwyt nie jest prawidłowym dojściem do pliku.
STATUS_INVALID_PARAMETER Parametr jest nieprawidłowy. Zobacz uwagi.
STATUS_NOT_SUPPORTED Operacje odciążania odczytu nie są obsługiwane na tym woluminie.
STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED Żądany typ pliku nie jest obsługiwany. Operacje odciążania nie są obsługiwane w następujących typach plików: plik transacted (TxF); Pliki inne niż użytkownik; Skompresowane pliki; Zaszyfrowane pliki; Pliki rozrzedłe; Pliki metadanych NTFS.
STATUS_TOO_LATE Operacja zapisu została podjęta na woluminie po jej odinstalowyniu.
STATUS_FILE_DELETED Strumień danych dla tego pliku jest nieprawidłowy.
STATUS_FILE_CLOSED Dojście do pliku jest zamykane.
STATUS_INVALID_HANDLE Określony uchwyt pliku jest nieprawidłowy.
STATUS_FILE_LOCK_CONFLICT Nie można udzielić dostępu do odczytu lub zapisu ze względu na bieżący stan blokowania pliku.
STATUS_END_OF_FILE Element członkowski fileOffsetFSCTL_OFFLOAD_WRITE_INPUT rozpoczyna się po zakończeniu pliku (EOF).
STATUS_DISMOUNTED_VOLUME Nie można odciążyć zapisu na woluminie odinstalowany.
STATUS_MEDIA_WRITE_PROTECTED Wolumin jest tylko do odczytu.
STATUS_INSUFFICIENT_RESOURCES Niewystarczające zasoby są dostępne do ukończenia żądania.
STATUS_BUFFER_TOO_SMALL Właściwość InputBufferLength jest zbyt mała, aby właściwość InputBuffer zawierała strukturęFSCTL_OFFLOAD_WRITE_INPUT lub parametr OutputBufferLength jest zbyt mały, aby właściwość OutputBuffer odbierała strukturę FSCTL_OFFLOAD_WRITE_OUTPUT .

Uwagi

Odciążanie odczytu jest dostępne tylko dla zwykłych plików. Zapoznaj się z opisem STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED , aby uzyskać listę nieobsługiwanych typów plików.

Po zwróceniu STATUS_INVALID_PARAMETER błąd może być jednym z następujących nieprawidłowych parametrów:

  • Rozmiar pliku jest mniejszy niż PAGE_SIZE.
  • InputBufferLength<sizeof(FSCTL_OFFLOAD_READ_OUTPUT).
  • Co najmniej jeden z tych elementów członkowskichFSCTL_OFFLOAD_WRITE_INPUT jest niepoprawny:

    FileOffset nie jest wielokrotnym rozmiarem sektora logicznego woluminu. CopyLength nie jest wielokrotnym rozmiarem sektora logicznego woluminu. TransferOffset nie jest wielokrotnym rozmiarem sektora logicznego woluminu. Rozmiar nie jest rozmiarem strukturyFSCTL_OFFLOAD_WRITE_INPUT . PlikOffset> Prawidłowa długość danych (VDL) dla pliku. PlikOffset + KopiujLength>MAXULONGLONG.

Requirements

Typ wymagania Wymaganie
Minimalny obsługiwany klient Windows 8
Header Ntifs.h (w tym Ntifs.h lub Fltkernel.h)

Zobacz także

FltFsControlFile

ZwFsControlFile

FSCTL_OFFLOAD_WRITE_INPUT

FSCTL_OFFLOAD_WRITE_OUTPUT