FILE_NOTIFY_INFORMATION型の変数を用意するのではなく、ある程度の長さのByte配列を用意して、そこからLong型3つとFileNameを表すUNICODE文字列を1つずつ切り出して取得しているのでしょうか?