ディスクにダミーのファイルシステムを追加するプログラムを作成しています。
現在、を使用して可変サイズのファイルを書き込んでいますWriteFile
。
WriteFile(hFile, FileData, i * 1024, &dwWrote, NULL);
err = GetLastError();
errは#1784を返します。これは次のように変換されます
指定されたユーザーバッファは、要求された操作に対して無効です。ERROR_INVALID_USER_BUFFER
したがって、最初の24ファイルについては、書き込み操作が機能します。ファイル#25がオンの場合、書き込み操作は失敗します。ファイルは引き続き作成されますが、WriteFile関数はファイルにデータを入力しません。
乗り越える方法について何かアイデアはありますERROR_INVALID_USER_BUFFER
か?
エラーについて私が見つけることができるすべての参照は、クラッシュするプログラムに限定されており、それが私が経験している問題にどのように関連しているかを理解することはできません。
編集:
FileData = (char *) malloc(sizeof(char) * (size_t)k * 1024);
memset(FileData, 245, sizeof(char) * (size_t)k * 1024);
FileDataは、最大予測バッファーのサイズに設定および割り当てられます。iは、最大サイズ(k)まで増加するまで繰り返すループ変数です。