FastIo声明和定义

Fastio.h

  1 #pragma once
  2 #include "Header.h"
  3 
  4 
  5 BOOLEAN FastIoCheckIfPossible(
  6     _In_    struct _FILE_OBJECT* FileObject,
  7     _In_    PLARGE_INTEGER FileOffset,
  8     _In_    ULONG Length,
  9     _In_    BOOLEAN Wait,
 10     _In_    ULONG LockKey,
 11     _In_    BOOLEAN CheckForReadOperation,
 12     _Out_   PIO_STATUS_BLOCK IoStatus,
 13     _In_    struct _DEVICE_OBJECT* DeviceObject
 14 );
 15 
 16 BOOLEAN FastIoRead(
 17     _In_    struct _FILE_OBJECT* FileObject,
 18     _In_    PLARGE_INTEGER FileOffset,
 19     _In_    ULONG Length,
 20     _In_    BOOLEAN Wait,
 21     _In_    ULONG LockKey,
 22     _Out_   PVOID Buffer,
 23     _Out_   PIO_STATUS_BLOCK IoStatus,
 24     _In_    struct _DEVICE_OBJECT* DeviceObject
 25 );
 26 
 27 
 28 BOOLEAN FastIoWrite(
 29     _In_    struct _FILE_OBJECT* FileObject,
 30     _In_    PLARGE_INTEGER FileOffset,
 31     _In_    ULONG Length,
 32     _In_    BOOLEAN Wait,
 33     _In_    ULONG LockKey,
 34     _In_    PVOID Buffer,
 35     _Out_   PIO_STATUS_BLOCK IoStatus,
 36     _In_    struct _DEVICE_OBJECT* DeviceObject
 37 );
 38 
 39 BOOLEAN FastIoQueryBasicInfo(
 40     _In_    struct _FILE_OBJECT* FileObject,
 41     _In_    BOOLEAN Wait,
 42     _Out_   PFILE_BASIC_INFORMATION Buffer,
 43     _Out_   PIO_STATUS_BLOCK IoStatus,
 44     _In_    struct _DEVICE_OBJECT* DeviceObject
 45 );
 46 
 47 
 48 BOOLEAN FastIoQueryStandardInfo(
 49     _In_    struct _FILE_OBJECT* FileObject,
 50     _In_    BOOLEAN Wait,
 51     _Out_   PFILE_STANDARD_INFORMATION Buffer,
 52     _Out_   PIO_STATUS_BLOCK IoStatus,
 53     _In_    struct _DEVICE_OBJECT* DeviceObject
 54 );
 55 
 56 
 57 BOOLEAN FastIoLock(
 58     _In_    struct _FILE_OBJECT* FileObject,
 59     _In_    PLARGE_INTEGER FileOffset,
 60     _In_    PLARGE_INTEGER Length,
 61     _In_    PEPROCESS ProcessId,
 62     _In_    ULONG Key,
 63     _In_    BOOLEAN FailImmediately,
 64     _In_    BOOLEAN ExclusiveLock,
 65     _Out_   PIO_STATUS_BLOCK IoStatus,
 66     _In_    struct _DEVICE_OBJECT* DeviceObject
 67 );
 68 
 69 BOOLEAN FastIoUnlockSingle(
 70     _In_    struct _FILE_OBJECT* FileObject,
 71     _In_    PLARGE_INTEGER FileOffset,
 72     _In_    PLARGE_INTEGER Length,
 73     _In_    PEPROCESS ProcessId,
 74     _In_    ULONG Key,
 75     _Out_   PIO_STATUS_BLOCK IoStatus,
 76     _In_    struct _DEVICE_OBJECT* DeviceObject
 77 );
 78 
 79 
 80 BOOLEAN FastIoUnlockAll(
 81     _In_    struct _FILE_OBJECT* FileObject,
 82     _In_    PEPROCESS ProcessId,
 83     _Out_   PIO_STATUS_BLOCK IoStatus,
 84     _In_    struct _DEVICE_OBJECT* DeviceObject
 85 );
 86 
 87 
 88 BOOLEAN FastIoUnlockAllByKey(
 89     _In_    struct _FILE_OBJECT* FileObject,
 90     _In_    PVOID ProcessId,
 91     _In_    ULONG Key,
 92     _Out_   PIO_STATUS_BLOCK IoStatus,
 93     _In_    struct _DEVICE_OBJECT* DeviceObject
 94 );
 95 
 96 
 97 BOOLEAN FastIoDeviceControl(
 98     _In_    struct _FILE_OBJECT* FileObject,
 99     _In_    BOOLEAN Wait,
100     _In_    PVOID InputBuffer,
101     _In_    ULONG InputBufferLength,
102     _Out_   PVOID OutputBuffer,
103     _In_    ULONG OutputBufferLength,
104     _In_    ULONG IoControlCode,
105     _Out_   PIO_STATUS_BLOCK IoStatus,
106     _In_    struct _DEVICE_OBJECT* DeviceObject
107 );
108 
109 VOID FastIoAcquireFile(
110     _In_    struct _FILE_OBJECT* FileObject
111 );
112 
113 VOID FastIoReleaseFile(
114     _In_    struct _FILE_OBJECT* FileObject
115 );
116 
117 
118 VOID FastIoDetachDevice(
119     _In_    struct _DEVICE_OBJECT* SourceDevice,
120     _In_    struct _DEVICE_OBJECT* TargetDevice
121 );
122 
123 
124 BOOLEAN FastIoQueryNetworkOpenInfo(
125     _In_    struct _FILE_OBJECT* FileObject,
126     _In_    BOOLEAN Wait,
127     _Out_   struct _FILE_NETWORK_OPEN_INFORMATION* Buffer,
128     _Out_   struct _IO_STATUS_BLOCK* IoStatus,
129     _In_    struct _DEVICE_OBJECT* DeviceObject
130 );
131 
132 
133 NTSTATUS FastIoAcquireForModWrite(
134     _In_    struct _FILE_OBJECT* FileObject,
135     _In_    PLARGE_INTEGER EndingOffset,
136     _Out_   struct _ERESOURCE** ResourceToRelease,
137     _In_    struct _DEVICE_OBJECT* DeviceObject
138 );
139 
140 
141 BOOLEAN FastIoMdlRead(
142     _In_    struct _FILE_OBJECT* FileObject,
143     _In_    PLARGE_INTEGER FileOffset,
144     _In_    ULONG Length,
145     _In_    ULONG LockKey,
146     _Out_   PMDL* MdlChain,
147     _Out_   PIO_STATUS_BLOCK IoStatus,
148     _In_    struct _DEVICE_OBJECT* DeviceObject
149 );
150 
151 
152 BOOLEAN FastIoMdlReadComplete(
153     _In_    struct _FILE_OBJECT* FileObject,
154     _In_    PMDL MdlChain,
155     _In_    struct _DEVICE_OBJECT* DeviceObject
156 );
157 
158 
159 BOOLEAN FastIoPrepareMdlWrite(
160     _In_    struct _FILE_OBJECT* FileObject,
161     _In_    PLARGE_INTEGER FileOffset,
162     _In_    ULONG Length,
163     _In_    ULONG LockKey,
164     _Out_   PMDL* MdlChain,
165     _Out_   PIO_STATUS_BLOCK IoStatus,
166     _In_    struct _DEVICE_OBJECT* DeviceObject
167 );
168 
169 
170 BOOLEAN FastIoMdlWriteComplete(
171     _In_    struct _FILE_OBJECT* FileObject,
172     _In_    PLARGE_INTEGER FileOffset,
173     _In_    PMDL MdlChain,
174     _In_    struct _DEVICE_OBJECT* DeviceObject
175 );
176 
177 
178 BOOLEAN FastIoReadCompressed(
179     _In_    struct _FILE_OBJECT* FileObject,
180     _In_    PLARGE_INTEGER FileOffset,
181     _In_    ULONG Length,
182     _In_    ULONG LockKey,
183     _Out_   PVOID Buffer,
184     _Out_   PMDL* MdlChain,
185     _Out_   PIO_STATUS_BLOCK IoStatus,
186     _Out_   struct _COMPRESSED_DATA_INFO* CompressedDataInfo,
187     _In_    ULONG CompressedDataInfoLength,
188     _In_    struct _DEVICE_OBJECT* DeviceObject
189 );
190 
191 
192 BOOLEAN FastIoWriteCompressed(
193     _In_    struct _FILE_OBJECT* FileObject,
194     _In_    PLARGE_INTEGER FileOffset,
195     _In_    ULONG Length,
196     _In_    ULONG LockKey,
197     _In_    PVOID Buffer,
198     _Out_   PMDL* MdlChain,
199     _Out_   PIO_STATUS_BLOCK IoStatus,
200     _In_    struct _COMPRESSED_DATA_INFO* CompressedDataInfo,
201     _In_    ULONG CompressedDataInfoLength,
202     _In_    struct _DEVICE_OBJECT* DeviceObject
203 );
204 
205 
206 BOOLEAN FastIoMdlReadCompleteCompressed(
207     _In_    struct _FILE_OBJECT* FileObject,
208     _In_    PMDL MdlChain,
209     _In_    struct _DEVICE_OBJECT* DeviceObject
210 );
211 
212 
213 BOOLEAN FastIoMdlWriteCompleteCompressed(
214     _In_    struct _FILE_OBJECT* FileObject,
215     _In_    PLARGE_INTEGER FileOffset,
216     _In_    PMDL MdlChain,
217     _In_    struct _DEVICE_OBJECT* DeviceObject
218 );
219 
220 
221 BOOLEAN FastIoQueryOpen(
222     _Inout_ struct _IRP* Irp,
223     _Out_   PFILE_NETWORK_OPEN_INFORMATION NetworkInformation,
224     _In_    struct _DEVICE_OBJECT* DeviceObject
225 );
226 
227 
228 NTSTATUS FastIoReleaseForModWrite(
229     _In_    struct _FILE_OBJECT* FileObject,
230     _In_    struct _ERESOURCE* ResourceToRelease,
231     _In_    struct _DEVICE_OBJECT* DeviceObject
232 );
233 
234 NTSTATUS FastIoAcquireForCcFlush(
235     _In_    struct _FILE_OBJECT* FileObject,
236     _In_    struct _DEVICE_OBJECT* DeviceObject
237 );
238 
239 
240 NTSTATUS FastIoReleaseForCcFlush(
241     _In_    struct _FILE_OBJECT* FileObject,
242     _In_    struct _DEVICE_OBJECT* DeviceObject
243 );

