HalpWdatInitializeWdrt
NTSTATUS __stdcall HalpWdatInitializeWdrt(PFILE_OBJECT FileObject, PCC_FILE_SIZES FileSizes){
_DEVICE_OBJECT *DeviceObject;
unsigned int v4;
NTSTATUS result;
__int64 *v6;
unsigned int v7;
DeviceObject = FileObject->DeviceObject;
v4 = WORD2(DeviceObject->DeviceExtension);
LODWORD(FileObject->Vpb) = v4;
if( v4 >= 0x1FF )
LODWORD(FileObject->Vpb) = v4;
else
LODWORD(FileObject->Vpb) = 512;
HIDWORD(FileObject->Vpb) = 1;
if( BYTE6(DeviceObject->DeviceExtension) )
{
if( BYTE6(DeviceObject->DeviceExtension) == 1 )
{
LODWORD(FileObject->FsContext) = 100;
}
else
{
if( BYTE6(DeviceObject->DeviceExtension) != 2 )
return -1073741811;
LODWORD(FileObject->FsContext) = 10;
}
}
else
{
LODWORD(FileObject->FsContext) = 1000;
}
HIDWORD(FileObject->SectionObjectPointer) = 15;
v6 = qword_140030868;
v7 = 0;
while( 1 )
{
result = WdInstrInitializeInstruction(
(_WD_INSTRUCTION *)&FileObject->PrivateCacheMap + v7,
*((_BYTE *)v6 - 8),
*((_BYTE *)v6 - 7),
(_GEN_ADDR *)((char *)DeviceObject + (*((_BYTE *)v6 - 6) != 0 ? 48i64 : 36i64)));
if( result < 0 )
break;
++v7;
v6 = (__int64 *)((char *)v6 + 12);
if( v7 >= 0xF )
return 0;
}
return result;
}Referenced by:
HalpWdatInitialize