Как P / Invoke SetFileTime с нулевыми параметрами? [Дубликат]

This question already has an answer here:

How do I handle null or optional dll struct parameters in C# 1 answer

Попытка P / ВызватьSetFileTime function из моей программы на C # я использую следующую подпись:

[DllImport(@"kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool SetFileTime(
    IntPtr hFile,
    ref long lpCreationTime,
    ref long lpLastAccessTime,
    ref long lpLastWriteTime);

В документации указана следующая неуправляемая подпись:

BOOL WINAPI SetFileTime(
  __in      HANDLE hFile,
  __in_opt  const FILETIME *lpCreationTime,
  __in_opt  const FILETIME *lpLastAccessTime,
  __in_opt  const FILETIME *lpLastWriteTime
);

Для 2-го, 3-го и 4-го параметра он говорит, что они могут быть необязательными:

This parameter can be NULL if the application does not need to change this information.

И это именно то, что я хочу сделать: передать только одно из трех значений даты и времени, а остальные установить вnull.

Я совершенно заблудился, как выразить это с точки зрения подписи P / Invoke.

Therefore my question is:

Какая правильная подпись P / Invoke (или правильный способ вызова), чтобы иметь возможность пройтиnull кSetFileTime параметры функции?

Edit 1:

ПосколькуFileInfo class Вы уже можете задать свойство записи для установки времени файла. Вы можете спросить, почему я делаю это самостоятельно, а не с помощью класса.

Причина в том, что я планирую использовать эту функцию в своемДлинные Пути библиотека, которая используется для преодоленияMAX_PATH ограничить и, следовательно, не может использовать стандартные функции .NET.

Поэтому, используяFileInfo класс не вариант, к сожалению.

Edit 2:

Я решил это с помощью решения, предложенного Гансом. После этого я нашелПользовательский комментарий под функцией что говорит:

In addition, specifying a zero value for one of the parameters has the same effect as specifying NULL.

Хотя я не проверял, так ли это, это все же может быть вариантом для других, имеющих аналогичное требование к моему.

Ответы на вопрос(1)

Ваш ответ на вопрос