Fastio.cpp

  1 #include "Fastio.h"
  2 
  3 BOOLEAN FastIoCheckIfPossible(
  4     _In_    struct _FILE_OBJECT* FileObject,
  5     _In_    PLARGE_INTEGER FileOffset,
  6     _In_    ULONG Length,
  7     _In_    BOOLEAN Wait,
  8     _In_    ULONG LockKey,
  9     _In_    BOOLEAN CheckForReadOperation,
 10     _Out_   PIO_STATUS_BLOCK IoStatus,
 11     _In_    struct _DEVICE_OBJECT* DeviceObject
 12 )
 13 {
 14     UNREFERENCED_PARAMETER(FileObject);
 15     UNREFERENCED_PARAMETER(FileOffset);
 16     UNREFERENCED_PARAMETER(Length);
 17     UNREFERENCED_PARAMETER(Wait);
 18     UNREFERENCED_PARAMETER(LockKey);
 19     UNREFERENCED_PARAMETER(CheckForReadOperation);
 20     UNREFERENCED_PARAMETER(IoStatus);
 21     UNREFERENCED_PARAMETER(DeviceObject);
 22 
 23     return FALSE;
 24 }
 25 
 26 
 27 BOOLEAN FastIoRead(
 28     _In_    struct _FILE_OBJECT* FileObject,
 29     _In_    PLARGE_INTEGER FileOffset,
 30     _In_    ULONG Length,
 31     _In_    BOOLEAN Wait,
 32     _In_    ULONG LockKey,
 33     _Out_   PVOID Buffer,
 34     _Out_   PIO_STATUS_BLOCK IoStatus,
 35     _In_    struct _DEVICE_OBJECT* DeviceObject
 36 )
 37 {
 38     UNREFERENCED_PARAMETER(FileObject);
 39     UNREFERENCED_PARAMETER(FileOffset);
 40     UNREFERENCED_PARAMETER(Length);
 41     UNREFERENCED_PARAMETER(Wait);
 42     UNREFERENCED_PARAMETER(LockKey);
 43     UNREFERENCED_PARAMETER(Buffer);
 44     UNREFERENCED_PARAMETER(IoStatus);
 45     UNREFERENCED_PARAMETER(DeviceObject);
 46 
 47     return FALSE;
 48 }
 49 
 50 
 51 BOOLEAN FastIoWrite(
 52     _In_    struct _FILE_OBJECT* FileObject,
 53     _In_    PLARGE_INTEGER FileOffset,
 54     _In_    ULONG Length,
 55     _In_    BOOLEAN Wait,
 56     _In_    ULONG LockKey,
 57     _In_    PVOID Buffer,
 58     _Out_   PIO_STATUS_BLOCK IoStatus,
 59     _In_    struct _DEVICE_OBJECT* DeviceObject
 60 )
 61 {
 62     UNREFERENCED_PARAMETER(FileObject);
 63     UNREFERENCED_PARAMETER(FileOffset);
 64     UNREFERENCED_PARAMETER(Length);
 65     UNREFERENCED_PARAMETER(Wait);
 66     UNREFERENCED_PARAMETER(LockKey);
 67     UNREFERENCED_PARAMETER(Buffer);
 68     UNREFERENCED_PARAMETER(IoStatus);
 69     UNREFERENCED_PARAMETER(DeviceObject);
 70 
 71     return FALSE;
 72 }
 73 
 74 BOOLEAN FastIoQueryBasicInfo(
 75     _In_    struct _FILE_OBJECT* FileObject,
 76     _In_    BOOLEAN Wait,
 77     _Out_   PFILE_BASIC_INFORMATION Buffer,
 78     _Out_   PIO_STATUS_BLOCK IoStatus,
 79     _In_    struct _DEVICE_OBJECT* DeviceObject
 80 )
 81 {
 82     UNREFERENCED_PARAMETER(FileObject);
 83     UNREFERENCED_PARAMETER(Wait);
 84     UNREFERENCED_PARAMETER(Buffer);
 85     UNREFERENCED_PARAMETER(IoStatus);
 86     UNREFERENCED_PARAMETER(DeviceObject);
 87 
 88     return FALSE;
 89 }
 90 
 91 
 92 BOOLEAN FastIoQueryStandardInfo(
 93     _In_    struct _FILE_OBJECT* FileObject,
 94     _In_    BOOLEAN Wait,
 95     _Out_   PFILE_STANDARD_INFORMATION Buffer,
 96     _Out_   PIO_STATUS_BLOCK IoStatus,
 97     _In_    struct _DEVICE_OBJECT* DeviceObject
 98 )
 99 {
100     UNREFERENCED_PARAMETER(FileObject);
101     UNREFERENCED_PARAMETER(Wait);
102     UNREFERENCED_PARAMETER(Buffer);
103     UNREFERENCED_PARAMETER(IoStatus);
104     UNREFERENCED_PARAMETER(DeviceObject); 
105 
106     return FALSE;
107 }
108 
109 
110 BOOLEAN FastIoLock(
111     _In_    struct _FILE_OBJECT* FileObject,
112     _In_    PLARGE_INTEGER FileOffset,
113     _In_    PLARGE_INTEGER Length,
114     _In_    PEPROCESS ProcessId,
115     _In_    ULONG Key,
116     _In_    BOOLEAN FailImmediately,
117     _In_    BOOLEAN ExclusiveLock,
118     _Out_   PIO_STATUS_BLOCK IoStatus,
119     _In_    struct _DEVICE_OBJECT* DeviceObject
120 )
121 {
122     UNREFERENCED_PARAMETER(FileObject);
123     UNREFERENCED_PARAMETER(FileOffset);
124     UNREFERENCED_PARAMETER(Length);
125     UNREFERENCED_PARAMETER(ProcessId);
126     UNREFERENCED_PARAMETER(Key);
127     UNREFERENCED_PARAMETER(FailImmediately);
128     UNREFERENCED_PARAMETER(ExclusiveLock);
129     UNREFERENCED_PARAMETER(IoStatus);
130     UNREFERENCED_PARAMETER(DeviceObject);
131 
132     return FALSE;
133 }
134 
135 BOOLEAN FastIoUnlockSingle(
136     _In_    struct _FILE_OBJECT* FileObject,
137     _In_    PLARGE_INTEGER FileOffset,
138     _In_    PLARGE_INTEGER Length,
139     _In_    PEPROCESS ProcessId,
140     _In_    ULONG Key,
141     _Out_   PIO_STATUS_BLOCK IoStatus,
142     _In_    struct _DEVICE_OBJECT* DeviceObject
143 )
144 {
145     UNREFERENCED_PARAMETER(FileObject);
146     UNREFERENCED_PARAMETER(FileOffset);
147     UNREFERENCED_PARAMETER(Length);
148     UNREFERENCED_PARAMETER(ProcessId);
149     UNREFERENCED_PARAMETER(Key);
150     UNREFERENCED_PARAMETER(IoStatus);
151     UNREFERENCED_PARAMETER(DeviceObject);
152 
153     return FALSE;
154 }
155 
156 
157 BOOLEAN FastIoUnlockAll(
158     _In_    struct _FILE_OBJECT* FileObject,
159     _In_    PEPROCESS ProcessId,
160     _Out_   PIO_STATUS_BLOCK IoStatus,
161     _In_    struct _DEVICE_OBJECT* DeviceObject
162 )
163 {
164     UNREFERENCED_PARAMETER(FileObject);
165     UNREFERENCED_PARAMETER(ProcessId);
166     UNREFERENCED_PARAMETER(IoStatus);
167     UNREFERENCED_PARAMETER(DeviceObject);
168 
169     return FALSE;
170 }
171 
172 
173 BOOLEAN FastIoUnlockAllByKey(
174     _In_    struct _FILE_OBJECT* FileObject,
175     _In_    PVOID ProcessId,
176     _In_    ULONG Key,
177     _Out_   PIO_STATUS_BLOCK IoStatus,
178     _In_    struct _DEVICE_OBJECT* DeviceObject
179 )
180 {
181     UNREFERENCED_PARAMETER(FileObject);
182     UNREFERENCED_PARAMETER(ProcessId);
183     UNREFERENCED_PARAMETER(Key);
184     UNREFERENCED_PARAMETER(IoStatus);
185     UNREFERENCED_PARAMETER(DeviceObject);
186 
187     return FALSE;
188 }
189 
190 
191 BOOLEAN FastIoDeviceControl(
192     _In_    struct _FILE_OBJECT* FileObject,
193     _In_    BOOLEAN Wait,
194     _In_    PVOID InputBuffer,
195     _In_    ULONG InputBufferLength,
196     _Out_   PVOID OutputBuffer,
197     _In_    ULONG OutputBufferLength,
198     _In_    ULONG IoControlCode,
199     _Out_   PIO_STATUS_BLOCK IoStatus,
200     _In_    struct _DEVICE_OBJECT* DeviceObject
201 )
202 {
203     UNREFERENCED_PARAMETER(FileObject);
204     UNREFERENCED_PARAMETER(Wait);
205     UNREFERENCED_PARAMETER(InputBuffer);
206     UNREFERENCED_PARAMETER(InputBufferLength);
207     UNREFERENCED_PARAMETER(OutputBuffer);
208     UNREFERENCED_PARAMETER(OutputBufferLength);
209     UNREFERENCED_PARAMETER(IoControlCode);
210     UNREFERENCED_PARAMETER(IoStatus);
211     UNREFERENCED_PARAMETER(DeviceObject);
212 
213     return FALSE;
214 }
215 
216 VOID FastIoAcquireFile(
217     _In_    struct _FILE_OBJECT* FileObject
218 )
219 {
220     UNREFERENCED_PARAMETER(FileObject);
221 }
222 
223 VOID FastIoReleaseFile(
224     _In_    struct _FILE_OBJECT* FileObject
225 )
226 {
227     UNREFERENCED_PARAMETER(FileObject);
228 }
229 
230 
231 VOID FastIoDetachDevice(
232     _In_    struct _DEVICE_OBJECT* SourceDevice,
233     _In_    struct _DEVICE_OBJECT* TargetDevice
234 )
235 {
236     UNREFERENCED_PARAMETER(SourceDevice);
237     UNREFERENCED_PARAMETER(TargetDevice);
238 }
239 
240 
241 BOOLEAN FastIoQueryNetworkOpenInfo(
242     _In_    struct _FILE_OBJECT* FileObject,
243     _In_    BOOLEAN Wait,
244     _Out_   struct _FILE_NETWORK_OPEN_INFORMATION* Buffer,
245     _Out_   struct _IO_STATUS_BLOCK* IoStatus,
246     _In_    struct _DEVICE_OBJECT* DeviceObject
247 )
248 {
249     UNREFERENCED_PARAMETER(FileObject);
250     UNREFERENCED_PARAMETER(Wait);
251     UNREFERENCED_PARAMETER(Buffer);
252     UNREFERENCED_PARAMETER(IoStatus);
253     UNREFERENCED_PARAMETER(DeviceObject); 
254 
255     return FALSE;
256 }
257 
258 
259 NTSTATUS FastIoAcquireForModWrite(
260     _In_    struct _FILE_OBJECT* FileObject,
261     _In_    PLARGE_INTEGER EndingOffset,
262     _Out_   struct _ERESOURCE** ResourceToRelease,
263     _In_    struct _DEVICE_OBJECT* DeviceObject
264 )
265 {
266     UNREFERENCED_PARAMETER(FileObject);
267     UNREFERENCED_PARAMETER(EndingOffset);
268     UNREFERENCED_PARAMETER(ResourceToRelease);
269     UNREFERENCED_PARAMETER(DeviceObject); 
270 
271     return FALSE;
272 }
273 
274 
275 BOOLEAN FastIoMdlRead(
276     _In_    struct _FILE_OBJECT* FileObject,
277     _In_    PLARGE_INTEGER FileOffset,
278     _In_    ULONG Length,
279     _In_    ULONG LockKey,
280     _Out_   PMDL* MdlChain,
281     _Out_   PIO_STATUS_BLOCK IoStatus,
282     _In_    struct _DEVICE_OBJECT* DeviceObject
283 )
284 {
285     UNREFERENCED_PARAMETER(FileObject);
286     UNREFERENCED_PARAMETER(FileOffset);
287     UNREFERENCED_PARAMETER(Length);
288     UNREFERENCED_PARAMETER(LockKey);
289     UNREFERENCED_PARAMETER(MdlChain);
290     UNREFERENCED_PARAMETER(IoStatus);
291     UNREFERENCED_PARAMETER(DeviceObject);
292 
293     return FALSE;
294 }
295 
296 
297 BOOLEAN FastIoMdlReadComplete(
298     _In_    struct _FILE_OBJECT* FileObject,
299     _In_    PMDL MdlChain,
300     _In_    struct _DEVICE_OBJECT* DeviceObject
301 )
302 {
303     UNREFERENCED_PARAMETER(FileObject);
304     UNREFERENCED_PARAMETER(MdlChain);
305     UNREFERENCED_PARAMETER(DeviceObject);
306 
307     return FALSE;
308 }
309 
310 
311 BOOLEAN FastIoPrepareMdlWrite(
312     _In_    struct _FILE_OBJECT* FileObject,
313     _In_    PLARGE_INTEGER FileOffset,
314     _In_    ULONG Length,
315     _In_    ULONG LockKey,
316     _Out_   PMDL* MdlChain,
317     _Out_   PIO_STATUS_BLOCK IoStatus,
318     _In_    struct _DEVICE_OBJECT* DeviceObject
319 )
320 {
321     UNREFERENCED_PARAMETER(FileObject);
322     UNREFERENCED_PARAMETER(FileOffset);
323     UNREFERENCED_PARAMETER(Length);
324     UNREFERENCED_PARAMETER(LockKey);
325     UNREFERENCED_PARAMETER(MdlChain);
326     UNREFERENCED_PARAMETER(IoStatus);
327     UNREFERENCED_PARAMETER(DeviceObject);
328 
329     return FALSE;
330 }
331 
332 
333 BOOLEAN FastIoMdlWriteComplete(
334     _In_    struct _FILE_OBJECT* FileObject,
335     _In_    PLARGE_INTEGER FileOffset,
336     _In_    PMDL MdlChain,
337     _In_    struct _DEVICE_OBJECT* DeviceObject
338 )
339 {
340     UNREFERENCED_PARAMETER(FileObject);
341     UNREFERENCED_PARAMETER(FileOffset);
342     UNREFERENCED_PARAMETER(MdlChain);
343     UNREFERENCED_PARAMETER(DeviceObject);
344 
345     return FALSE;
346 }
347 
348 
349 BOOLEAN FastIoReadCompressed(
350     _In_    struct _FILE_OBJECT* FileObject,
351     _In_    PLARGE_INTEGER FileOffset,
352     _In_    ULONG Length,
353     _In_    ULONG LockKey,
354     _Out_   PVOID Buffer,
355     _Out_   PMDL* MdlChain,
356     _Out_   PIO_STATUS_BLOCK IoStatus,
357     _Out_   struct _COMPRESSED_DATA_INFO* CompressedDataInfo,
358     _In_    ULONG CompressedDataInfoLength,
359     _In_    struct _DEVICE_OBJECT* DeviceObject
360 )
361 {
362     UNREFERENCED_PARAMETER(FileObject);
363     UNREFERENCED_PARAMETER(FileOffset);
364     UNREFERENCED_PARAMETER(Length);
365     UNREFERENCED_PARAMETER(LockKey);
366     UNREFERENCED_PARAMETER(Buffer);
367     UNREFERENCED_PARAMETER(MdlChain);
368     UNREFERENCED_PARAMETER(IoStatus);
369     UNREFERENCED_PARAMETER(CompressedDataInfo);
370     UNREFERENCED_PARAMETER(CompressedDataInfoLength);
371     UNREFERENCED_PARAMETER(DeviceObject);
372 
373     return FALSE;
374 }
375 
376 
377 BOOLEAN FastIoWriteCompressed(
378     _In_    struct _FILE_OBJECT* FileObject,
379     _In_    PLARGE_INTEGER FileOffset,
380     _In_    ULONG Length,
381     _In_    ULONG LockKey,
382     _In_    PVOID Buffer,
383     _Out_   PMDL* MdlChain,
384     _Out_   PIO_STATUS_BLOCK IoStatus,
385     _In_    struct _COMPRESSED_DATA_INFO* CompressedDataInfo,
386     _In_    ULONG CompressedDataInfoLength,
387     _In_    struct _DEVICE_OBJECT* DeviceObject
388 )
389 {
390     UNREFERENCED_PARAMETER(FileObject);
391     UNREFERENCED_PARAMETER(FileOffset);
392     UNREFERENCED_PARAMETER(Length);
393     UNREFERENCED_PARAMETER(LockKey);
394     UNREFERENCED_PARAMETER(Buffer);
395     UNREFERENCED_PARAMETER(MdlChain);
396     UNREFERENCED_PARAMETER(IoStatus);
397     UNREFERENCED_PARAMETER(CompressedDataInfo);
398     UNREFERENCED_PARAMETER(CompressedDataInfoLength);
399     UNREFERENCED_PARAMETER(DeviceObject);
400 
401     return FALSE;
402 }
403 
404 
405 BOOLEAN FastIoMdlReadCompleteCompressed(
406     _In_    struct _FILE_OBJECT* FileObject,
407     _In_    PMDL MdlChain,
408     _In_    struct _DEVICE_OBJECT* DeviceObject
409 )
410 {
411     UNREFERENCED_PARAMETER(FileObject);
412     UNREFERENCED_PARAMETER(MdlChain);
413     UNREFERENCED_PARAMETER(DeviceObject);
414 
415     return FALSE;
416 }
417 
418 
419 BOOLEAN FastIoMdlWriteCompleteCompressed(
420     _In_    struct _FILE_OBJECT* FileObject,
421     _In_    PLARGE_INTEGER FileOffset,
422     _In_    PMDL MdlChain,
423     _In_    struct _DEVICE_OBJECT* DeviceObject
424 )
425 {
426     UNREFERENCED_PARAMETER(FileObject);
427     UNREFERENCED_PARAMETER(FileOffset);
428     UNREFERENCED_PARAMETER(MdlChain);
429     UNREFERENCED_PARAMETER(DeviceObject);
430 
431     return FALSE;
432 }
433 
434 
435 BOOLEAN FastIoQueryOpen(
436     _Inout_ struct _IRP* Irp,
437     _Out_   PFILE_NETWORK_OPEN_INFORMATION NetworkInformation,
438     _In_    struct _DEVICE_OBJECT* DeviceObject
439 )
440 {
441     UNREFERENCED_PARAMETER(Irp);
442     UNREFERENCED_PARAMETER(NetworkInformation);
443     UNREFERENCED_PARAMETER(DeviceObject);
444 
445     return FALSE;
446 }
447 
448 
449 NTSTATUS FastIoReleaseForModWrite(
450     _In_    struct _FILE_OBJECT* FileObject,
451     _In_    struct _ERESOURCE* ResourceToRelease,
452     _In_    struct _DEVICE_OBJECT* DeviceObject
453 )
454 {
455     UNREFERENCED_PARAMETER(FileObject);
456     UNREFERENCED_PARAMETER(ResourceToRelease);
457     UNREFERENCED_PARAMETER(DeviceObject);
458 
459     return FALSE;
460 }
461 
462 NTSTATUS FastIoAcquireForCcFlush(
463     _In_    struct _FILE_OBJECT* FileObject,
464     _In_    struct _DEVICE_OBJECT* DeviceObject
465 )
466 {
467     UNREFERENCED_PARAMETER(FileObject);
468     UNREFERENCED_PARAMETER(DeviceObject);
469 
470     return FALSE;
471 }
472 
473 
474 NTSTATUS FastIoReleaseForCcFlush(
475     _In_    struct _FILE_OBJECT* FileObject,
476     _In_    struct _DEVICE_OBJECT* DeviceObject
477 )
478 {
479     UNREFERENCED_PARAMETER(FileObject);
480     UNREFERENCED_PARAMETER(DeviceObject);
481 
482     return FALSE;
483 }

 

上一篇:volatile关键字用法


下一篇:python实验四 识别并提取Python程序中的类名、函数名、变量名等标识符。源码+详解